From b9f0451fa35393ceedf6d9d20b78c43578ebea5d Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Wed, 12 Jul 2017 17:57:30 +0200 Subject: New upstream version 1.8.2 --- Makefile.am | 353 +++--- Makefile.in | 434 ++++--- NEWS | 17 + aclocal.m4 | 74 +- build-aux/config.guess | 165 ++- build-aux/config.sub | 52 +- clients/cli/common.c | 6 +- clients/cli/devices.c | 6 +- clients/cli/general.c | 8 +- clients/cli/settings.c | 28 +- clients/tui/nmt-connect-connection-list.c | 8 +- configure | 28 +- configure.ac | 2 +- .../dbus-org.freedesktop.NetworkManager.Device.xml | 14 + docs/api/dbus-org.freedesktop.NetworkManager.xml | 20 +- docs/api/html/NetworkManager.conf.html | 15 +- docs/api/html/NetworkManager.html | 2 +- docs/api/html/ch01.html | 4 +- docs/api/html/dbus-secret-agent.html | 2 +- docs/api/html/dbus-types.html | 2 +- docs/api/html/dbus-vpn-types.html | 2 +- ...org.freedesktop.NetworkManager.AccessPoint.html | 2 +- ...rg.freedesktop.NetworkManager.AgentManager.html | 2 +- ...eedesktop.NetworkManager.Connection.Active.html | 2 +- ...org.freedesktop.NetworkManager.DHCP4Config.html | 2 +- ...org.freedesktop.NetworkManager.DHCP6Config.html | 2 +- ...org.freedesktop.NetworkManager.Device.Adsl.html | 2 +- ...reedesktop.NetworkManager.Device.Bluetooth.html | 2 +- ...org.freedesktop.NetworkManager.Device.Bond.html | 2 +- ...g.freedesktop.NetworkManager.Device.Bridge.html | 2 +- ...rg.freedesktop.NetworkManager.Device.Dummy.html | 2 +- ....freedesktop.NetworkManager.Device.Generic.html | 2 +- ...freedesktop.NetworkManager.Device.IPTunnel.html | 2 +- ...eedesktop.NetworkManager.Device.Infiniband.html | 2 +- ...g.freedesktop.NetworkManager.Device.Macsec.html | 2 +- ....freedesktop.NetworkManager.Device.Macvlan.html | 2 +- ...rg.freedesktop.NetworkManager.Device.Modem.html | 2 +- ...freedesktop.NetworkManager.Device.OlpcMesh.html | 2 +- ...eedesktop.NetworkManager.Device.Statistics.html | 2 +- ...org.freedesktop.NetworkManager.Device.Team.html | 2 +- ...-org.freedesktop.NetworkManager.Device.Tun.html | 2 +- ...org.freedesktop.NetworkManager.Device.Veth.html | 2 +- ...org.freedesktop.NetworkManager.Device.Vlan.html | 2 +- ...rg.freedesktop.NetworkManager.Device.Vxlan.html | 2 +- ...rg.freedesktop.NetworkManager.Device.WiMax.html | 2 +- ...rg.freedesktop.NetworkManager.Device.Wired.html | 2 +- ...freedesktop.NetworkManager.Device.Wireless.html | 2 +- ...dbus-org.freedesktop.NetworkManager.Device.html | 17 +- ...-org.freedesktop.NetworkManager.DnsManager.html | 2 +- ...s-org.freedesktop.NetworkManager.IP4Config.html | 2 +- ...s-org.freedesktop.NetworkManager.IP6Config.html | 2 +- .../gdbus-org.freedesktop.NetworkManager.PPP.html | 2 +- ...org.freedesktop.NetworkManager.SecretAgent.html | 2 +- ...desktop.NetworkManager.Settings.Connection.html | 2 +- ...us-org.freedesktop.NetworkManager.Settings.html | 2 +- ....freedesktop.NetworkManager.VPN.Connection.html | 2 +- ...-org.freedesktop.NetworkManager.VPN.Plugin.html | 2 +- .../html/gdbus-org.freedesktop.NetworkManager.html | 21 +- docs/api/html/index.html | 6 +- docs/api/html/ix01.html | 1246 +++++++++---------- docs/api/html/license.html | 2 +- docs/api/html/manpages.html | 2 +- docs/api/html/nm-dbus-types.html | 2 +- docs/api/html/nm-online.html | 2 +- docs/api/html/nm-settings-ifcfg-rh.html | 2 +- docs/api/html/nm-settings-keyfile.html | 2 +- docs/api/html/nm-settings.html | 4 +- docs/api/html/nm-vpn-dbus-types.html | 2 +- docs/api/html/nmcli-examples.html | 2 +- docs/api/html/nmcli.html | 2 +- docs/api/html/nmtui.html | 2 +- docs/api/html/ref-dbus-access-points.html | 2 +- docs/api/html/ref-dbus-active-connections.html | 2 +- docs/api/html/ref-dbus-agent-manager.html | 2 +- docs/api/html/ref-dbus-devices.html | 2 +- docs/api/html/ref-dbus-dhcp4-configs.html | 2 +- docs/api/html/ref-dbus-dhcp6-configs.html | 2 +- docs/api/html/ref-dbus-dns-manager.html | 2 +- docs/api/html/ref-dbus-ip4-configs.html | 2 +- docs/api/html/ref-dbus-ip6-configs.html | 2 +- docs/api/html/ref-dbus-manager.html | 2 +- docs/api/html/ref-dbus-settings-manager.html | 2 +- docs/api/html/ref-dbus-settings.html | 2 +- docs/api/html/ref-settings.html | 4 +- docs/api/html/secret-agents.html | 2 +- docs/api/html/secrets-flags.html | 2 +- docs/api/html/settings-802-11-olpc-mesh.html | 2 +- .../html/settings-802-11-wireless-security.html | 2 +- docs/api/html/settings-802-11-wireless.html | 2 +- docs/api/html/settings-802-1x.html | 4 +- docs/api/html/settings-802-3-ethernet.html | 2 +- docs/api/html/settings-adsl.html | 2 +- docs/api/html/settings-bluetooth.html | 2 +- docs/api/html/settings-bond.html | 2 +- docs/api/html/settings-bridge-port.html | 2 +- docs/api/html/settings-bridge.html | 2 +- docs/api/html/settings-cdma.html | 2 +- docs/api/html/settings-connection.html | 2 +- docs/api/html/settings-dcb.html | 2 +- docs/api/html/settings-dummy.html | 2 +- docs/api/html/settings-generic.html | 2 +- docs/api/html/settings-gsm.html | 2 +- docs/api/html/settings-infiniband.html | 2 +- docs/api/html/settings-ip-tunnel.html | 2 +- docs/api/html/settings-ipv4.html | 2 +- docs/api/html/settings-ipv6.html | 2 +- docs/api/html/settings-macsec.html | 2 +- docs/api/html/settings-macvlan.html | 2 +- docs/api/html/settings-ppp.html | 2 +- docs/api/html/settings-pppoe.html | 2 +- docs/api/html/settings-proxy.html | 2 +- docs/api/html/settings-serial.html | 2 +- docs/api/html/settings-team-port.html | 2 +- docs/api/html/settings-team.html | 2 +- docs/api/html/settings-tun.html | 2 +- docs/api/html/settings-user.html | 2 +- docs/api/html/settings-vlan.html | 2 +- docs/api/html/settings-vpn.html | 2 +- docs/api/html/settings-vxlan.html | 2 +- docs/api/html/settings-wimax.html | 2 +- docs/api/html/spec.html | 2 +- docs/api/html/vpn-plugins.html | 2 +- docs/api/settings-spec.xml | 2 +- docs/api/version.xml | 2 +- docs/libnm-glib/html/NMAccessPoint.html | 2 +- docs/libnm-glib/html/NMActiveConnection.html | 2 +- docs/libnm-glib/html/NMClient.html | 2 +- docs/libnm-glib/html/NMDHCP4Config.html | 2 +- docs/libnm-glib/html/NMDHCP6Config.html | 2 +- docs/libnm-glib/html/NMDevice.html | 2 +- docs/libnm-glib/html/NMDeviceAdsl.html | 2 +- docs/libnm-glib/html/NMDeviceBond.html | 2 +- docs/libnm-glib/html/NMDeviceBridge.html | 2 +- docs/libnm-glib/html/NMDeviceBt.html | 2 +- docs/libnm-glib/html/NMDeviceEthernet.html | 2 +- docs/libnm-glib/html/NMDeviceGeneric.html | 2 +- docs/libnm-glib/html/NMDeviceInfiniband.html | 2 +- docs/libnm-glib/html/NMDeviceModem.html | 2 +- docs/libnm-glib/html/NMDeviceOlpcMesh.html | 2 +- docs/libnm-glib/html/NMDeviceTeam.html | 2 +- docs/libnm-glib/html/NMDeviceVlan.html | 2 +- docs/libnm-glib/html/NMDeviceWifi.html | 2 +- docs/libnm-glib/html/NMDeviceWimax.html | 2 +- docs/libnm-glib/html/NMIP4Config.html | 2 +- docs/libnm-glib/html/NMIP6Config.html | 2 +- docs/libnm-glib/html/NMObject.html | 2 +- docs/libnm-glib/html/NMRemoteConnection.html | 2 +- docs/libnm-glib/html/NMRemoteSettings.html | 2 +- docs/libnm-glib/html/NMSecretAgent.html | 2 +- docs/libnm-glib/html/NMVPNConnection.html | 2 +- docs/libnm-glib/html/NMWimaxNsp.html | 2 +- docs/libnm-glib/html/annotation-glossary.html | 2 +- docs/libnm-glib/html/api-index-full.html | 2 +- docs/libnm-glib/html/ch02.html | 2 +- docs/libnm-glib/html/index.html | 4 +- docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html | 2 +- .../html/libnm-glib-NMVpnPluginUiWidget.html | 2 +- docs/libnm-glib/html/libnm-glib-nm-types.html | 2 +- .../html/libnm-glib-nm-vpn-plugin-utils.html | 2 +- docs/libnm-glib/html/object-tree.html | 2 +- docs/libnm-glib/html/ref-overview.html | 2 +- docs/libnm-glib/version.xml | 2 +- docs/libnm-util/html/NMConnection.html | 2 +- docs/libnm-util/html/NMSetting.html | 2 +- docs/libnm-util/html/NMSetting8021x.html | 2 +- docs/libnm-util/html/NMSettingAdsl.html | 2 +- docs/libnm-util/html/NMSettingBluetooth.html | 2 +- docs/libnm-util/html/NMSettingBond.html | 2 +- docs/libnm-util/html/NMSettingBridge.html | 2 +- docs/libnm-util/html/NMSettingBridgePort.html | 2 +- docs/libnm-util/html/NMSettingCdma.html | 2 +- docs/libnm-util/html/NMSettingConnection.html | 2 +- docs/libnm-util/html/NMSettingDcb.html | 2 +- docs/libnm-util/html/NMSettingGeneric.html | 2 +- docs/libnm-util/html/NMSettingGsm.html | 2 +- docs/libnm-util/html/NMSettingIP4Config.html | 2 +- docs/libnm-util/html/NMSettingIP6Config.html | 2 +- docs/libnm-util/html/NMSettingInfiniband.html | 2 +- docs/libnm-util/html/NMSettingOlpcMesh.html | 2 +- docs/libnm-util/html/NMSettingPPP.html | 2 +- docs/libnm-util/html/NMSettingPPPOE.html | 2 +- docs/libnm-util/html/NMSettingSerial.html | 2 +- docs/libnm-util/html/NMSettingTeam.html | 2 +- docs/libnm-util/html/NMSettingTeamPort.html | 2 +- docs/libnm-util/html/NMSettingVPN.html | 2 +- docs/libnm-util/html/NMSettingVlan.html | 2 +- docs/libnm-util/html/NMSettingWimax.html | 2 +- docs/libnm-util/html/NMSettingWired.html | 2 +- docs/libnm-util/html/NMSettingWireless.html | 2 +- .../libnm-util/html/NMSettingWirelessSecurity.html | 2 +- docs/libnm-util/html/annotation-glossary.html | 2 +- docs/libnm-util/html/api-index-full.html | 2 +- docs/libnm-util/html/ch01.html | 2 +- docs/libnm-util/html/index.html | 4 +- .../libnm-util/html/libnm-util-NetworkManager.html | 2 +- .../html/libnm-util-NetworkManagerVPN.html | 2 +- docs/libnm-util/html/libnm-util-nm-utils.html | 2 +- docs/libnm-util/html/object-tree.html | 2 +- docs/libnm-util/version.xml | 2 +- docs/libnm/html/NMAccessPoint.html | 2 +- docs/libnm/html/NMActiveConnection.html | 2 +- docs/libnm/html/NMClient.html | 2 +- docs/libnm/html/NMConnection.html | 2 +- docs/libnm/html/NMDevice.html | 6 +- docs/libnm/html/NMDeviceAdsl.html | 2 +- docs/libnm/html/NMDeviceBond.html | 2 +- docs/libnm/html/NMDeviceBridge.html | 2 +- docs/libnm/html/NMDeviceBt.html | 2 +- docs/libnm/html/NMDeviceDummy.html | 2 +- docs/libnm/html/NMDeviceEthernet.html | 2 +- docs/libnm/html/NMDeviceGeneric.html | 2 +- docs/libnm/html/NMDeviceIPTunnel.html | 2 +- docs/libnm/html/NMDeviceInfiniband.html | 2 +- docs/libnm/html/NMDeviceMacsec.html | 2 +- docs/libnm/html/NMDeviceMacvlan.html | 2 +- docs/libnm/html/NMDeviceModem.html | 2 +- docs/libnm/html/NMDeviceOlpcMesh.html | 2 +- docs/libnm/html/NMDeviceTeam.html | 2 +- docs/libnm/html/NMDeviceTun.html | 2 +- docs/libnm/html/NMDeviceVlan.html | 2 +- docs/libnm/html/NMDeviceVxlan.html | 2 +- docs/libnm/html/NMDeviceWifi.html | 2 +- docs/libnm/html/NMDeviceWimax.html | 2 +- docs/libnm/html/NMDhcpConfig.html | 2 +- docs/libnm/html/NMIPConfig.html | 2 +- docs/libnm/html/NMObject.html | 10 +- docs/libnm/html/NMRemoteConnection.html | 2 +- docs/libnm/html/NMSecretAgentOld.html | 2 +- docs/libnm/html/NMSetting.html | 2 +- docs/libnm/html/NMSetting8021x.html | 4 +- docs/libnm/html/NMSettingAdsl.html | 2 +- docs/libnm/html/NMSettingBluetooth.html | 2 +- docs/libnm/html/NMSettingBond.html | 2 +- docs/libnm/html/NMSettingBridge.html | 2 +- docs/libnm/html/NMSettingBridgePort.html | 2 +- docs/libnm/html/NMSettingCdma.html | 2 +- docs/libnm/html/NMSettingConnection.html | 2 +- docs/libnm/html/NMSettingDcb.html | 2 +- docs/libnm/html/NMSettingDummy.html | 2 +- docs/libnm/html/NMSettingGeneric.html | 2 +- docs/libnm/html/NMSettingGsm.html | 2 +- docs/libnm/html/NMSettingIP4Config.html | 2 +- docs/libnm/html/NMSettingIP6Config.html | 2 +- docs/libnm/html/NMSettingIPConfig.html | 2 +- docs/libnm/html/NMSettingIPTunnel.html | 2 +- docs/libnm/html/NMSettingInfiniband.html | 2 +- docs/libnm/html/NMSettingMacsec.html | 2 +- docs/libnm/html/NMSettingMacvlan.html | 2 +- docs/libnm/html/NMSettingOlpcMesh.html | 2 +- docs/libnm/html/NMSettingPpp.html | 2 +- docs/libnm/html/NMSettingPppoe.html | 2 +- docs/libnm/html/NMSettingSerial.html | 2 +- docs/libnm/html/NMSettingTeam.html | 2 +- docs/libnm/html/NMSettingTeamPort.html | 2 +- docs/libnm/html/NMSettingTun.html | 2 +- docs/libnm/html/NMSettingVlan.html | 2 +- docs/libnm/html/NMSettingVpn.html | 2 +- docs/libnm/html/NMSettingVxlan.html | 2 +- docs/libnm/html/NMSettingWimax.html | 2 +- docs/libnm/html/NMSettingWired.html | 2 +- docs/libnm/html/NMSettingWireless.html | 2 +- docs/libnm/html/NMSettingWirelessSecurity.html | 2 +- docs/libnm/html/NMSimpleConnection.html | 2 +- docs/libnm/html/NMVpnConnection.html | 2 +- docs/libnm/html/NMVpnEditorPlugin.html | 2 +- docs/libnm/html/NMWimaxNsp.html | 2 +- docs/libnm/html/annotation-glossary.html | 2 +- docs/libnm/html/api-index-full.html | 6 +- docs/libnm/html/ch02.html | 2 +- docs/libnm/html/ch03.html | 2 +- docs/libnm/html/ch04.html | 2 +- docs/libnm/html/ch05.html | 2 +- docs/libnm/html/ch06.html | 2 +- docs/libnm/html/index.html | 4 +- docs/libnm/html/libnm-nm-dbus-interface.html | 2 +- docs/libnm/html/libnm-nm-errors.html | 2 +- docs/libnm/html/libnm-nm-utils.html | 2 +- docs/libnm/html/libnm-nm-version.html | 2 +- docs/libnm/html/libnm-nm-vpn-dbus-interface.html | 2 +- docs/libnm/html/object-tree.html | 2 +- docs/libnm/html/ref-overview.html | 2 +- docs/libnm/html/usage.html | 4 +- docs/libnm/libnm-sections.txt | 5 + docs/libnm/version.xml | 2 +- .../org.freedesktop.NetworkManager.Device.xml | 15 + introspection/org.freedesktop.NetworkManager.xml | 15 +- libnm-core/nm-connection.c | 31 + libnm-core/nm-core-internal.h | 18 + libnm-core/nm-setting-8021x.h | 2 +- libnm-core/nm-setting-bond.c | 22 +- libnm-core/nm-setting-vlan.c | 1 + libnm-core/tests/test-general.c | 116 +- libnm-core/tests/test-setting-bond.c | 49 + libnm/nm-client.c | 77 +- libnm/nm-device.c | 188 +-- libnm/nm-libnm-utils.c | 162 +++ libnm/nm-libnm-utils.h | 26 + libnm/nm-object.c | 10 +- libnm/nm-property-docs.xml | 2 +- libnm/nm-settings-docs.xml | 2 +- libnm/tests/test-general.c | 69 ++ m4/compiler_options.m4 | 2 + man/NetworkManager.8 | 8 +- man/NetworkManager.conf.5 | 19 +- man/NetworkManager.conf.xml | 15 +- man/nm-online.1 | 8 +- man/nm-settings-ifcfg-rh.5 | 8 +- man/nm-settings-ifcfg-rh.xml | 2 +- man/nm-settings-keyfile.5 | 8 +- man/nm-settings-keyfile.xml | 2 +- man/nm-settings.5 | 10 +- man/nm-settings.xml | 4 +- man/nmcli-examples.7 | 8 +- man/nmcli.1 | 8 +- man/nmtui.1 | 8 +- po/ja.po | 1250 ++++++++++---------- shared/nm-utils/nm-macros-internal.h | 13 +- shared/nm-utils/nm-shared-utils.c | 138 +++ shared/nm-utils/nm-shared-utils.h | 16 + shared/nm-utils/nm-test-utils.h | 9 + shared/nm-utils/nm-udev-utils.c | 12 +- shared/nm-version-macros.h | 2 +- src/devices/bluetooth/nm-bluez-device.c | 6 +- src/devices/nm-device-bond.c | 35 +- src/devices/nm-device-ethernet.c | 7 +- src/devices/nm-device-infiniband.c | 2 +- src/devices/nm-device-ip-tunnel.c | 2 +- src/devices/nm-device-logging.h | 22 +- src/devices/nm-device-private.h | 4 - src/devices/nm-device-vlan.c | 2 +- src/devices/nm-device.c | 470 +++++--- src/devices/nm-device.h | 36 +- src/devices/wifi/nm-device-wifi.c | 2 +- src/dhcp/nm-dhcp-utils.c | 37 - src/dns/nm-dns-dnsmasq.c | 14 +- src/dns/nm-dns-manager.c | 68 +- src/dns/nm-dns-manager.h | 2 + src/dns/nm-dns-plugin.c | 2 +- src/dns/nm-dns-plugin.h | 4 +- src/dns/nm-dns-systemd-resolved.c | 29 +- src/dns/nm-dns-unbound.c | 2 +- src/nm-active-connection.c | 46 +- src/nm-checkpoint.c | 11 + src/nm-config.c | 78 +- src/nm-config.h | 8 +- src/nm-connectivity.c | 31 +- src/nm-ip4-config.c | 12 + src/nm-logging.h | 31 + src/nm-manager.c | 364 +++--- src/nm-pacrunner-manager.c | 2 +- src/platform/nm-linux-platform.c | 20 +- src/platform/nm-platform.c | 26 +- src/platform/nm-platform.h | 2 +- src/platform/tests/test-common.c | 2 +- src/platform/tests/test-general.c | 2 +- src/ppp/nm-ppp-manager.c | 144 +-- src/settings/nm-settings-connection.c | 39 +- .../plugins/ifcfg-rh/nms-ifcfg-rh-writer.c | 112 +- src/settings/plugins/ifcfg-rh/shvar.c | 22 + src/settings/plugins/ifcfg-rh/shvar.h | 2 + .../ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 | 14 + .../network-scripts/ifcfg-netmask-1.cexpected | 23 + .../plugins/ifcfg-rh/tests/test-ifcfg-rh.c | 62 +- src/supplicant/nm-supplicant-interface.c | 12 +- src/supplicant/tests/test-supplicant-config.c | 2 +- 365 files changed, 4296 insertions(+), 2957 deletions(-) create mode 100644 libnm/nm-libnm-utils.c create mode 100644 libnm/nm-libnm-utils.h create mode 100644 libnm/tests/test-general.c create mode 100644 src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 create mode 100644 src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected diff --git a/Makefile.am b/Makefile.am index 709d79b7..9c5b6661 100644 --- a/Makefile.am +++ b/Makefile.am @@ -613,6 +613,9 @@ GLIB_GENERATED += \ libnm-core/tests/nm-core-tests-enum-types.c nm_core_tests_enum_types_sources = libnm-core/tests/test-general-enums.h +libnm-core/tests/nm-core-tests-enum-types.h.stamp: libnm-core/tests/.dirstamp +libnm-core/tests/nm-core-tests-enum-types.c.stamp: libnm-core/tests/.dirstamp + $(libnm_core_tests_test_general_OBJECTS): libnm-core/tests/nm-core-tests-enum-types.h libnm_core_tests_cppflags = \ @@ -734,6 +737,7 @@ libnm_lib_h_pub_nointrospect = \ libnm_lib_h_pub_mkenums = \ libnm/nm-enum-types.h libnm_lib_h_priv = \ + libnm/nm-libnm-utils.h \ libnm/nm-dbus-helpers.h \ libnm/nm-device-private.h \ libnm/nm-dhcp4-config.h \ @@ -790,6 +794,14 @@ libnm_lib_c_real = \ libnm_lib_c_mkenums = \ libnm/nm-enum-types.c +libnm_lib_cppflags = \ + $(dflt_cppflags_libnm_core) \ + -I$(srcdir)/libnm \ + -I$(builddir)/libnm \ + -DG_LOG_DOMAIN=\""libnm"\" \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \ + -DNMRUNDIR=\"$(nmrundir)\" + libnminclude_HEADERS += \ $(libnm_lib_h_pub_real) \ $(libnm_lib_h_pub_nointrospect) @@ -799,6 +811,23 @@ nodist_libnminclude_HEADERS += \ ############################################################################### +noinst_LTLIBRARIES += libnm/libnm-utils.la + +libnm_libnm_utils_la_CPPFLAGS = \ + $(libnm_lib_cppflags) + +libnm_libnm_utils_la_SOURCES = \ + libnm/nm-libnm-utils.c + +libnm_libnm_utils_la_LIBADD = \ + libnm-core/libnm-core.la \ + introspection/libnmdbus.la \ + $(GLIB_LIBS) + +$(libnm_libnm_utils_la_OBJECTS) : $(libnm_lib_h_pub_mkenums) + +############################################################################### + lib_LTLIBRARIES += libnm/libnm.la GLIB_GENERATED += \ @@ -817,13 +846,8 @@ $(libnm_libnm_la_OBJECTS): $(libnm_lib_h_pub_mkenum $(libnm_tests_libnm_vpn_plugin_utils_test_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums) libnm_libnm_la_CPPFLAGS = \ - $(dflt_cppflags_libnm_core) \ - -I$(srcdir)/libnm \ - -I$(builddir)/libnm \ - $(LIBUDEV_CFLAGS) \ - -DG_LOG_DOMAIN=\""libnm"\" \ - -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \ - -DNMRUNDIR=\"$(nmrundir)\" + $(libnm_lib_cppflags) \ + $(LIBUDEV_CFLAGS) libnm_libnm_la_SOURCES = \ $(libnm_lib_h_pub_real) \ @@ -839,8 +863,7 @@ EXTRA_libnm_libnm_la_DEPENDENCIES = \ libnm/libnm.ver libnm_libnm_la_LIBADD = \ - libnm-core/libnm-core.la \ - introspection/libnmdbus.la \ + libnm/libnm-utils.la \ $(DL_LIBS) \ $(GLIB_LIBS) \ $(UUID_LIBS) \ @@ -947,6 +970,7 @@ EXTRA_DIST += \ ############################################################################### libnm_tests_programs = \ + libnm/tests/test-general \ libnm/tests/test-nm-client \ libnm/tests/test-remote-settings-client \ libnm/tests/test-secret-agent @@ -964,10 +988,14 @@ libnm_tests_ldadd = \ libnm/libnm.la \ $(GLIB_LIBS) +libnm_tests_test_general_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_nm_client_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_remote_settings_client_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_secret_agent_CPPFLAGS = $(libnm_tests_cppflags) +libnm_tests_test_general_SOURCES = \ + libnm/tests/test-general.c + libnm_tests_test_nm_client_SOURCES = \ shared/nm-test-utils-impl.c \ shared/nm-test-libnm-utils.h \ @@ -983,10 +1011,14 @@ libnm_tests_test_secret_agent_SOURCES = \ shared/nm-test-libnm-utils.h \ libnm/tests/test-secret-agent.c +libnm_tests_test_general_LDADD = \ + libnm/libnm-utils.la \ + $(libnm_tests_ldadd) libnm_tests_test_nm_client_LDADD = $(libnm_tests_ldadd) libnm_tests_test_remote_settings_client_LDADD = $(libnm_tests_ldadd) libnm_tests_test_secret_agent_LDADD = $(libnm_tests_ldadd) +$(libnm_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_nm_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_secret_agent_OBJECTS): $(libnm_core_lib_h_pub_mkenums) @@ -1974,154 +2006,155 @@ $(src_settings_plugins_ifcfg_rh_tests_test_ifcfg_rh_OBJECTS): $(libnm_core_lib_h endif EXTRA_DIST += \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_User_1.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Team_Port.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_always.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_default.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_missing.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_never.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-eth-type \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-main \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-mode-numeric \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave-ib \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-component \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-main \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-missing-stp \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-booleans \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-percent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-uints \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-default-app-priorities \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-pgpct-not-100 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-booleans \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-percent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-uints \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dns-options \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-minimal \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-misc-variables \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-variables-corner-cases-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-nm-controlled \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-nm-controlled-unrecognized \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-unrecognized \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-bootproto \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-plus-ip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-shared-plus-ip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-send-hostname \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcpv6-hostname-fallback \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp6-only \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-autoip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-obsolete-gateway-n \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-never-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-never-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no-gatewaydev-yes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-defroute-no-gatewaydev-yes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-8021x-peap-mschapv2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-agent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-always \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1X-subj-matches \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-onboot-no \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-noip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-onboot-no \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-permissions \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-read-proxy-basic \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-empty-config \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-unrecognized \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-variables-corner-cases-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-interface \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-device \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-vlanid \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-physdev \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-dynamic-wep-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-hidden \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-agent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-always-ask \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-always \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-missing \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-never \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-auto \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-quoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-quoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-bad-hex \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-hex \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-bad-hex \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-quoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-quoted \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-40-ascii \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-adhoc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-agent-keys \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-agent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-always-ask \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted2 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-adhoc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-adhoc \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-ttls-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-hidden \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-always \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-never \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-missing \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/test_ca_cert.pem \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/test1_key_and_cert.pem \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1X-subj-matches \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-agent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-always \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-auto-negotiate-on \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-autoip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ctc-static \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no-gatewaydev-yes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-plus-ip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-send-hostname \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp6-only \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcpv6-hostname-fallback \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway-ignore \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-2 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-3 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-4 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-manual \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-8 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-16 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-24 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-passphrase \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-40-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-40-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-104-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-never-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-obsolete-gateway-n \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-qeth-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ctc-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-main \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-component \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-missing-stp \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-interface \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-vlanid \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-device \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-physdev \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-permissions \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-agent-keys \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-dynamic-wep-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-dynamic-wep-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-eth-type \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-main \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave-ib \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-mode-numeric \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-default-app-priorities \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-booleans \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-booleans \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-uints \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-uints \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-percent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-percent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-pgpct-not-100 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-empty-config \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-read-proxy-basic \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dns-options \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-wake-on-lan \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-auto-negotiate-on \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-shared-plus-ip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-bootproto \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-16 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-24 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-8 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes-legacy \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-unknown-ethtool-opt \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-wake-on-lan \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-1.expected \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-2 \ @@ -2130,32 +2163,34 @@ EXTRA_DIST += \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-3.expected \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4.expected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Team_Port.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_always.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_default.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_missing.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_never.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_User_1.cexpected + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-dynamic-wep-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-40-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-passphrase \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-ttls-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-hex \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-8021x-peap-mschapv2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-defroute-no-gatewaydev-yes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway-ignore \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-never-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/test1_key_and_cert.pem \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/test_ca_cert.pem \ + $(NULL) # make target dependencies can't have colons in their names, which ends up # meaning that we can't add the alias files to EXTRA_DIST. They are instead diff --git a/Makefile.in b/Makefile.in index 2dfe0d0a..573ead4d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -995,10 +995,14 @@ libnm_util_libtest_crypto_la_OBJECTS = \ $(am_libnm_util_libtest_crypto_la_OBJECTS) @ENABLE_TESTS_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_util_libtest_crypto_la_rpath = @ENABLE_TESTS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am_libnm_util_libtest_crypto_la_rpath = -libnm_libnm_la_DEPENDENCIES = libnm-core/libnm-core.la \ - introspection/libnmdbus.la $(am__DEPENDENCIES_1) \ +libnm_libnm_utils_la_DEPENDENCIES = libnm-core/libnm-core.la \ + introspection/libnmdbus.la $(am__DEPENDENCIES_1) +am_libnm_libnm_utils_la_OBJECTS = \ + libnm/libnm_libnm_utils_la-nm-libnm-utils.lo +libnm_libnm_utils_la_OBJECTS = $(am_libnm_libnm_utils_la_OBJECTS) +libnm_libnm_la_DEPENDENCIES = libnm/libnm-utils.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__objects_17 = libnm/libnm_libnm_la-nm-access-point.lo \ libnm/libnm_libnm_la-nm-active-connection.lo \ libnm/libnm_libnm_la-nm-client.lo \ @@ -1657,7 +1661,8 @@ src_settings_plugins_ifupdown_libnms_ifupdown_core_la_OBJECTS = $(am_src_setting @CONFIG_PLUGIN_IFUPDOWN_TRUE@am_src_settings_plugins_ifupdown_libnms_ifupdown_core_la_rpath = @BUILD_NMCLI_TRUE@am__EXEEXT_1 = clients/cli/nmcli$(EXEEXT) @BUILD_NMTUI_TRUE@am__EXEEXT_2 = clients/tui/nmtui$(EXEEXT) -am__EXEEXT_3 = libnm/tests/test-nm-client$(EXEEXT) \ +am__EXEEXT_3 = libnm/tests/test-general$(EXEEXT) \ + libnm/tests/test-nm-client$(EXEEXT) \ libnm/tests/test-remote-settings-client$(EXEEXT) \ libnm/tests/test-secret-agent$(EXEEXT) @CONFIG_PLUGIN_IBFT_TRUE@am__EXEEXT_4 = src/settings/plugins/ibft/tests/test-ibft$(EXEEXT) @@ -2086,11 +2091,17 @@ libnm_util_tests_test_settings_defaults_SOURCES = \ libnm_util_tests_test_settings_defaults_OBJECTS = libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.$(OBJEXT) @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_tests_test_settings_defaults_DEPENDENCIES = \ @WITH_LEGACY_LIBRARIES_TRUE@ $(am__DEPENDENCIES_11) +am_libnm_tests_test_general_OBJECTS = \ + libnm/tests/libnm_tests_test_general-test-general.$(OBJEXT) +libnm_tests_test_general_OBJECTS = \ + $(am_libnm_tests_test_general_OBJECTS) +am__DEPENDENCIES_12 = libnm/libnm.la $(am__DEPENDENCIES_1) +libnm_tests_test_general_DEPENDENCIES = libnm/libnm-utils.la \ + $(am__DEPENDENCIES_12) am_libnm_tests_test_nm_client_OBJECTS = shared/libnm_tests_test_nm_client-nm-test-utils-impl.$(OBJEXT) \ libnm/tests/libnm_tests_test_nm_client-test-nm-client.$(OBJEXT) libnm_tests_test_nm_client_OBJECTS = \ $(am_libnm_tests_test_nm_client_OBJECTS) -am__DEPENDENCIES_12 = libnm/libnm.la $(am__DEPENDENCIES_1) libnm_tests_test_nm_client_DEPENDENCIES = $(am__DEPENDENCIES_12) am_libnm_tests_test_remote_settings_client_OBJECTS = shared/libnm_tests_test_remote_settings_client-nm-test-utils-impl.$(OBJEXT) \ libnm/tests/libnm_tests_test_remote_settings_client-test-remote-settings-client.$(OBJEXT) @@ -2510,7 +2521,8 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ $(libnm_util_libnm_util_la_SOURCES) \ $(nodist_libnm_util_libnm_util_la_SOURCES) \ $(libnm_util_libtest_crypto_la_SOURCES) \ - $(libnm_libnm_la_SOURCES) $(nodist_libnm_libnm_la_SOURCES) \ + $(libnm_libnm_utils_la_SOURCES) $(libnm_libnm_la_SOURCES) \ + $(nodist_libnm_libnm_la_SOURCES) \ $(libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES) \ $(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \ $(src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES) \ @@ -2568,6 +2580,7 @@ SOURCES = $(clients_tui_newt_libnmt_newt_a_SOURCES) \ libnm-util/tests/test-setting-8021x.c \ libnm-util/tests/test-setting-dcb.c \ libnm-util/tests/test-settings-defaults.c \ + $(libnm_tests_test_general_SOURCES) \ $(libnm_tests_test_nm_client_SOURCES) \ $(libnm_tests_test_remote_settings_client_SOURCES) \ $(libnm_tests_test_secret_agent_SOURCES) \ @@ -2613,7 +2626,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \ $(am__libnm_glib_libnm_glib_la_SOURCES_DIST) \ $(am__libnm_util_libnm_util_la_SOURCES_DIST) \ $(am__libnm_util_libtest_crypto_la_SOURCES_DIST) \ - $(libnm_libnm_la_SOURCES) \ + $(libnm_libnm_utils_la_SOURCES) $(libnm_libnm_la_SOURCES) \ $(libnm_tests_libnm_vpn_plugin_utils_test_la_SOURCES) \ $(src_devices_adsl_libnm_device_plugin_adsl_la_SOURCES) \ $(am__src_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES_DIST) \ @@ -2668,6 +2681,7 @@ DIST_SOURCES = $(am__clients_tui_newt_libnmt_newt_a_SOURCES_DIST) \ libnm-util/tests/test-setting-8021x.c \ libnm-util/tests/test-setting-dcb.c \ libnm-util/tests/test-settings-defaults.c \ + $(libnm_tests_test_general_SOURCES) \ $(libnm_tests_test_nm_client_SOURCES) \ $(libnm_tests_test_remote_settings_client_SOURCES) \ $(libnm_tests_test_secret_agent_SOURCES) \ @@ -3344,11 +3358,14 @@ _vapi_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1)))) ############################################################################### AUTOMAKE_OPTIONS = subdir-objects +############################################################################### + ############################################################################### noinst_LTLIBRARIES = introspection/libnmdbus.la \ - libnm-core/libnm-core.la src/libNetworkManagerBase.la \ - src/libNetworkManager.la src/libsystemd-nm.la $(am__append_22) \ - $(am__append_27) $(am__append_33) $(am__append_37) \ + libnm-core/libnm-core.la libnm/libnm-utils.la \ + src/libNetworkManagerBase.la src/libNetworkManager.la \ + src/libsystemd-nm.la $(am__append_22) $(am__append_27) \ + $(am__append_33) $(am__append_37) \ dispatcher/libnm-dispatcher-core.la $(am__append_85) \ $(am__append_100) check_LTLIBRARIES = $(am__append_102) @@ -3465,154 +3482,155 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \ src/settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem \ src/settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem \ $(am__append_24) \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_User_1.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Team_Port.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_always.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_default.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_missing.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_never.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-eth-type \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-main \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-mode-numeric \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave-ib \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-component \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-main \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-missing-stp \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-booleans \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-percent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-uints \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-default-app-priorities \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-pgpct-not-100 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-booleans \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-percent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-uints \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dns-options \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-minimal \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-misc-variables \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-variables-corner-cases-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-nm-controlled \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-nm-controlled-unrecognized \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-unrecognized \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-bootproto \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-plus-ip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-shared-plus-ip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-send-hostname \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcpv6-hostname-fallback \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp6-only \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-autoip \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-obsolete-gateway-n \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-never-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-never-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no-gatewaydev-yes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-defroute-no-gatewaydev-yes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-8021x-peap-mschapv2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-agent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-always \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1X-subj-matches \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-onboot-no \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-noip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-onboot-no \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-permissions \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-read-proxy-basic \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-empty-config \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-unrecognized \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-variables-corner-cases-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-interface \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-device \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-vlanid \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-physdev \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-dynamic-wep-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-hidden \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-agent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-always-ask \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-always \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-missing \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-never \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-auto \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-quoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-quoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-bad-hex \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-hex \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-bad-hex \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-long-quoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-open-ssid-quoted \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-40-ascii \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-adhoc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-agent-keys \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-eap-ttls-chap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-agent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-leap-always-ask \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted2 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-adhoc \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-adhoc \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-hex \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-eap-ttls-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-ttls-tls \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-hidden \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-a-channel-mismatch \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-band-bg-channel-mismatch \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-always \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-never \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-default \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-mac-random-missing \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/test_ca_cert.pem \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/test1_key_and_cert.pem \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-sit-ignore \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes-legacy \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wpa-psk-unquoted2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1X-subj-matches \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-802-1x-ttls-eapgtc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-agent \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-tls-always \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-auto-negotiate-on \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-autoip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ctc-static \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-defroute-no-gatewaydev-yes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-plus-ip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp-send-hostname \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcp6-only \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-dhcpv6-hostname-fallback \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-global-gateway-ignore \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-2 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-3 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv4-manual-4 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-manual \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-8 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-16 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-24 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-passphrase \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-passphrase \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-40-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-40-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-104-ascii \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-never-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-obsolete-gateway-n \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-qeth-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ctc-static \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-main \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-component \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bridge-missing-stp \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-interface \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-vlanid \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-only-device \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-physdev \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-reorder-hdr-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-flags-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-no-keys \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-permissions \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-wep-agent-keys \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wifi-dynamic-wep-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-dynamic-wep-leap \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-eth-type \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-main \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-slave-ib \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-bond-mode-numeric \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-default-app-priorities \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-booleans \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-booleans \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-uints \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-uints \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-bad-percent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-short-percent \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dcb-pgpct-not-100 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-master-invalid \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-1 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-2 \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-team-port-empty-config \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-read-proxy-basic \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-vlan-trailing-spaces \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-dns-options \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-wake-on-lan \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-auto-negotiate-on \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-shared-plus-ip \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-bootproto \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-16 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-24 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-no-prefix-8 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-static-routes-legacy \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-unknown-ethtool-opt \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-ipv6-only-1 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-wake-on-lan \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-1 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-1.expected \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-2 \ @@ -3621,33 +3639,34 @@ EXTRA_DIST = $(dbusinterfaces_DATA) libnm-core/crypto_gnutls.c \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-3.expected \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4 \ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-write-unknown-4.expected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-wired-802-1X-subj-matches.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bond_Main.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Bridge_Component.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Permissions.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Proxy_Basic.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Team_Port.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_VLAN_reorder_hdr.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Band_A.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_Hidden.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_always.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_default.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_missing.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_WiFi_MAC_never.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-random_wifi_connection_2.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-team-slave-enp31s0f1-142.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-static-routes-legacy.cexpected \ - src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_User_1.cexpected \ - src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-dynamic-wep-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-leap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-104-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-40-ascii \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-eap-ttls-chap \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wep-passphrase \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-eap-ttls-tls \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-adhoc \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-hex \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wifi-wpa-psk-unquoted2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/keys-test-wired-8021x-peap-mschapv2 \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-defroute-no-gatewaydev-yes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-global-gateway-ignore \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/network-test-wired-never-default \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes-legacy \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/route6-test-wired-ipv6-manual \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/test1_key_and_cert.pem \ + src/settings/plugins/ifcfg-rh/tests/network-scripts/test_ca_cert.pem \ + $(NULL) src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf \ src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml \ src/settings/plugins/ifupdown/tests/test1 \ src/settings/plugins/ifupdown/tests/test2 \ @@ -4340,6 +4359,7 @@ libnm_lib_h_pub_mkenums = \ libnm/nm-enum-types.h libnm_lib_h_priv = \ + libnm/nm-libnm-utils.h \ libnm/nm-dbus-helpers.h \ libnm/nm-device-private.h \ libnm/nm-dhcp4-config.h \ @@ -4398,6 +4418,25 @@ libnm_lib_c_real = \ libnm_lib_c_mkenums = \ libnm/nm-enum-types.c +libnm_lib_cppflags = \ + $(dflt_cppflags_libnm_core) \ + -I$(srcdir)/libnm \ + -I$(builddir)/libnm \ + -DG_LOG_DOMAIN=\""libnm"\" \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \ + -DNMRUNDIR=\"$(nmrundir)\" + +libnm_libnm_utils_la_CPPFLAGS = \ + $(libnm_lib_cppflags) + +libnm_libnm_utils_la_SOURCES = \ + libnm/nm-libnm-utils.c + +libnm_libnm_utils_la_LIBADD = \ + libnm-core/libnm-core.la \ + introspection/libnmdbus.la \ + $(GLIB_LIBS) + nm_enum_types_sources = \ $(libnm_lib_h_pub_mkenums) \ $(libnm_lib_h_pub_real) \ @@ -4406,13 +4445,8 @@ nm_enum_types_sources = \ nm_enum_types_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include \n' nm_enum_types_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n' libnm_libnm_la_CPPFLAGS = \ - $(dflt_cppflags_libnm_core) \ - -I$(srcdir)/libnm \ - -I$(builddir)/libnm \ - $(LIBUDEV_CFLAGS) \ - -DG_LOG_DOMAIN=\""libnm"\" \ - -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \ - -DNMRUNDIR=\"$(nmrundir)\" + $(libnm_lib_cppflags) \ + $(LIBUDEV_CFLAGS) libnm_libnm_la_SOURCES = \ $(libnm_lib_h_pub_real) \ @@ -4428,8 +4462,7 @@ EXTRA_libnm_libnm_la_DEPENDENCIES = \ libnm/libnm.ver libnm_libnm_la_LIBADD = \ - libnm-core/libnm-core.la \ - introspection/libnmdbus.la \ + libnm/libnm-utils.la \ $(DL_LIBS) \ $(GLIB_LIBS) \ $(UUID_LIBS) \ @@ -4468,6 +4501,7 @@ libnm_libnm_la_LDFLAGS = \ ############################################################################### libnm_tests_programs = \ + libnm/tests/test-general \ libnm/tests/test-nm-client \ libnm/tests/test-remote-settings-client \ libnm/tests/test-secret-agent @@ -4483,9 +4517,13 @@ libnm_tests_ldadd = \ libnm/libnm.la \ $(GLIB_LIBS) +libnm_tests_test_general_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_nm_client_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_remote_settings_client_CPPFLAGS = $(libnm_tests_cppflags) libnm_tests_test_secret_agent_CPPFLAGS = $(libnm_tests_cppflags) +libnm_tests_test_general_SOURCES = \ + libnm/tests/test-general.c + libnm_tests_test_nm_client_SOURCES = \ shared/nm-test-utils-impl.c \ shared/nm-test-libnm-utils.h \ @@ -4501,6 +4539,10 @@ libnm_tests_test_secret_agent_SOURCES = \ shared/nm-test-libnm-utils.h \ libnm/tests/test-secret-agent.c +libnm_tests_test_general_LDADD = \ + libnm/libnm-utils.la \ + $(libnm_tests_ldadd) + libnm_tests_test_nm_client_LDADD = $(libnm_tests_ldadd) libnm_tests_test_remote_settings_client_LDADD = $(libnm_tests_ldadd) libnm_tests_test_secret_agent_LDADD = $(libnm_tests_ldadd) @@ -7336,6 +7378,11 @@ libnm/$(am__dirstamp): libnm/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libnm/$(DEPDIR) @: > libnm/$(DEPDIR)/$(am__dirstamp) +libnm/libnm_libnm_utils_la-nm-libnm-utils.lo: libnm/$(am__dirstamp) \ + libnm/$(DEPDIR)/$(am__dirstamp) + +libnm/libnm-utils.la: $(libnm_libnm_utils_la_OBJECTS) $(libnm_libnm_utils_la_DEPENDENCIES) $(EXTRA_libnm_libnm_utils_la_DEPENDENCIES) libnm/$(am__dirstamp) + $(AM_V_CCLD)$(LINK) $(libnm_libnm_utils_la_OBJECTS) $(libnm_libnm_utils_la_LIBADD) $(LIBS) libnm/libnm_libnm_la-nm-access-point.lo: libnm/$(am__dirstamp) \ libnm/$(DEPDIR)/$(am__dirstamp) libnm/libnm_libnm_la-nm-active-connection.lo: libnm/$(am__dirstamp) \ @@ -8840,11 +8887,18 @@ libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults. libnm-util/tests/test-settings-defaults$(EXEEXT): $(libnm_util_tests_test_settings_defaults_OBJECTS) $(libnm_util_tests_test_settings_defaults_DEPENDENCIES) $(EXTRA_libnm_util_tests_test_settings_defaults_DEPENDENCIES) libnm-util/tests/$(am__dirstamp) @rm -f libnm-util/tests/test-settings-defaults$(EXEEXT) $(AM_V_CCLD)$(LINK) $(libnm_util_tests_test_settings_defaults_OBJECTS) $(libnm_util_tests_test_settings_defaults_LDADD) $(LIBS) -shared/libnm_tests_test_nm_client-nm-test-utils-impl.$(OBJEXT): \ - shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp) libnm/tests/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) libnm/tests/$(DEPDIR) @: > libnm/tests/$(DEPDIR)/$(am__dirstamp) +libnm/tests/libnm_tests_test_general-test-general.$(OBJEXT): \ + libnm/tests/$(am__dirstamp) \ + libnm/tests/$(DEPDIR)/$(am__dirstamp) + +libnm/tests/test-general$(EXEEXT): $(libnm_tests_test_general_OBJECTS) $(libnm_tests_test_general_DEPENDENCIES) $(EXTRA_libnm_tests_test_general_DEPENDENCIES) libnm/tests/$(am__dirstamp) + @rm -f libnm/tests/test-general$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(libnm_tests_test_general_OBJECTS) $(libnm_tests_test_general_LDADD) $(LIBS) +shared/libnm_tests_test_nm_client-nm-test-utils-impl.$(OBJEXT): \ + shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp) libnm/tests/libnm_tests_test_nm_client-test-nm-client.$(OBJEXT): \ libnm/tests/$(am__dirstamp) \ libnm/tests/$(DEPDIR)/$(am__dirstamp) @@ -9647,6 +9701,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-vpn-plugin-old.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-vpn-service-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_la-nm-wimax-nsp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libnm/$(DEPDIR)/libnm_libnm_utils_la-nm-libnm-utils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_nm_client-test-nm-client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_remote_settings_client-test-remote-settings-client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@libnm/tests/$(DEPDIR)/libnm_tests_test_secret_agent-test-secret-agent.Po@am__quote@ @@ -11385,6 +11441,13 @@ libnm-util/libnm_util_libtest_crypto_la-crypto_nss.lo: libnm-util/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_util_libtest_crypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-util/libnm_util_libtest_crypto_la-crypto_nss.lo `test -f 'libnm-util/crypto_nss.c' || echo '$(srcdir)/'`libnm-util/crypto_nss.c +libnm/libnm_libnm_utils_la-nm-libnm-utils.lo: libnm/nm-libnm-utils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/libnm_libnm_utils_la-nm-libnm-utils.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_libnm_utils_la-nm-libnm-utils.Tpo -c -o libnm/libnm_libnm_utils_la-nm-libnm-utils.lo `test -f 'libnm/nm-libnm-utils.c' || echo '$(srcdir)/'`libnm/nm-libnm-utils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_libnm_utils_la-nm-libnm-utils.Tpo libnm/$(DEPDIR)/libnm_libnm_utils_la-nm-libnm-utils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/nm-libnm-utils.c' object='libnm/libnm_libnm_utils_la-nm-libnm-utils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_utils_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/libnm_libnm_utils_la-nm-libnm-utils.lo `test -f 'libnm/nm-libnm-utils.c' || echo '$(srcdir)/'`libnm/nm-libnm-utils.c + libnm/libnm_libnm_la-nm-access-point.lo: libnm/nm-access-point.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_libnm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/libnm_libnm_la-nm-access-point.lo -MD -MP -MF libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Tpo -c -o libnm/libnm_libnm_la-nm-access-point.lo `test -f 'libnm/nm-access-point.c' || echo '$(srcdir)/'`libnm/nm-access-point.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Tpo libnm/$(DEPDIR)/libnm_libnm_la-nm-access-point.Plo @@ -14269,6 +14332,20 @@ libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults. @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_util_tests_test_settings_defaults_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm-util/tests/libnm_util_tests_test_settings_defaults-test-settings-defaults.obj `if test -f 'libnm-util/tests/test-settings-defaults.c'; then $(CYGPATH_W) 'libnm-util/tests/test-settings-defaults.c'; else $(CYGPATH_W) '$(srcdir)/libnm-util/tests/test-settings-defaults.c'; fi` +libnm/tests/libnm_tests_test_general-test-general.o: libnm/tests/test-general.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/tests/libnm_tests_test_general-test-general.o -MD -MP -MF libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo -c -o libnm/tests/libnm_tests_test_general-test-general.o `test -f 'libnm/tests/test-general.c' || echo '$(srcdir)/'`libnm/tests/test-general.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/tests/test-general.c' object='libnm/tests/libnm_tests_test_general-test-general.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/tests/libnm_tests_test_general-test-general.o `test -f 'libnm/tests/test-general.c' || echo '$(srcdir)/'`libnm/tests/test-general.c + +libnm/tests/libnm_tests_test_general-test-general.obj: libnm/tests/test-general.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm/tests/libnm_tests_test_general-test-general.obj -MD -MP -MF libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo -c -o libnm/tests/libnm_tests_test_general-test-general.obj `if test -f 'libnm/tests/test-general.c'; then $(CYGPATH_W) 'libnm/tests/test-general.c'; else $(CYGPATH_W) '$(srcdir)/libnm/tests/test-general.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Tpo libnm/tests/$(DEPDIR)/libnm_tests_test_general-test-general.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libnm/tests/test-general.c' object='libnm/tests/libnm_tests_test_general-test-general.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnm/tests/libnm_tests_test_general-test-general.obj `if test -f 'libnm/tests/test-general.c'; then $(CYGPATH_W) 'libnm/tests/test-general.c'; else $(CYGPATH_W) '$(srcdir)/libnm/tests/test-general.c'; fi` + shared/libnm_tests_test_nm_client-nm-test-utils-impl.o: shared/nm-test-utils-impl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_tests_test_nm_client_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT shared/libnm_tests_test_nm_client-nm-test-utils-impl.o -MD -MP -MF shared/$(DEPDIR)/libnm_tests_test_nm_client-nm-test-utils-impl.Tpo -c -o shared/libnm_tests_test_nm_client-nm-test-utils-impl.o `test -f 'shared/nm-test-utils-impl.c' || echo '$(srcdir)/'`shared/nm-test-utils-impl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/libnm_tests_test_nm_client-nm-test-utils-impl.Tpo shared/$(DEPDIR)/libnm_tests_test_nm_client-nm-test-utils-impl.Po @@ -16025,6 +16102,13 @@ libnm-core/tests/test-settings-defaults.log: libnm-core/tests/test-settings-defa --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +libnm/tests/test-general.log: libnm/tests/test-general$(EXEEXT) + @p='libnm/tests/test-general$(EXEEXT)'; \ + b='libnm/tests/test-general'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) libnm/tests/test-nm-client.log: libnm/tests/test-nm-client$(EXEEXT) @p='libnm/tests/test-nm-client$(EXEEXT)'; \ b='libnm/tests/test-nm-client'; \ @@ -16991,6 +17075,9 @@ libnm-core/nm-dbus-types.xml: libnm-core/nm-dbus-interface.h tools/enums-to-docb @$(MKDIR_P) libnm-core/ $(AM_V_GEN) @PERL@ $(srcdir)/tools/enums-to-docbook.pl 'nm-dbus-types' 'NetworkManager D-Bus API Types' $< >$@ +libnm-core/tests/nm-core-tests-enum-types.h.stamp: libnm-core/tests/.dirstamp +libnm-core/tests/nm-core-tests-enum-types.c.stamp: libnm-core/tests/.dirstamp + $(libnm_core_tests_test_general_OBJECTS): libnm-core/tests/nm-core-tests-enum-types.h $(libnm_core_tests_test_compare_OBJECTS): $(libnm_core_lib_h_pub_mkenums) @@ -17003,6 +17090,8 @@ $(libnm_core_tests_test_setting_bond_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_core_tests_test_setting_dcb_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_core_tests_test_settings_defaults_OBJECTS): $(libnm_core_lib_h_pub_mkenums) +$(libnm_libnm_utils_la_OBJECTS) : $(libnm_lib_h_pub_mkenums) + $(dispatcher_nm_dispatcher_OBJECTS): $(libnm_lib_h_pub_mkenums) $(dispatcher_libnm_dispatcher_core_la_OBJECTS): $(libnm_lib_h_pub_mkenums) $(libnm_libnm_la_OBJECTS): $(libnm_lib_h_pub_mkenums) @@ -17048,6 +17137,7 @@ check-local-exports-libnm: libnm/libnm.la @HAVE_INTROSPECTION_TRUE@libnm/nm-settings-ifcfg-rh-docs.xml: libnm/generate-plugin-docs.pl $(libnm_docs_sources) @HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN) $(srcdir)/libnm/generate-plugin-docs.pl ifcfg-rh "$(srcdir)" $@ +$(libnm_tests_test_general_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_nm_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_remote_settings_client_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(libnm_tests_test_secret_agent_OBJECTS): $(libnm_core_lib_h_pub_mkenums) diff --git a/NEWS b/NEWS index 63284c3f..6d6c1b4c 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,20 @@ +============================================== +NetworkManager-1.8.2 +Overview of changes since NetworkManager-1.8.0 +============================================== + +This is a new stable release of NetworkManager. Notable changes include: + +* Fix bug blocking startup wrongly waiting for carrier. +* Fix handling of non UTF-8 strings in libnm and fix non NUL + terminated string. +* Handle DNS priority for systemd-resolved DNS plugin. +* Fix assuming master devices as they wait for slaves to activate. +* Fix reading managed state from device state file. +* Fix crash activating bluetooth or WWAN connection. +* No longer add a direct route to the DHCP server. +* Several bug fixes and improvements + ============================================ NetworkManager-1.8 Overview of changes since NetworkManager-1.6 diff --git a/aclocal.m4 b/aclocal.m4 index c2b7fb71..de23d0ad 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -20,9 +20,9 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29.1) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -296,6 +296,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + # Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/build-aux/config.guess b/build-aux/config.guess index dbfb9786..2e9ad7fe 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ timestamp='2015-01-01' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -618,13 +642,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -663,11 +687,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -680,12 +704,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -790,14 +814,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -879,7 +903,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -902,7 +926,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -933,6 +957,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -945,6 +972,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -970,6 +1000,9 @@ EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1002,6 +1035,9 @@ EOF ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1021,7 +1057,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1100,7 +1136,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1249,6 +1285,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1262,9 +1301,9 @@ EOF UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1286,7 +1325,7 @@ EOF exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1317,7 +1356,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1359,7 +1398,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1370,23 +1409,25 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff --git a/build-aux/config.sub b/build-aux/config.sub index 6467c95a..7b334f99 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2016-09-05' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ timestamp='2015-01-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2015-01-01' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,8 +116,8 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,11 +254,12 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ + | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ @@ -305,7 +305,7 @@ case $basic_machine in | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -376,12 +376,13 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -428,12 +429,13 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -518,6 +520,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -638,6 +643,14 @@ case $basic_machine in basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -1017,7 +1030,7 @@ case $basic_machine in ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1027,7 +1040,7 @@ case $basic_machine in ;; ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1373,18 +1386,18 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1393,7 +1406,8 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1525,6 +1539,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) diff --git a/clients/cli/common.c b/clients/cli/common.c index 4d89c3f8..27477166 100644 --- a/clients/cli/common.c +++ b/clients/cli/common.c @@ -1383,8 +1383,10 @@ read_again: /* If Ctrl-C was detected, complete the line */ if (nmc_seen_sigint ()) { rl_echo_signal_char (SIGINT); - rl_stuff_char ('\n'); - rl_callback_read_char (); + if (!rl_got_line) { + rl_stuff_char ('\n'); + rl_callback_read_char (); + } } /* Add string to the history */ diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 387edef8..50983de6 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -2653,7 +2653,8 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) return NMC_RESULT_ERROR_USER_INPUT; } ifname = *argv; - complete_device (devices, ifname, TRUE); + if (argc == 1 && nmc->complete) + complete_device (devices, ifname, TRUE); } else if (strcmp (*argv, "bssid") == 0 || strcmp (*argv, "hwaddr") == 0) { /* hwaddr is deprecated and will be removed later */ argc--; @@ -2900,7 +2901,8 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv) goto finish; } ifname = *argv; - complete_device (devices, ifname, TRUE); + if (argc == 1 && nmc->complete) + complete_device (devices, ifname, TRUE); } else if (strcmp (*argv, "bssid") == 0) { argc--; argv++; diff --git a/clients/cli/general.c b/clients/cli/general.c index 12e76efd..68fab6e0 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -1136,10 +1136,10 @@ device_overview (NmCli *nmc, NMDevice *device) else g_string_append_printf (outbuf, "%s, ", _("hw")); - if ( nm_device_get_ip_iface (device) - && g_strcmp0 (nm_device_get_ip_iface (device), nm_device_get_iface (device)) - && g_strcmp0 (nm_device_get_ip_iface (device), "")) - g_string_append_printf (outbuf, "%s %s,", _("iface"), nm_device_get_ip_iface (device)); + if (!NM_IN_STRSET (nm_device_get_ip_iface (device), + NULL, + nm_device_get_iface (device))) + g_string_append_printf (outbuf, "%s %s, ", _("iface"), nm_device_get_ip_iface (device)); if (nm_device_get_physical_port_id (device)) g_string_append_printf (outbuf, "%s %s, ", _("port"), nm_device_get_physical_port_id (device)); diff --git a/clients/cli/settings.c b/clients/cli/settings.c index 87b1f50f..e0f045ac 100644 --- a/clients/cli/settings.c +++ b/clients/cli/settings.c @@ -1643,11 +1643,12 @@ nmc_util_is_domain (const char *domain) } static gboolean -nmc_property_set_byte_array (NMSetting *setting, const char *prop, const char *val, GError **error) +nmc_property_set_bytes (NMSetting *setting, const char *prop, const char *val, GError **error) { - char **strv = NULL, **iter; - char *val_strip; + gs_free char *val_strip = NULL; + gs_strfreev char **strv = NULL; const char *delimiters = " \t,"; + char **iter; long int val_int; GBytes *bytes; GByteArray *array = NULL; @@ -1659,30 +1660,33 @@ nmc_property_set_byte_array (NMSetting *setting, const char *prop, const char *v /* First try hex string in the format of AAbbCCDd */ bytes = nm_utils_hexstr2bin (val_strip); - if (bytes) { - array = g_bytes_unref_to_array (bytes); + if (bytes) goto done; - } /* Otherwise, consider the following format: AA b 0xCc D */ strv = nmc_strsplit_set (val_strip, delimiters, 0); array = g_byte_array_sized_new (g_strv_length (strv)); for (iter = strv; iter && *iter; iter++) { + guint8 v8; + if (!nmc_string_to_int_base (g_strstrip (*iter), 16, TRUE, 0, 255, &val_int)) { g_set_error (error, 1, 0, _("'%s' is not a valid hex character"), *iter); + g_byte_array_free (array, TRUE); success = FALSE; goto done; } - g_byte_array_append (array, (const guint8 *) &val_int, 1); + v8 = val_int; + g_byte_array_append (array, &v8, 1); } + bytes = g_byte_array_free_to_bytes (array); done: if (success) - g_object_set (setting, prop, array, NULL); + g_object_set (setting, prop, bytes, NULL); + + if (bytes) + g_bytes_unref (bytes); - g_strfreev (strv); - if (array) - g_byte_array_free (array, TRUE); return success; } @@ -2186,7 +2190,7 @@ DEFINE_ALLOWED_VAL_FUNC (nmc_property_802_1X_allowed_phase2_autheap, _802_1X_val static gboolean nmc_property_802_1X_set_password_raw (NMSetting *setting, const char *prop, const char *val, GError **error) { - return nmc_property_set_byte_array (setting, prop, val, error); + return nmc_property_set_bytes (setting, prop, val, error); } static const char * diff --git a/clients/tui/nmt-connect-connection-list.c b/clients/tui/nmt-connect-connection-list.c index edfaa09b..86286129 100644 --- a/clients/tui/nmt-connect-connection-list.c +++ b/clients/tui/nmt-connect-connection-list.c @@ -639,11 +639,13 @@ nmt_connect_connection_list_get_connection (NmtConnectConnectionList *list, if (conn) { if (conn == nmtconn->conn) goto found; - } else if (nmtconn->ssid && !strcmp (identifier, nmtconn->ssid)) + } else if (nm_streq0 (identifier, nmtconn->ssid)) goto found; } - if (!conn && nmtdev->device && !strcmp (identifier, nm_device_get_ip_iface (nmtdev->device))) { + if ( !conn + && nmtdev->device + && nm_streq0 (identifier, nm_device_get_ip_iface (nmtdev->device))) { nmtconn = nmtdev->conns->data; goto found; } @@ -651,7 +653,7 @@ nmt_connect_connection_list_get_connection (NmtConnectConnectionList *list, return FALSE; - found: +found: if (connection) *connection = nmtconn->conn; if (device) diff --git a/configure b/configure index 81af3511..6993d6b9 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.8.0. +# Generated by GNU Autoconf 2.69 for NetworkManager 1.8.2. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='NetworkManager' PACKAGE_TARNAME='NetworkManager' -PACKAGE_VERSION='1.8.0' -PACKAGE_STRING='NetworkManager 1.8.0' +PACKAGE_VERSION='1.8.2' +PACKAGE_STRING='NetworkManager 1.8.2' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' PACKAGE_URL='' @@ -1717,7 +1717,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.8.0 to adapt to many kinds of systems. +\`configure' configures NetworkManager 1.8.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1787,7 +1787,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of NetworkManager 1.8.0:";; + short | recursive ) echo "Configuration of NetworkManager 1.8.2:";; esac cat <<\_ACEOF @@ -2131,7 +2131,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -NetworkManager configure 1.8.0 +NetworkManager configure 1.8.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2904,7 +2904,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.8.0, which was +It was created by NetworkManager $as_me 1.8.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3774,7 +3774,7 @@ fi # Define the identity of the package. PACKAGE='NetworkManager' - VERSION='1.8.0' + VERSION='1.8.2' cat >>confdefs.h <<_ACEOF @@ -17858,8 +17858,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu NM_MAJOR_VERSION=1 NM_MINOR_VERSION=8 -NM_MICRO_VERSION=0 -NM_VERSION=1.8.0 +NM_MICRO_VERSION=2 +NM_VERSION=1.8.2 @@ -17867,7 +17867,7 @@ NM_VERSION=1.8.0 -NM_GIT_SHA=9c3df9caa3296a55fe54e6aa02fe8a11b27deaba +NM_GIT_SHA=9ed1921ce3b8f1b856d97128913b33c7eeeed6e9 if test """" != "no-config-h" ; then @@ -26555,11 +26555,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -Wimplicit-fallthrough \ -Wimplicit-function-declaration \ -Winit-self \ + -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wpointer-arith \ -Wshadow \ + -Wshift-negative-value \ -Wstrict-prototypes \ -Wundef \ -Wno-duplicate-decl-specifier \ @@ -29067,7 +29069,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.8.0, which was +This file was extended by NetworkManager $as_me 1.8.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -29133,7 +29135,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.8.0 +NetworkManager config.status 1.8.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6f190c04..97065735 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.63]) dnl The NM version number m4_define([nm_major_version], [1]) m4_define([nm_minor_version], [8]) -m4_define([nm_micro_version], [0]) +m4_define([nm_micro_version], [2]) m4_define([nm_version], [nm_major_version.nm_minor_version.nm_micro_version]) diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml b/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml index e8c8ffca..fdd95b5a 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.Device.xml @@ -206,6 +206,8 @@ Udi readable s each device in your application, use the object path. If you're looking for a way to track a specific piece of hardware across reboot or hotplug, use a MAC address or USB serial number. + Note that non-UTF-8 characters are backslash escaped. Use g_strcompress() + to obtain the true (non-UTF-8) string. @@ -215,6 +217,9 @@ Udi readable s Interface readable s The name of the device's control (and often data) interface. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping. @@ -227,6 +232,9 @@ IpInterface readable s not refer to the actual data interface until the device has successfully established a data connection, indicated by the device's State becoming ACTIVATED. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping. @@ -236,6 +244,8 @@ IpInterface readable s Driver readable s The driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. @@ -245,6 +255,8 @@ Driver readable s DriverVersion readable s The version of the driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. @@ -254,6 +266,8 @@ DriverVersion readable s FirmwareVersion readable s The firmware version for the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. diff --git a/docs/api/dbus-org.freedesktop.NetworkManager.xml b/docs/api/dbus-org.freedesktop.NetworkManager.xml index 0ef23d79..6e667f5b 100644 --- a/docs/api/dbus-org.freedesktop.NetworkManager.xml +++ b/docs/api/dbus-org.freedesktop.NetworkManager.xml @@ -384,30 +384,26 @@ CheckpointCreate (IN ao devices, IN u flags, OUT o checkpoint); - devices: a list of device paths for which a checkpoint should be created. An empty list means all devices. - rollback_timeout: the time in seconds until NetworkManager will automatically rollback to the checkpoint. Set to zero for infinite. - flags: optional flags that influence the creation. - checkpoint: on success, returns the path of the checkpoint. - Create a checkpoint of the current networking configuration + Create a checkpoint of the current networking configuration for given interfaces. If rollback_timeout is not zero, a rollback is automatically performed after the given timeout. IN ao devices: - + A list of device paths for which a checkpoint should be created. An empty list means all devices. IN u rollback_timeout: - + The time in seconds until NetworkManager will automatically rollback to the checkpoint. Set to zero for infinite. IN u flags: - + (NMCheckpointCreateFlags) Flags for the creation. OUT o checkpoint: - + On success, the path of the new checkpoint. @@ -422,7 +418,7 @@ CheckpointDestroy (IN o checkpoint); IN o checkpoint: - the checkpoint to be destroyed. Set to empty to cancel all pending checkpoints. + The checkpoint to be destroyed. Set to empty to cancel all pending checkpoints. @@ -438,11 +434,11 @@ CheckpointRollback (IN o checkpoint, IN o checkpoint: - the checkpoint to be rolled back. + The checkpoint to be rolled back. OUT a{su} result: - on return, a dictionary of devices and results. Devices are represented by their original D-Bus path; each result is a RollbackResult. + On return, a dictionary of devices and results. Devices are represented by their original D-Bus path; each result is a RollbackResult. diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html index b43f5ac5..a670fe7d 100644 --- a/docs/api/html/NetworkManager.conf.html +++ b/docs/api/html/NetworkManager.conf.html @@ -3,7 +3,7 @@ NetworkManager.conf: NetworkManager Reference Manual - + @@ -396,6 +396,17 @@ no-auto-default=* times.

+ +

slaves-order

+

+ This key specifies in which order slave connections are + auto-activated on boot or when the master activates + them. Allowed values are name (order + connection by interface name, the default), or + index (order slaves by their kernel + index). +

+ @@ -609,7 +620,7 @@ ipv6.ip6-privacy=0

ethernet.mtu

-

If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or a default of 1500.

+

If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is not reconfigured during activation.

ethernet.wake-on-lan

diff --git a/docs/api/html/NetworkManager.html b/docs/api/html/NetworkManager.html index bd6db0dc..75abc18b 100644 --- a/docs/api/html/NetworkManager.html +++ b/docs/api/html/NetworkManager.html @@ -3,7 +3,7 @@ NetworkManager: NetworkManager Reference Manual - + diff --git a/docs/api/html/ch01.html b/docs/api/html/ch01.html index b4faa0c0..ea9764df 100644 --- a/docs/api/html/ch01.html +++ b/docs/api/html/ch01.html @@ -3,7 +3,7 @@ Configuration Settings: NetworkManager Reference Manual - + @@ -27,7 +27,7 @@ connection — General Connection Profile Settings
-802-1x — AIEEE 802.1x Authentication Settings +802-1x — IEEE 802.1x Authentication Settings
adsl — ADSL Settings diff --git a/docs/api/html/dbus-secret-agent.html b/docs/api/html/dbus-secret-agent.html index db133a82..6dda65cf 100644 --- a/docs/api/html/dbus-secret-agent.html +++ b/docs/api/html/dbus-secret-agent.html @@ -3,7 +3,7 @@ Secret agents: NetworkManager Reference Manual - + diff --git a/docs/api/html/dbus-types.html b/docs/api/html/dbus-types.html index 14a90057..673cae49 100644 --- a/docs/api/html/dbus-types.html +++ b/docs/api/html/dbus-types.html @@ -3,7 +3,7 @@ Types: NetworkManager Reference Manual - + diff --git a/docs/api/html/dbus-vpn-types.html b/docs/api/html/dbus-vpn-types.html index 12806ac6..b737c140 100644 --- a/docs/api/html/dbus-vpn-types.html +++ b/docs/api/html/dbus-vpn-types.html @@ -3,7 +3,7 @@ Types: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html index 73315894..19d1b76f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.AccessPoint: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html index 4cd46169..cf085b48 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.AgentManager: NetworkManager Reference Manual - + 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 9cfc1a5a..0dbaed08 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Connection.Active: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html index 7acb1288..0909d07f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.DHCP4Config: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html index 7f5671b1..7babac20 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.DHCP6Config: NetworkManager Reference Manual - + 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 dd87e1d3..bd38adff 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Adsl: NetworkManager Reference Manual - + 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 e64c4763..6a7281b4 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Bluetooth: NetworkManager Reference Manual - + 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 d0f3821f..611b6da6 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Bond: NetworkManager Reference Manual - + 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 54f3eb14..44659d2c 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Bridge: NetworkManager Reference Manual - + 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 179250e9..94e841e4 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Dummy: NetworkManager Reference Manual - + 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 a8eb18eb..2c7e2933 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Generic: NetworkManager Reference Manual - + 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 3f943671..ce8b13fe 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.IPTunnel: NetworkManager Reference Manual - + 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 c21a6e2a..c5846b85 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Infiniband: NetworkManager Reference Manual - + 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 c994f2e6..64bb240f 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Macsec: NetworkManager Reference Manual - + 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 e960b9f5..e108bbbd 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Macvlan: NetworkManager Reference Manual - + 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 9dfe927a..6b0ae80d 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Modem: NetworkManager Reference Manual - + 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 8ece0883..95421baa 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.OlpcMesh: NetworkManager Reference Manual - + 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 5e820c55..8b9eebcf 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Statistics: NetworkManager Reference Manual - + 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 240ab0fd..7dc319a5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Team: NetworkManager Reference Manual - + 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 ae4c4e3e..d428fe81 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Tun: NetworkManager Reference Manual - + 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 0bb9e30b..f2bf10f2 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Veth: NetworkManager Reference Manual - + 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 bcdb41aa..514ce2ed 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Vlan: NetworkManager Reference Manual - + 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 d11c39af..179b0221 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Vxlan: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WiMax.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WiMax.html index d5f63e56..ff1dd34e 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WiMax.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WiMax.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.WiMax: NetworkManager Reference Manual - + 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 5d2cd59f..6a1525c5 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Wired: NetworkManager Reference Manual - + 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 b6208657..8953473e 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device.Wireless: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html index b46b05ed..23d6f21e 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Device: NetworkManager Reference Manual - + @@ -250,6 +250,9 @@ Udi readable s for a way to track a specific piece of hardware across reboot or hotplug, use a MAC address or USB serial number.

+

Note that non-UTF-8 characters are backslash escaped. Use g_strcompress() + to obtain the true (non-UTF-8) string. +


@@ -258,6 +261,9 @@ Udi readable s Interface readable s

The name of the device's control (and often data) interface. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping.


@@ -270,6 +276,9 @@ IpInterface readable s not refer to the actual data interface until the device has successfully established a data connection, indicated by the device's State becoming ACTIVATED. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping.


@@ -279,6 +288,8 @@ IpInterface readable s Driver readable s

The driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert.


@@ -288,6 +299,8 @@ Driver readable s DriverVersion readable s

The version of the driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert.


@@ -297,6 +310,8 @@ DriverVersion readable s FirmwareVersion readable s

The firmware version for the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert.


diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html index faa22047..5d596d73 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.DnsManager: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html index de6d4ac7..618737b3 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.IP4Config: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html index a8affa7c..d25ba526 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.IP6Config: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html index 0a6e5171..06766790 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.PPP: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html index 11eb273b..9148abeb 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.SecretAgent: NetworkManager Reference Manual - + 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 ce051c36..6ab4bb4a 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Settings.Connection: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html index e0bda2e1..74b3eb4b 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.Settings: NetworkManager Reference Manual - + 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 9e652a3a..06076e21 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.VPN.Connection: NetworkManager Reference Manual - + 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 62c5a04c..16a23306 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager.VPN.Plugin: NetworkManager Reference Manual - + diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html index 84407127..17310d29 100644 --- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html +++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html @@ -3,7 +3,7 @@ org.freedesktop.NetworkManager: NetworkManager Reference Manual - + @@ -478,11 +478,6 @@ CheckpointCreate (IN ao devices, IN u flags, OUT o checkpoint); -

devices: a list of device paths for which a checkpoint should be created. An empty list means all devices. - rollback_timeout: the time in seconds until NetworkManager will automatically rollback to the checkpoint. Set to zero for infinite. - flags: optional flags that influence the creation. - checkpoint: on success, returns the path of the checkpoint. -

Create a checkpoint of the current networking configuration for given interfaces. If rollback_timeout is not zero, a rollback is automatically performed after the given timeout. @@ -495,19 +490,19 @@ CheckpointCreate (IN ao devices,

IN ao devices:

-

+

A list of device paths for which a checkpoint should be created. An empty list means all devices.

IN u rollback_timeout:

-

+

The time in seconds until NetworkManager will automatically rollback to the checkpoint. Set to zero for infinite.

IN u flags:

-

+

(NMCheckpointCreateFlags) Flags for the creation.

OUT o checkpoint:

-

+

On success, the path of the new checkpoint.

@@ -527,7 +522,7 @@ CheckpointDestroy (IN o checkpoint);

IN o checkpoint:

-

the checkpoint to be destroyed. Set to empty to cancel all pending checkpoints.

+

The checkpoint to be destroyed. Set to empty to cancel all pending checkpoints.

@@ -548,11 +543,11 @@ CheckpointRollback (IN o checkpoint,

IN o checkpoint:

-

the checkpoint to be rolled back.

+

The checkpoint to be rolled back.

OUT a{su} result:

-

on return, a dictionary of devices and results. Devices are represented by their original D-Bus path; each result is a RollbackResult.

+

On return, a dictionary of devices and results. Devices are represented by their original D-Bus path; each result is a RollbackResult.

diff --git a/docs/api/html/index.html b/docs/api/html/index.html index 59c9f18a..afae09f7 100644 --- a/docs/api/html/index.html +++ b/docs/api/html/index.html @@ -3,7 +3,7 @@ NetworkManager Reference Manual: NetworkManager Reference Manual - + @@ -16,7 +16,7 @@

- for NetworkManager 1.8.0 + for NetworkManager 1.8.2 The latest version of this documentation can be found on-line at https://developer.gnome.org/NetworkManager/stable/. @@ -106,7 +106,7 @@ connection — General Connection Profile Settings

-802-1x — AIEEE 802.1x Authentication Settings +802-1x — IEEE 802.1x Authentication Settings
adsl — ADSL Settings diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html index f08bb66e..1cec1df7 100644 --- a/docs/api/html/ix01.html +++ b/docs/api/html/ix01.html @@ -3,7 +3,7 @@ Index: NetworkManager Reference Manual - + @@ -26,1356 +26,1356 @@

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.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: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.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:CurrentCapabilities, The "CurrentCapabilities" property +
org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities, The "CurrentCapabilities" property
-
org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, The "ModemCapabilities" property +
org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, The "ModemCapabilities" 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.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.WiMax, org.freedesktop.NetworkManager.Device.WiMax +
org.freedesktop.NetworkManager.Device.WiMax, org.freedesktop.NetworkManager.Device.WiMax
-
org.freedesktop.NetworkManager.Device.WiMax.GetNspList(), The GetNspList() method +
org.freedesktop.NetworkManager.Device.WiMax.GetNspList(), The GetNspList() method
-
org.freedesktop.NetworkManager.Device.WiMax::NspAdded, The "NspAdded" signal +
org.freedesktop.NetworkManager.Device.WiMax::NspAdded, The "NspAdded" signal
-
org.freedesktop.NetworkManager.Device.WiMax::NspRemoved, The "NspRemoved" signal +
org.freedesktop.NetworkManager.Device.WiMax::NspRemoved, The "NspRemoved" signal
-
org.freedesktop.NetworkManager.Device.WiMax::PropertiesChanged, The "PropertiesChanged" signal +
org.freedesktop.NetworkManager.Device.WiMax::PropertiesChanged, The "PropertiesChanged" signal
-
org.freedesktop.NetworkManager.Device.WiMax:ActiveNsp, The "ActiveNsp" property +
org.freedesktop.NetworkManager.Device.WiMax:ActiveNsp, The "ActiveNsp" property
-
org.freedesktop.NetworkManager.Device.WiMax:Bsid, The "Bsid" property +
org.freedesktop.NetworkManager.Device.WiMax:Bsid, The "Bsid" property
-
org.freedesktop.NetworkManager.Device.WiMax:CenterFrequency, The "CenterFrequency" property +
org.freedesktop.NetworkManager.Device.WiMax:CenterFrequency, The "CenterFrequency" property
-
org.freedesktop.NetworkManager.Device.WiMax:Cinr, The "Cinr" property +
org.freedesktop.NetworkManager.Device.WiMax:Cinr, The "Cinr" property
-
org.freedesktop.NetworkManager.Device.WiMax:HwAddress, The "HwAddress" property +
org.freedesktop.NetworkManager.Device.WiMax:HwAddress, The "HwAddress" property
-
org.freedesktop.NetworkManager.Device.WiMax:Nsps, The "Nsps" property +
org.freedesktop.NetworkManager.Device.WiMax:Nsps, The "Nsps" property
-
org.freedesktop.NetworkManager.Device.WiMax:Rssi, The "Rssi" property +
org.freedesktop.NetworkManager.Device.WiMax:Rssi, The "Rssi" property
-
org.freedesktop.NetworkManager.Device.WiMax:TxPower, The "TxPower" property +
org.freedesktop.NetworkManager.Device.WiMax:TxPower, The "TxPower" 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:Ip6Config, The "Ip6Config" property +
org.freedesktop.NetworkManager.Device:Ip6Config, The "Ip6Config" 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: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: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.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.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: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: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-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

B

-
band, 802-11-wireless +
band, 802-11-wireless
-
baud, ppp, serial +
baud, ppp, serial
-
bdaddr, bluetooth +
bdaddr, bluetooth
-
bits, serial +
bits, serial
-
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 +
channel, 802-11-olpc-mesh, 802-11-wireless
-
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
-
destination-port, vxlan +
destination-port, vxlan
-
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: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
-
dhcp-anycast-address, 802-11-olpc-mesh +
dhcp-anycast-address, 802-11-olpc-mesh
-
dhcp-client-id, ipv4 +
dhcp-client-id, ipv4
-
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

-
flags, vlan +
flags, vlan
-
flow-label, ip-tunnel +
flow-label, ip-tunnel
-
forward-delay, bridge +
forward-delay, bridge

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

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, team, vlan +
interface-name, connection, bond, bridge, team, vlan
-
ip6-privacy, ipv6 +
ip6-privacy, ipv6

L

-
l2-miss, vxlan +
l2-miss, vxlan
-
l3-miss, vxlan +
l3-miss, vxlan
-
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
-
lldp, connection +
lldp, connection
-
local, ip-tunnel, vxlan +
local, ip-tunnel, vxlan

M

-
mac-address, bridge, infiniband, wimax, 802-3-ethernet, 802-11-wireless +
mac-address, bridge, infiniband, wimax, 802-3-ethernet, 802-11-wireless
-
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.CheckConnectivity(), The CheckConnectivity() method +
org.freedesktop.NetworkManager.CheckConnectivity(), The CheckConnectivity() 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:Connectivity, The "Connectivity" property +
org.freedesktop.NetworkManager:Connectivity, The "Connectivity" 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
-
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, 802-11-wireless +
mtu, cdma, gsm, infiniband, ip-tunnel, ppp, 802-3-ethernet, 802-11-wireless
-
multi-queue, tun +
multi-queue, tun
-
multicast-snooping, bridge +
multicast-snooping, bridge

N

-
name, connection, 802-1x, adsl, bluetooth, bond, bridge, bridge-port, cdma, dcb, dummy, generic, gsm, infiniband, ipv4, ipv6, ip-tunnel, macsec, macvlan, 802-11-olpc-mesh, ppp, pppoe, proxy, serial, team, team-port, tun, user, vlan, vpn, vxlan, wimax, 802-3-ethernet, 802-11-wireless, 802-11-wireless-security +
name, connection, 802-1x, adsl, bluetooth, bond, bridge, bridge-port, cdma, dcb, dummy, generic, gsm, infiniband, ipv4, ipv6, ip-tunnel, macsec, macvlan, 802-11-olpc-mesh, ppp, pppoe, proxy, serial, team, team-port, tun, user, vlan, vpn, vxlan, wimax, 802-3-ethernet, 802-11-wireless, 802-11-wireless-security
-
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
-
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
-
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
-
NMState, enum NMState +
NMState, enum NMState
-
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
-
number, cdma, gsm +
number, cdma, gsm

O

-
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
-
pairwise, 802-11-wireless-security +
pairwise, 802-11-wireless-security
-
parent, infiniband, ip-tunnel, macsec, macvlan, vlan, vxlan +
parent, infiniband, ip-tunnel, macsec, macvlan, 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
-
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
-
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.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
-
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 +
private-key, 802-1x
-
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

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
-
routes, ipv4, ipv6 +
routes, ipv4, ipv6
-
rsc, vxlan +
rsc, vxlan

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
-
service, pppoe +
service, pppoe
-
service-type, vpn +
service-type, vpn
-
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
-
stopbits, serial +
stopbits, serial
-
stp, bridge +
stp, bridge
-
subject-match, 802-1x +
subject-match, 802-1x
-
system-ca-certs, 802-1x +
system-ca-certs, 802-1x

T

-
tap, macvlan +
tap, macvlan
-
timeout, vpn +
timeout, vpn
-
timestamp, connection +
timestamp, connection
-
token, ipv6 +
token, ipv6
-
tos, ip-tunnel, vxlan +
tos, ip-tunnel, vxlan
-
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 +
type, connection, bluetooth

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
-
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

-
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
-
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

Z

-
zone, connection +
zone, connection
diff --git a/docs/api/html/license.html b/docs/api/html/license.html index 8c1c8ae0..ed5a2b0a 100644 --- a/docs/api/html/license.html +++ b/docs/api/html/license.html @@ -3,7 +3,7 @@ Appendix A. License: NetworkManager Reference Manual - + diff --git a/docs/api/html/manpages.html b/docs/api/html/manpages.html index a24733fe..1de5191f 100644 --- a/docs/api/html/manpages.html +++ b/docs/api/html/manpages.html @@ -3,7 +3,7 @@ Part I. Manual Pages: NetworkManager Reference Manual - + diff --git a/docs/api/html/nm-dbus-types.html b/docs/api/html/nm-dbus-types.html index 7971b211..a82b2fa8 100644 --- a/docs/api/html/nm-dbus-types.html +++ b/docs/api/html/nm-dbus-types.html @@ -3,7 +3,7 @@ NetworkManager D-Bus API Types: NetworkManager Reference Manual - + diff --git a/docs/api/html/nm-online.html b/docs/api/html/nm-online.html index f497fde2..5e401393 100644 --- a/docs/api/html/nm-online.html +++ b/docs/api/html/nm-online.html @@ -3,7 +3,7 @@ nm-online: NetworkManager Reference Manual - + diff --git a/docs/api/html/nm-settings-ifcfg-rh.html b/docs/api/html/nm-settings-ifcfg-rh.html index afd683e9..4e7a6649 100644 --- a/docs/api/html/nm-settings-ifcfg-rh.html +++ b/docs/api/html/nm-settings-ifcfg-rh.html @@ -3,7 +3,7 @@ nm-settings-ifcfg-rh: NetworkManager Reference Manual - + diff --git a/docs/api/html/nm-settings-keyfile.html b/docs/api/html/nm-settings-keyfile.html index 4ea43e48..7e26f8d6 100644 --- a/docs/api/html/nm-settings-keyfile.html +++ b/docs/api/html/nm-settings-keyfile.html @@ -3,7 +3,7 @@ nm-settings-keyfile: NetworkManager Reference Manual - + diff --git a/docs/api/html/nm-settings.html b/docs/api/html/nm-settings.html index 38c28d64..e1682bdc 100644 --- a/docs/api/html/nm-settings.html +++ b/docs/api/html/nm-settings.html @@ -3,7 +3,7 @@ nm-settings: NetworkManager Reference Manual - + @@ -256,7 +256,7 @@

802-1x setting

-

AIEEE 802.1x Authentication Settings.

+

IEEE 802.1x Authentication Settings.

diff --git a/docs/api/html/nm-vpn-dbus-types.html b/docs/api/html/nm-vpn-dbus-types.html index 625468a7..1b900276 100644 --- a/docs/api/html/nm-vpn-dbus-types.html +++ b/docs/api/html/nm-vpn-dbus-types.html @@ -3,7 +3,7 @@ VPN Plugin D-Bus API Types: NetworkManager Reference Manual - + diff --git a/docs/api/html/nmcli-examples.html b/docs/api/html/nmcli-examples.html index 63708031..daf6e115 100644 --- a/docs/api/html/nmcli-examples.html +++ b/docs/api/html/nmcli-examples.html @@ -3,7 +3,7 @@ nmcli-examples: NetworkManager Reference Manual - + diff --git a/docs/api/html/nmcli.html b/docs/api/html/nmcli.html index 02d3528b..b94c6fbc 100644 --- a/docs/api/html/nmcli.html +++ b/docs/api/html/nmcli.html @@ -3,7 +3,7 @@ nmcli: NetworkManager Reference Manual - + diff --git a/docs/api/html/nmtui.html b/docs/api/html/nmtui.html index 30449050..8f58451d 100644 --- a/docs/api/html/nmtui.html +++ b/docs/api/html/nmtui.html @@ -3,7 +3,7 @@ nmtui: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-access-points.html b/docs/api/html/ref-dbus-access-points.html index 6b7bb457..cfc2b442 100644 --- a/docs/api/html/ref-dbus-access-points.html +++ b/docs/api/html/ref-dbus-access-points.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/AccessPoint/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-active-connections.html b/docs/api/html/ref-dbus-active-connections.html index 022a17b4..c4261f19 100644 --- a/docs/api/html/ref-dbus-active-connections.html +++ b/docs/api/html/ref-dbus-active-connections.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/ActiveConnection/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-agent-manager.html b/docs/api/html/ref-dbus-agent-manager.html index 1aafd12b..c143fd22 100644 --- a/docs/api/html/ref-dbus-agent-manager.html +++ b/docs/api/html/ref-dbus-agent-manager.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/AgentManager object: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-devices.html b/docs/api/html/ref-dbus-devices.html index 7e54543e..c8f35cf3 100644 --- a/docs/api/html/ref-dbus-devices.html +++ b/docs/api/html/ref-dbus-devices.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/Devices/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-dhcp4-configs.html b/docs/api/html/ref-dbus-dhcp4-configs.html index d0a04ca1..c194d4ad 100644 --- a/docs/api/html/ref-dbus-dhcp4-configs.html +++ b/docs/api/html/ref-dbus-dhcp4-configs.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/DHCP4Config/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-dhcp6-configs.html b/docs/api/html/ref-dbus-dhcp6-configs.html index d2700a5f..c4b2a806 100644 --- a/docs/api/html/ref-dbus-dhcp6-configs.html +++ b/docs/api/html/ref-dbus-dhcp6-configs.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/DHCP4Config/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-dns-manager.html b/docs/api/html/ref-dbus-dns-manager.html index 6d838bac..6e0d01ac 100644 --- a/docs/api/html/ref-dbus-dns-manager.html +++ b/docs/api/html/ref-dbus-dns-manager.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/DnsManager object: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-ip4-configs.html b/docs/api/html/ref-dbus-ip4-configs.html index 1752bfd6..bf66983b 100644 --- a/docs/api/html/ref-dbus-ip4-configs.html +++ b/docs/api/html/ref-dbus-ip4-configs.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/IP4Config/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-ip6-configs.html b/docs/api/html/ref-dbus-ip6-configs.html index d5988457..78021ff0 100644 --- a/docs/api/html/ref-dbus-ip6-configs.html +++ b/docs/api/html/ref-dbus-ip6-configs.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/IP6Config/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-manager.html b/docs/api/html/ref-dbus-manager.html index 8a327895..82e0f631 100644 --- a/docs/api/html/ref-dbus-manager.html +++ b/docs/api/html/ref-dbus-manager.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager object: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-settings-manager.html b/docs/api/html/ref-dbus-settings-manager.html index ce185508..7d285eec 100644 --- a/docs/api/html/ref-dbus-settings-manager.html +++ b/docs/api/html/ref-dbus-settings-manager.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/Settings object: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-dbus-settings.html b/docs/api/html/ref-dbus-settings.html index 3bec0d09..bd3d22b8 100644 --- a/docs/api/html/ref-dbus-settings.html +++ b/docs/api/html/ref-dbus-settings.html @@ -3,7 +3,7 @@ The /org/freedesktop/NetworkManager/Settings/* objects: NetworkManager Reference Manual - + diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html index 997c3725..dd6956f5 100644 --- a/docs/api/html/ref-settings.html +++ b/docs/api/html/ref-settings.html @@ -3,7 +3,7 @@ Part II. Network Configuration Setting Specification: NetworkManager Reference Manual - + @@ -31,7 +31,7 @@ connection — General Connection Profile Settings
-802-1x — AIEEE 802.1x Authentication Settings +802-1x — IEEE 802.1x Authentication Settings
adsl — ADSL Settings diff --git a/docs/api/html/secret-agents.html b/docs/api/html/secret-agents.html index d9e6b9c0..4d5f7e74 100644 --- a/docs/api/html/secret-agents.html +++ b/docs/api/html/secret-agents.html @@ -3,7 +3,7 @@ Part IV. Secret Agent D-Bus API Reference: NetworkManager Reference Manual - + diff --git a/docs/api/html/secrets-flags.html b/docs/api/html/secrets-flags.html index 92dc9d79..18c977c6 100644 --- a/docs/api/html/secrets-flags.html +++ b/docs/api/html/secrets-flags.html @@ -3,7 +3,7 @@ Secret flag types: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-802-11-olpc-mesh.html b/docs/api/html/settings-802-11-olpc-mesh.html index a72f0aa5..1e34a1e0 100644 --- a/docs/api/html/settings-802-11-olpc-mesh.html +++ b/docs/api/html/settings-802-11-olpc-mesh.html @@ -3,7 +3,7 @@ 802-11-olpc-mesh: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-802-11-wireless-security.html b/docs/api/html/settings-802-11-wireless-security.html index 0031026e..c141dcf4 100644 --- a/docs/api/html/settings-802-11-wireless-security.html +++ b/docs/api/html/settings-802-11-wireless-security.html @@ -3,7 +3,7 @@ 802-11-wireless-security: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-802-11-wireless.html b/docs/api/html/settings-802-11-wireless.html index 917294f9..c56ad7ed 100644 --- a/docs/api/html/settings-802-11-wireless.html +++ b/docs/api/html/settings-802-11-wireless.html @@ -3,7 +3,7 @@ 802-11-wireless: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-802-1x.html b/docs/api/html/settings-802-1x.html index 3cce8faa..ea0c71e7 100644 --- a/docs/api/html/settings-802-1x.html +++ b/docs/api/html/settings-802-1x.html @@ -3,7 +3,7 @@ 802-1x: NetworkManager Reference Manual - + @@ -29,7 +29,7 @@

802-1x

-

802-1x — AIEEE 802.1x Authentication Settings

+

802-1x — IEEE 802.1x Authentication Settings

diff --git a/docs/api/html/settings-802-3-ethernet.html b/docs/api/html/settings-802-3-ethernet.html index 06990061..8fb4fe2a 100644 --- a/docs/api/html/settings-802-3-ethernet.html +++ b/docs/api/html/settings-802-3-ethernet.html @@ -3,7 +3,7 @@ 802-3-ethernet: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-adsl.html b/docs/api/html/settings-adsl.html index c144b5b5..16495015 100644 --- a/docs/api/html/settings-adsl.html +++ b/docs/api/html/settings-adsl.html @@ -3,7 +3,7 @@ adsl: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-bluetooth.html b/docs/api/html/settings-bluetooth.html index 661b6bac..5d569c6c 100644 --- a/docs/api/html/settings-bluetooth.html +++ b/docs/api/html/settings-bluetooth.html @@ -3,7 +3,7 @@ bluetooth: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-bond.html b/docs/api/html/settings-bond.html index acd5af30..eff3b56f 100644 --- a/docs/api/html/settings-bond.html +++ b/docs/api/html/settings-bond.html @@ -3,7 +3,7 @@ bond: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-bridge-port.html b/docs/api/html/settings-bridge-port.html index 0b7c3aa0..84832bcd 100644 --- a/docs/api/html/settings-bridge-port.html +++ b/docs/api/html/settings-bridge-port.html @@ -3,7 +3,7 @@ bridge-port: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-bridge.html b/docs/api/html/settings-bridge.html index aff78df0..effe9430 100644 --- a/docs/api/html/settings-bridge.html +++ b/docs/api/html/settings-bridge.html @@ -3,7 +3,7 @@ bridge: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-cdma.html b/docs/api/html/settings-cdma.html index 6a47e5fa..9414e7da 100644 --- a/docs/api/html/settings-cdma.html +++ b/docs/api/html/settings-cdma.html @@ -3,7 +3,7 @@ cdma: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-connection.html b/docs/api/html/settings-connection.html index 4f810113..cf451df8 100644 --- a/docs/api/html/settings-connection.html +++ b/docs/api/html/settings-connection.html @@ -3,7 +3,7 @@ connection: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-dcb.html b/docs/api/html/settings-dcb.html index c512d53f..da49369d 100644 --- a/docs/api/html/settings-dcb.html +++ b/docs/api/html/settings-dcb.html @@ -3,7 +3,7 @@ dcb: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-dummy.html b/docs/api/html/settings-dummy.html index d9f3ec3f..5d75433e 100644 --- a/docs/api/html/settings-dummy.html +++ b/docs/api/html/settings-dummy.html @@ -3,7 +3,7 @@ dummy: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-generic.html b/docs/api/html/settings-generic.html index fc8602bb..173d8b31 100644 --- a/docs/api/html/settings-generic.html +++ b/docs/api/html/settings-generic.html @@ -3,7 +3,7 @@ generic: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-gsm.html b/docs/api/html/settings-gsm.html index 1f262e2b..26f450f7 100644 --- a/docs/api/html/settings-gsm.html +++ b/docs/api/html/settings-gsm.html @@ -3,7 +3,7 @@ gsm: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-infiniband.html b/docs/api/html/settings-infiniband.html index c86b32ad..76fdbf18 100644 --- a/docs/api/html/settings-infiniband.html +++ b/docs/api/html/settings-infiniband.html @@ -3,7 +3,7 @@ infiniband: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-ip-tunnel.html b/docs/api/html/settings-ip-tunnel.html index 92b97ebf..ee4ad4d5 100644 --- a/docs/api/html/settings-ip-tunnel.html +++ b/docs/api/html/settings-ip-tunnel.html @@ -3,7 +3,7 @@ ip-tunnel: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-ipv4.html b/docs/api/html/settings-ipv4.html index 807555ad..600393f3 100644 --- a/docs/api/html/settings-ipv4.html +++ b/docs/api/html/settings-ipv4.html @@ -3,7 +3,7 @@ ipv4: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-ipv6.html b/docs/api/html/settings-ipv6.html index 633ff29c..9f00e07e 100644 --- a/docs/api/html/settings-ipv6.html +++ b/docs/api/html/settings-ipv6.html @@ -3,7 +3,7 @@ ipv6: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-macsec.html b/docs/api/html/settings-macsec.html index ba17d06d..a4da0d2a 100644 --- a/docs/api/html/settings-macsec.html +++ b/docs/api/html/settings-macsec.html @@ -3,7 +3,7 @@ macsec: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-macvlan.html b/docs/api/html/settings-macvlan.html index e1fc3311..728264e4 100644 --- a/docs/api/html/settings-macvlan.html +++ b/docs/api/html/settings-macvlan.html @@ -3,7 +3,7 @@ macvlan: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-ppp.html b/docs/api/html/settings-ppp.html index 7f520cd1..1f064aa2 100644 --- a/docs/api/html/settings-ppp.html +++ b/docs/api/html/settings-ppp.html @@ -3,7 +3,7 @@ ppp: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-pppoe.html b/docs/api/html/settings-pppoe.html index 7f86c7e5..e91ee7a9 100644 --- a/docs/api/html/settings-pppoe.html +++ b/docs/api/html/settings-pppoe.html @@ -3,7 +3,7 @@ pppoe: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-proxy.html b/docs/api/html/settings-proxy.html index 4e34d9b6..bb85a361 100644 --- a/docs/api/html/settings-proxy.html +++ b/docs/api/html/settings-proxy.html @@ -3,7 +3,7 @@ proxy: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-serial.html b/docs/api/html/settings-serial.html index a60aa61b..6948cf7f 100644 --- a/docs/api/html/settings-serial.html +++ b/docs/api/html/settings-serial.html @@ -3,7 +3,7 @@ serial: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-team-port.html b/docs/api/html/settings-team-port.html index 96dea572..121b17c3 100644 --- a/docs/api/html/settings-team-port.html +++ b/docs/api/html/settings-team-port.html @@ -3,7 +3,7 @@ team-port: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-team.html b/docs/api/html/settings-team.html index 4210aa3a..71c39ab3 100644 --- a/docs/api/html/settings-team.html +++ b/docs/api/html/settings-team.html @@ -3,7 +3,7 @@ team: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-tun.html b/docs/api/html/settings-tun.html index 3bd464bd..a14e99f6 100644 --- a/docs/api/html/settings-tun.html +++ b/docs/api/html/settings-tun.html @@ -3,7 +3,7 @@ tun: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-user.html b/docs/api/html/settings-user.html index be82df58..dd52c60e 100644 --- a/docs/api/html/settings-user.html +++ b/docs/api/html/settings-user.html @@ -3,7 +3,7 @@ user: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-vlan.html b/docs/api/html/settings-vlan.html index 51587d7e..f5c74568 100644 --- a/docs/api/html/settings-vlan.html +++ b/docs/api/html/settings-vlan.html @@ -3,7 +3,7 @@ vlan: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-vpn.html b/docs/api/html/settings-vpn.html index 08168850..eb504d84 100644 --- a/docs/api/html/settings-vpn.html +++ b/docs/api/html/settings-vpn.html @@ -3,7 +3,7 @@ vpn: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-vxlan.html b/docs/api/html/settings-vxlan.html index 1bf640d5..aadf6846 100644 --- a/docs/api/html/settings-vxlan.html +++ b/docs/api/html/settings-vxlan.html @@ -3,7 +3,7 @@ vxlan: NetworkManager Reference Manual - + diff --git a/docs/api/html/settings-wimax.html b/docs/api/html/settings-wimax.html index b091b5a3..179dc521 100644 --- a/docs/api/html/settings-wimax.html +++ b/docs/api/html/settings-wimax.html @@ -3,7 +3,7 @@ wimax: NetworkManager Reference Manual - + diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html index a530df55..28e44ad9 100644 --- a/docs/api/html/spec.html +++ b/docs/api/html/spec.html @@ -3,7 +3,7 @@ Part III. D-Bus API Reference: NetworkManager Reference Manual - + diff --git a/docs/api/html/vpn-plugins.html b/docs/api/html/vpn-plugins.html index 836fe020..49cf422a 100644 --- a/docs/api/html/vpn-plugins.html +++ b/docs/api/html/vpn-plugins.html @@ -3,7 +3,7 @@ Part V. VPN Plugin D-Bus API Reference: NetworkManager Reference Manual - + diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml index 704221a3..27043485 100644 --- a/docs/api/settings-spec.xml +++ b/docs/api/settings-spec.xml @@ -25,7 +25,7 @@ uuiduuidstringA universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-"). zonezonestringThe trust level of a the connection. Free form case-insensitive string (for example "Home", "Work", "Public"). NULL or unspecified zone means the connection will be placed in the default zone as defined by the firewall. When updating this property on a currently activated connection, the change takes effect immediately. - 802-1xAIEEE 802.1x Authentication Settings + <refentry id="settings-802-1x"><refnamediv><refname>802-1x</refname><refpurpose>IEEE 802.1x Authentication Settings</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-802-1x.properties"> Properties Key NameValue TypeDefault ValueValue Descriptionaltsubject-matchesaltsubject-matchesarray of string[]List of strings to be matched against the altSubjectName of the certificate presented by the authentication server. If the list is empty, no verification of the server certificate's altSubjectName is performed. diff --git a/docs/api/version.xml b/docs/api/version.xml index 27f9cd32..53adb84c 100644 --- a/docs/api/version.xml +++ b/docs/api/version.xml @@ -1 +1 @@ -1.8.0 +1.8.2 diff --git a/docs/libnm-glib/html/NMAccessPoint.html b/docs/libnm-glib/html/NMAccessPoint.html index 37428763..cc06d0d9 100644 --- a/docs/libnm-glib/html/NMAccessPoint.html +++ b/docs/libnm-glib/html/NMAccessPoint.html @@ -3,7 +3,7 @@ NMAccessPoint: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMActiveConnection.html b/docs/libnm-glib/html/NMActiveConnection.html index 27809916..546ba17e 100644 --- a/docs/libnm-glib/html/NMActiveConnection.html +++ b/docs/libnm-glib/html/NMActiveConnection.html @@ -3,7 +3,7 @@ NMActiveConnection: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMClient.html b/docs/libnm-glib/html/NMClient.html index 691193aa..b3af54f6 100644 --- a/docs/libnm-glib/html/NMClient.html +++ b/docs/libnm-glib/html/NMClient.html @@ -3,7 +3,7 @@ NMClient: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDHCP4Config.html b/docs/libnm-glib/html/NMDHCP4Config.html index c8ec4557..11fe30c1 100644 --- a/docs/libnm-glib/html/NMDHCP4Config.html +++ b/docs/libnm-glib/html/NMDHCP4Config.html @@ -3,7 +3,7 @@ NMDHCP4Config: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDHCP6Config.html b/docs/libnm-glib/html/NMDHCP6Config.html index c9b53d21..9b8efeca 100644 --- a/docs/libnm-glib/html/NMDHCP6Config.html +++ b/docs/libnm-glib/html/NMDHCP6Config.html @@ -3,7 +3,7 @@ NMDHCP6Config: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDevice.html b/docs/libnm-glib/html/NMDevice.html index 45ffe561..60784ecb 100644 --- a/docs/libnm-glib/html/NMDevice.html +++ b/docs/libnm-glib/html/NMDevice.html @@ -3,7 +3,7 @@ NMDevice: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceAdsl.html b/docs/libnm-glib/html/NMDeviceAdsl.html index 0a3f0b15..13c841d8 100644 --- a/docs/libnm-glib/html/NMDeviceAdsl.html +++ b/docs/libnm-glib/html/NMDeviceAdsl.html @@ -3,7 +3,7 @@ NMDeviceAdsl: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceBond.html b/docs/libnm-glib/html/NMDeviceBond.html index c4234d64..fbf58671 100644 --- a/docs/libnm-glib/html/NMDeviceBond.html +++ b/docs/libnm-glib/html/NMDeviceBond.html @@ -3,7 +3,7 @@ NMDeviceBond: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceBridge.html b/docs/libnm-glib/html/NMDeviceBridge.html index 00821c1d..e7ada784 100644 --- a/docs/libnm-glib/html/NMDeviceBridge.html +++ b/docs/libnm-glib/html/NMDeviceBridge.html @@ -3,7 +3,7 @@ NMDeviceBridge: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceBt.html b/docs/libnm-glib/html/NMDeviceBt.html index 847313ff..3731465a 100644 --- a/docs/libnm-glib/html/NMDeviceBt.html +++ b/docs/libnm-glib/html/NMDeviceBt.html @@ -3,7 +3,7 @@ NMDeviceBt: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceEthernet.html b/docs/libnm-glib/html/NMDeviceEthernet.html index ef7c87e9..f56635c2 100644 --- a/docs/libnm-glib/html/NMDeviceEthernet.html +++ b/docs/libnm-glib/html/NMDeviceEthernet.html @@ -3,7 +3,7 @@ NMDeviceEthernet: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceGeneric.html b/docs/libnm-glib/html/NMDeviceGeneric.html index eff41bfe..3e5c9e7f 100644 --- a/docs/libnm-glib/html/NMDeviceGeneric.html +++ b/docs/libnm-glib/html/NMDeviceGeneric.html @@ -3,7 +3,7 @@ NMDeviceGeneric: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceInfiniband.html b/docs/libnm-glib/html/NMDeviceInfiniband.html index 2ed81002..c3bf0497 100644 --- a/docs/libnm-glib/html/NMDeviceInfiniband.html +++ b/docs/libnm-glib/html/NMDeviceInfiniband.html @@ -3,7 +3,7 @@ NMDeviceInfiniband: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceModem.html b/docs/libnm-glib/html/NMDeviceModem.html index e03d8f20..b14fa0dd 100644 --- a/docs/libnm-glib/html/NMDeviceModem.html +++ b/docs/libnm-glib/html/NMDeviceModem.html @@ -3,7 +3,7 @@ NMDeviceModem: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceOlpcMesh.html b/docs/libnm-glib/html/NMDeviceOlpcMesh.html index cb82c33e..e3d0f708 100644 --- a/docs/libnm-glib/html/NMDeviceOlpcMesh.html +++ b/docs/libnm-glib/html/NMDeviceOlpcMesh.html @@ -3,7 +3,7 @@ NMDeviceOlpcMesh: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceTeam.html b/docs/libnm-glib/html/NMDeviceTeam.html index 5ea1fdd2..679a7119 100644 --- a/docs/libnm-glib/html/NMDeviceTeam.html +++ b/docs/libnm-glib/html/NMDeviceTeam.html @@ -3,7 +3,7 @@ NMDeviceTeam: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceVlan.html b/docs/libnm-glib/html/NMDeviceVlan.html index 72052696..a69c1e1b 100644 --- a/docs/libnm-glib/html/NMDeviceVlan.html +++ b/docs/libnm-glib/html/NMDeviceVlan.html @@ -3,7 +3,7 @@ NMDeviceVlan: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceWifi.html b/docs/libnm-glib/html/NMDeviceWifi.html index 0c2e4b02..6affb17b 100644 --- a/docs/libnm-glib/html/NMDeviceWifi.html +++ b/docs/libnm-glib/html/NMDeviceWifi.html @@ -3,7 +3,7 @@ NMDeviceWifi: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMDeviceWimax.html b/docs/libnm-glib/html/NMDeviceWimax.html index 06d03477..2ecf398f 100644 --- a/docs/libnm-glib/html/NMDeviceWimax.html +++ b/docs/libnm-glib/html/NMDeviceWimax.html @@ -3,7 +3,7 @@ NMDeviceWimax: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMIP4Config.html b/docs/libnm-glib/html/NMIP4Config.html index 32e94e11..98502b91 100644 --- a/docs/libnm-glib/html/NMIP4Config.html +++ b/docs/libnm-glib/html/NMIP4Config.html @@ -3,7 +3,7 @@ NMIP4Config: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMIP6Config.html b/docs/libnm-glib/html/NMIP6Config.html index 251b855e..18699ab2 100644 --- a/docs/libnm-glib/html/NMIP6Config.html +++ b/docs/libnm-glib/html/NMIP6Config.html @@ -3,7 +3,7 @@ NMIP6Config: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMObject.html b/docs/libnm-glib/html/NMObject.html index 4432c58d..e93478aa 100644 --- a/docs/libnm-glib/html/NMObject.html +++ b/docs/libnm-glib/html/NMObject.html @@ -3,7 +3,7 @@ NMObject: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMRemoteConnection.html b/docs/libnm-glib/html/NMRemoteConnection.html index 5804a1a4..03722499 100644 --- a/docs/libnm-glib/html/NMRemoteConnection.html +++ b/docs/libnm-glib/html/NMRemoteConnection.html @@ -3,7 +3,7 @@ NMRemoteConnection: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMRemoteSettings.html b/docs/libnm-glib/html/NMRemoteSettings.html index 281c3d2e..cf4f2ecd 100644 --- a/docs/libnm-glib/html/NMRemoteSettings.html +++ b/docs/libnm-glib/html/NMRemoteSettings.html @@ -3,7 +3,7 @@ NMRemoteSettings: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMSecretAgent.html b/docs/libnm-glib/html/NMSecretAgent.html index 137eddca..31b4ed10 100644 --- a/docs/libnm-glib/html/NMSecretAgent.html +++ b/docs/libnm-glib/html/NMSecretAgent.html @@ -3,7 +3,7 @@ NMSecretAgent: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMVPNConnection.html b/docs/libnm-glib/html/NMVPNConnection.html index 83840f37..2927ef54 100644 --- a/docs/libnm-glib/html/NMVPNConnection.html +++ b/docs/libnm-glib/html/NMVPNConnection.html @@ -3,7 +3,7 @@ NMVPNConnection: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/NMWimaxNsp.html b/docs/libnm-glib/html/NMWimaxNsp.html index 06d2f34a..bd4e5f61 100644 --- a/docs/libnm-glib/html/NMWimaxNsp.html +++ b/docs/libnm-glib/html/NMWimaxNsp.html @@ -3,7 +3,7 @@ NMWimaxNsp: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/annotation-glossary.html b/docs/libnm-glib/html/annotation-glossary.html index 5df392d5..873fc14a 100644 --- a/docs/libnm-glib/html/annotation-glossary.html +++ b/docs/libnm-glib/html/annotation-glossary.html @@ -3,7 +3,7 @@ Annotation Glossary: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/api-index-full.html b/docs/libnm-glib/html/api-index-full.html index ba795697..4dbf8f6a 100644 --- a/docs/libnm-glib/html/api-index-full.html +++ b/docs/libnm-glib/html/api-index-full.html @@ -3,7 +3,7 @@ API Index: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/ch02.html b/docs/libnm-glib/html/ch02.html index 19dc79a8..2783960c 100644 --- a/docs/libnm-glib/html/ch02.html +++ b/docs/libnm-glib/html/ch02.html @@ -3,7 +3,7 @@ libnm-glib API Reference: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/index.html b/docs/libnm-glib/html/index.html index 7921f6b2..93d159c1 100644 --- a/docs/libnm-glib/html/index.html +++ b/docs/libnm-glib/html/index.html @@ -3,7 +3,7 @@ libnm-glib Reference Manual: libnm-glib Reference Manual - + @@ -15,7 +15,7 @@

- for libnm-glib 1.8.0 + for libnm-glib 1.8.2 The latest version of this documentation can be found on-line at https://developer.gnome.org/libnm-glib/stable/. diff --git a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html index e6f04dfa..bddd1d20 100644 --- a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html +++ b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html @@ -3,7 +3,7 @@ NMVPNPlugin: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html index 2492c803..27425426 100644 --- a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html +++ b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html @@ -3,7 +3,7 @@ NMVpnPluginUiWidget: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/libnm-glib-nm-types.html b/docs/libnm-glib/html/libnm-glib-nm-types.html index a6ad1a53..a58e8d6f 100644 --- a/docs/libnm-glib/html/libnm-glib-nm-types.html +++ b/docs/libnm-glib/html/libnm-glib-nm-types.html @@ -3,7 +3,7 @@ nm-types: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html b/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html index 0203e158..bf1068e6 100644 --- a/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html +++ b/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html @@ -3,7 +3,7 @@ nm-vpn-plugin-utils: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/object-tree.html b/docs/libnm-glib/html/object-tree.html index 92099e2d..6cae5944 100644 --- a/docs/libnm-glib/html/object-tree.html +++ b/docs/libnm-glib/html/object-tree.html @@ -3,7 +3,7 @@ Object Hierarchy: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/html/ref-overview.html b/docs/libnm-glib/html/ref-overview.html index 9abac6e2..7ddfc409 100644 --- a/docs/libnm-glib/html/ref-overview.html +++ b/docs/libnm-glib/html/ref-overview.html @@ -3,7 +3,7 @@ Object Overview: libnm-glib Reference Manual - + diff --git a/docs/libnm-glib/version.xml b/docs/libnm-glib/version.xml index 27f9cd32..53adb84c 100644 --- a/docs/libnm-glib/version.xml +++ b/docs/libnm-glib/version.xml @@ -1 +1 @@ -1.8.0 +1.8.2 diff --git a/docs/libnm-util/html/NMConnection.html b/docs/libnm-util/html/NMConnection.html index 42c5fdd2..3373aa61 100644 --- a/docs/libnm-util/html/NMConnection.html +++ b/docs/libnm-util/html/NMConnection.html @@ -3,7 +3,7 @@ NMConnection: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSetting.html b/docs/libnm-util/html/NMSetting.html index d94a9962..e6ad3db8 100644 --- a/docs/libnm-util/html/NMSetting.html +++ b/docs/libnm-util/html/NMSetting.html @@ -3,7 +3,7 @@ NMSetting: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSetting8021x.html b/docs/libnm-util/html/NMSetting8021x.html index 215f4756..ac021e02 100644 --- a/docs/libnm-util/html/NMSetting8021x.html +++ b/docs/libnm-util/html/NMSetting8021x.html @@ -3,7 +3,7 @@ NMSetting8021x: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingAdsl.html b/docs/libnm-util/html/NMSettingAdsl.html index 06fc602a..3800e74b 100644 --- a/docs/libnm-util/html/NMSettingAdsl.html +++ b/docs/libnm-util/html/NMSettingAdsl.html @@ -3,7 +3,7 @@ NMSettingAdsl: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingBluetooth.html b/docs/libnm-util/html/NMSettingBluetooth.html index 948d0534..6e7bd29c 100644 --- a/docs/libnm-util/html/NMSettingBluetooth.html +++ b/docs/libnm-util/html/NMSettingBluetooth.html @@ -3,7 +3,7 @@ NMSettingBluetooth: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingBond.html b/docs/libnm-util/html/NMSettingBond.html index 359a56d7..b0029134 100644 --- a/docs/libnm-util/html/NMSettingBond.html +++ b/docs/libnm-util/html/NMSettingBond.html @@ -3,7 +3,7 @@ NMSettingBond: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingBridge.html b/docs/libnm-util/html/NMSettingBridge.html index e0b471a9..def9b327 100644 --- a/docs/libnm-util/html/NMSettingBridge.html +++ b/docs/libnm-util/html/NMSettingBridge.html @@ -3,7 +3,7 @@ NMSettingBridge: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingBridgePort.html b/docs/libnm-util/html/NMSettingBridgePort.html index 7292ad8e..6910965b 100644 --- a/docs/libnm-util/html/NMSettingBridgePort.html +++ b/docs/libnm-util/html/NMSettingBridgePort.html @@ -3,7 +3,7 @@ NMSettingBridgePort: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingCdma.html b/docs/libnm-util/html/NMSettingCdma.html index d3e38325..c84c81fe 100644 --- a/docs/libnm-util/html/NMSettingCdma.html +++ b/docs/libnm-util/html/NMSettingCdma.html @@ -3,7 +3,7 @@ NMSettingCdma: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingConnection.html b/docs/libnm-util/html/NMSettingConnection.html index 37346503..0ceb772e 100644 --- a/docs/libnm-util/html/NMSettingConnection.html +++ b/docs/libnm-util/html/NMSettingConnection.html @@ -3,7 +3,7 @@ NMSettingConnection: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingDcb.html b/docs/libnm-util/html/NMSettingDcb.html index 0a012698..10658169 100644 --- a/docs/libnm-util/html/NMSettingDcb.html +++ b/docs/libnm-util/html/NMSettingDcb.html @@ -3,7 +3,7 @@ NMSettingDcb: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingGeneric.html b/docs/libnm-util/html/NMSettingGeneric.html index 5421d662..0594af15 100644 --- a/docs/libnm-util/html/NMSettingGeneric.html +++ b/docs/libnm-util/html/NMSettingGeneric.html @@ -3,7 +3,7 @@ NMSettingGeneric: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingGsm.html b/docs/libnm-util/html/NMSettingGsm.html index 0f3e89f0..861d4f59 100644 --- a/docs/libnm-util/html/NMSettingGsm.html +++ b/docs/libnm-util/html/NMSettingGsm.html @@ -3,7 +3,7 @@ NMSettingGsm: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingIP4Config.html b/docs/libnm-util/html/NMSettingIP4Config.html index 3aadc277..5219754e 100644 --- a/docs/libnm-util/html/NMSettingIP4Config.html +++ b/docs/libnm-util/html/NMSettingIP4Config.html @@ -3,7 +3,7 @@ NMSettingIP4Config: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingIP6Config.html b/docs/libnm-util/html/NMSettingIP6Config.html index 04a3f664..c3be3123 100644 --- a/docs/libnm-util/html/NMSettingIP6Config.html +++ b/docs/libnm-util/html/NMSettingIP6Config.html @@ -3,7 +3,7 @@ NMSettingIP6Config: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingInfiniband.html b/docs/libnm-util/html/NMSettingInfiniband.html index fc84c52d..59c0c29a 100644 --- a/docs/libnm-util/html/NMSettingInfiniband.html +++ b/docs/libnm-util/html/NMSettingInfiniband.html @@ -3,7 +3,7 @@ NMSettingInfiniband: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingOlpcMesh.html b/docs/libnm-util/html/NMSettingOlpcMesh.html index 71eb9299..74cedb70 100644 --- a/docs/libnm-util/html/NMSettingOlpcMesh.html +++ b/docs/libnm-util/html/NMSettingOlpcMesh.html @@ -3,7 +3,7 @@ NMSettingOlpcMesh: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingPPP.html b/docs/libnm-util/html/NMSettingPPP.html index 4993688b..dec817ba 100644 --- a/docs/libnm-util/html/NMSettingPPP.html +++ b/docs/libnm-util/html/NMSettingPPP.html @@ -3,7 +3,7 @@ NMSettingPPP: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingPPPOE.html b/docs/libnm-util/html/NMSettingPPPOE.html index 38e5907e..d021ef6d 100644 --- a/docs/libnm-util/html/NMSettingPPPOE.html +++ b/docs/libnm-util/html/NMSettingPPPOE.html @@ -3,7 +3,7 @@ NMSettingPPPOE: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingSerial.html b/docs/libnm-util/html/NMSettingSerial.html index 746d6a35..601d8d4d 100644 --- a/docs/libnm-util/html/NMSettingSerial.html +++ b/docs/libnm-util/html/NMSettingSerial.html @@ -3,7 +3,7 @@ NMSettingSerial: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingTeam.html b/docs/libnm-util/html/NMSettingTeam.html index 4f973bae..11428df3 100644 --- a/docs/libnm-util/html/NMSettingTeam.html +++ b/docs/libnm-util/html/NMSettingTeam.html @@ -3,7 +3,7 @@ NMSettingTeam: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingTeamPort.html b/docs/libnm-util/html/NMSettingTeamPort.html index 32c10836..6a80f241 100644 --- a/docs/libnm-util/html/NMSettingTeamPort.html +++ b/docs/libnm-util/html/NMSettingTeamPort.html @@ -3,7 +3,7 @@ NMSettingTeamPort: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingVPN.html b/docs/libnm-util/html/NMSettingVPN.html index e3ba97ca..7c60231f 100644 --- a/docs/libnm-util/html/NMSettingVPN.html +++ b/docs/libnm-util/html/NMSettingVPN.html @@ -3,7 +3,7 @@ NMSettingVPN: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingVlan.html b/docs/libnm-util/html/NMSettingVlan.html index 810780ba..8c641bfc 100644 --- a/docs/libnm-util/html/NMSettingVlan.html +++ b/docs/libnm-util/html/NMSettingVlan.html @@ -3,7 +3,7 @@ NMSettingVlan: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingWimax.html b/docs/libnm-util/html/NMSettingWimax.html index 7c686a34..b2b54d6a 100644 --- a/docs/libnm-util/html/NMSettingWimax.html +++ b/docs/libnm-util/html/NMSettingWimax.html @@ -3,7 +3,7 @@ NMSettingWimax: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingWired.html b/docs/libnm-util/html/NMSettingWired.html index befb2c70..23229eeb 100644 --- a/docs/libnm-util/html/NMSettingWired.html +++ b/docs/libnm-util/html/NMSettingWired.html @@ -3,7 +3,7 @@ NMSettingWired: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingWireless.html b/docs/libnm-util/html/NMSettingWireless.html index 0e01497f..7433b31b 100644 --- a/docs/libnm-util/html/NMSettingWireless.html +++ b/docs/libnm-util/html/NMSettingWireless.html @@ -3,7 +3,7 @@ NMSettingWireless: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/NMSettingWirelessSecurity.html b/docs/libnm-util/html/NMSettingWirelessSecurity.html index fcdb9a82..30cefeee 100644 --- a/docs/libnm-util/html/NMSettingWirelessSecurity.html +++ b/docs/libnm-util/html/NMSettingWirelessSecurity.html @@ -3,7 +3,7 @@ NMSettingWirelessSecurity: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/annotation-glossary.html b/docs/libnm-util/html/annotation-glossary.html index 012219af..e5ba124a 100644 --- a/docs/libnm-util/html/annotation-glossary.html +++ b/docs/libnm-util/html/annotation-glossary.html @@ -3,7 +3,7 @@ Annotation Glossary: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/api-index-full.html b/docs/libnm-util/html/api-index-full.html index 3d8c605f..8dbac834 100644 --- a/docs/libnm-util/html/api-index-full.html +++ b/docs/libnm-util/html/api-index-full.html @@ -3,7 +3,7 @@ API Index: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/ch01.html b/docs/libnm-util/html/ch01.html index 5c7d3cce..7faea588 100644 --- a/docs/libnm-util/html/ch01.html +++ b/docs/libnm-util/html/ch01.html @@ -3,7 +3,7 @@ libnm-util API Reference: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/index.html b/docs/libnm-util/html/index.html index 1a185db1..45b8eb22 100644 --- a/docs/libnm-util/html/index.html +++ b/docs/libnm-util/html/index.html @@ -3,7 +3,7 @@ libnm-util Reference Manual: libnm-util Reference Manual - + @@ -15,7 +15,7 @@

- for libnm-util 1.8.0 + for libnm-util 1.8.2 The latest version of this documentation can be found on-line at https://developer.gnome.org/libnm-util/stable/. diff --git a/docs/libnm-util/html/libnm-util-NetworkManager.html b/docs/libnm-util/html/libnm-util-NetworkManager.html index fc5ae118..2d2388c4 100644 --- a/docs/libnm-util/html/libnm-util-NetworkManager.html +++ b/docs/libnm-util/html/libnm-util-NetworkManager.html @@ -3,7 +3,7 @@ NetworkManager: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html b/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html index e5e853e3..967995d4 100644 --- a/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html +++ b/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html @@ -3,7 +3,7 @@ NetworkManagerVPN: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/libnm-util-nm-utils.html b/docs/libnm-util/html/libnm-util-nm-utils.html index 6dd68fd8..31c9d3dd 100644 --- a/docs/libnm-util/html/libnm-util-nm-utils.html +++ b/docs/libnm-util/html/libnm-util-nm-utils.html @@ -3,7 +3,7 @@ nm-utils: libnm-util Reference Manual - + diff --git a/docs/libnm-util/html/object-tree.html b/docs/libnm-util/html/object-tree.html index e62953e6..2e58a54e 100644 --- a/docs/libnm-util/html/object-tree.html +++ b/docs/libnm-util/html/object-tree.html @@ -3,7 +3,7 @@ Object Hierarchy: libnm-util Reference Manual - + diff --git a/docs/libnm-util/version.xml b/docs/libnm-util/version.xml index 27f9cd32..53adb84c 100644 --- a/docs/libnm-util/version.xml +++ b/docs/libnm-util/version.xml @@ -1 +1 @@ -1.8.0 +1.8.2 diff --git a/docs/libnm/html/NMAccessPoint.html b/docs/libnm/html/NMAccessPoint.html index 3152772c..6e32e8e5 100644 --- a/docs/libnm/html/NMAccessPoint.html +++ b/docs/libnm/html/NMAccessPoint.html @@ -3,7 +3,7 @@ NMAccessPoint: libnm Reference Manual - + diff --git a/docs/libnm/html/NMActiveConnection.html b/docs/libnm/html/NMActiveConnection.html index 8bc4c66f..1dafc378 100644 --- a/docs/libnm/html/NMActiveConnection.html +++ b/docs/libnm/html/NMActiveConnection.html @@ -3,7 +3,7 @@ NMActiveConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMClient.html b/docs/libnm/html/NMClient.html index 5d8b8de6..fbad59d3 100644 --- a/docs/libnm/html/NMClient.html +++ b/docs/libnm/html/NMClient.html @@ -3,7 +3,7 @@ NMClient: libnm Reference Manual - + diff --git a/docs/libnm/html/NMConnection.html b/docs/libnm/html/NMConnection.html index 55947dda..95620afd 100644 --- a/docs/libnm/html/NMConnection.html +++ b/docs/libnm/html/NMConnection.html @@ -3,7 +3,7 @@ NMConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDevice.html b/docs/libnm/html/NMDevice.html index 8730309c..bd5282be 100644 --- a/docs/libnm/html/NMDevice.html +++ b/docs/libnm/html/NMDevice.html @@ -3,7 +3,7 @@ NMDevice: libnm Reference Manual - + @@ -1635,6 +1635,8 @@ nm_device_get_product (

Returns

the product name of the device. This is the internal string used by the device, and must not be modified.

+

The string is backslash escaped (C escaping) for invalid characters. The escaping +can be reverted with g_strcompress(), however the result may not be valid UTF-8.


@@ -1662,6 +1664,8 @@ nm_device_get_vendor (

Returns

the vendor name of the device. This is the internal string used by the device, and must not be modified.

+

The string is backslash escaped (C escaping) for invalid characters. The escaping +can be reverted with g_strcompress(), however the result may not be valid UTF-8.


diff --git a/docs/libnm/html/NMDeviceAdsl.html b/docs/libnm/html/NMDeviceAdsl.html index cb06cd98..c4cd4a58 100644 --- a/docs/libnm/html/NMDeviceAdsl.html +++ b/docs/libnm/html/NMDeviceAdsl.html @@ -3,7 +3,7 @@ NMDeviceAdsl: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceBond.html b/docs/libnm/html/NMDeviceBond.html index 5d90a4b9..2870d64a 100644 --- a/docs/libnm/html/NMDeviceBond.html +++ b/docs/libnm/html/NMDeviceBond.html @@ -3,7 +3,7 @@ NMDeviceBond: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceBridge.html b/docs/libnm/html/NMDeviceBridge.html index 0f50f3e4..54255c71 100644 --- a/docs/libnm/html/NMDeviceBridge.html +++ b/docs/libnm/html/NMDeviceBridge.html @@ -3,7 +3,7 @@ NMDeviceBridge: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceBt.html b/docs/libnm/html/NMDeviceBt.html index eea42deb..79d36a83 100644 --- a/docs/libnm/html/NMDeviceBt.html +++ b/docs/libnm/html/NMDeviceBt.html @@ -3,7 +3,7 @@ NMDeviceBt: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceDummy.html b/docs/libnm/html/NMDeviceDummy.html index 5dc3564f..b6f81170 100644 --- a/docs/libnm/html/NMDeviceDummy.html +++ b/docs/libnm/html/NMDeviceDummy.html @@ -3,7 +3,7 @@ NMDeviceDummy: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceEthernet.html b/docs/libnm/html/NMDeviceEthernet.html index 49748d81..3b69db6f 100644 --- a/docs/libnm/html/NMDeviceEthernet.html +++ b/docs/libnm/html/NMDeviceEthernet.html @@ -3,7 +3,7 @@ NMDeviceEthernet: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceGeneric.html b/docs/libnm/html/NMDeviceGeneric.html index 6dd192b9..b01f3880 100644 --- a/docs/libnm/html/NMDeviceGeneric.html +++ b/docs/libnm/html/NMDeviceGeneric.html @@ -3,7 +3,7 @@ NMDeviceGeneric: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceIPTunnel.html b/docs/libnm/html/NMDeviceIPTunnel.html index d65a58ec..c8b90517 100644 --- a/docs/libnm/html/NMDeviceIPTunnel.html +++ b/docs/libnm/html/NMDeviceIPTunnel.html @@ -3,7 +3,7 @@ NMDeviceIPTunnel: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceInfiniband.html b/docs/libnm/html/NMDeviceInfiniband.html index dd716c44..3c3606e2 100644 --- a/docs/libnm/html/NMDeviceInfiniband.html +++ b/docs/libnm/html/NMDeviceInfiniband.html @@ -3,7 +3,7 @@ NMDeviceInfiniband: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceMacsec.html b/docs/libnm/html/NMDeviceMacsec.html index 4e5b63d4..afe6d691 100644 --- a/docs/libnm/html/NMDeviceMacsec.html +++ b/docs/libnm/html/NMDeviceMacsec.html @@ -3,7 +3,7 @@ NMDeviceMacsec: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceMacvlan.html b/docs/libnm/html/NMDeviceMacvlan.html index 4ce9994a..adae7e11 100644 --- a/docs/libnm/html/NMDeviceMacvlan.html +++ b/docs/libnm/html/NMDeviceMacvlan.html @@ -3,7 +3,7 @@ NMDeviceMacvlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceModem.html b/docs/libnm/html/NMDeviceModem.html index 5d177f3c..7f9046b9 100644 --- a/docs/libnm/html/NMDeviceModem.html +++ b/docs/libnm/html/NMDeviceModem.html @@ -3,7 +3,7 @@ NMDeviceModem: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceOlpcMesh.html b/docs/libnm/html/NMDeviceOlpcMesh.html index a6fab1c9..be5c2956 100644 --- a/docs/libnm/html/NMDeviceOlpcMesh.html +++ b/docs/libnm/html/NMDeviceOlpcMesh.html @@ -3,7 +3,7 @@ NMDeviceOlpcMesh: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceTeam.html b/docs/libnm/html/NMDeviceTeam.html index 526d3a99..d7b78da6 100644 --- a/docs/libnm/html/NMDeviceTeam.html +++ b/docs/libnm/html/NMDeviceTeam.html @@ -3,7 +3,7 @@ NMDeviceTeam: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceTun.html b/docs/libnm/html/NMDeviceTun.html index 1dc0d6aa..eb87644a 100644 --- a/docs/libnm/html/NMDeviceTun.html +++ b/docs/libnm/html/NMDeviceTun.html @@ -3,7 +3,7 @@ NMDeviceTun: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceVlan.html b/docs/libnm/html/NMDeviceVlan.html index 16df6ea6..b87b2254 100644 --- a/docs/libnm/html/NMDeviceVlan.html +++ b/docs/libnm/html/NMDeviceVlan.html @@ -3,7 +3,7 @@ NMDeviceVlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceVxlan.html b/docs/libnm/html/NMDeviceVxlan.html index ba0fd39b..2f841e07 100644 --- a/docs/libnm/html/NMDeviceVxlan.html +++ b/docs/libnm/html/NMDeviceVxlan.html @@ -3,7 +3,7 @@ NMDeviceVxlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceWifi.html b/docs/libnm/html/NMDeviceWifi.html index bf2938d6..02a0b206 100644 --- a/docs/libnm/html/NMDeviceWifi.html +++ b/docs/libnm/html/NMDeviceWifi.html @@ -3,7 +3,7 @@ NMDeviceWifi: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDeviceWimax.html b/docs/libnm/html/NMDeviceWimax.html index 40be52ec..902b76d5 100644 --- a/docs/libnm/html/NMDeviceWimax.html +++ b/docs/libnm/html/NMDeviceWimax.html @@ -3,7 +3,7 @@ NMDeviceWimax: libnm Reference Manual - + diff --git a/docs/libnm/html/NMDhcpConfig.html b/docs/libnm/html/NMDhcpConfig.html index e358d689..1783fe5c 100644 --- a/docs/libnm/html/NMDhcpConfig.html +++ b/docs/libnm/html/NMDhcpConfig.html @@ -3,7 +3,7 @@ NMDhcpConfig: libnm Reference Manual - + diff --git a/docs/libnm/html/NMIPConfig.html b/docs/libnm/html/NMIPConfig.html index 3d43bc21..1282637c 100644 --- a/docs/libnm/html/NMIPConfig.html +++ b/docs/libnm/html/NMIPConfig.html @@ -3,7 +3,7 @@ NMIPConfig: libnm Reference Manual - + diff --git a/docs/libnm/html/NMObject.html b/docs/libnm/html/NMObject.html index 853dbeb7..c6fae01c 100644 --- a/docs/libnm/html/NMObject.html +++ b/docs/libnm/html/NMObject.html @@ -3,7 +3,7 @@ NMObject: libnm Reference Manual - + @@ -69,13 +69,13 @@ GDBusObject * dbus-object -Read / Write / Construct Only +Write / Construct Only GDBusObjectManager * dbus-object-manager -Read / Write / Construct Only +Write / Construct Only @@ -204,7 +204,7 @@ object, and must not be modified.

  “dbus-object”              GDBusObject *

The GDBusObject of the object.

[skip]

-

Flags: Read / Write / Construct Only

+

Flags: Write / Construct Only


@@ -212,7 +212,7 @@ object, and must not be modified.

  “dbus-object-manager”      GDBusObjectManager *

The GDBusObjectManager of the object.

[skip]

-

Flags: Read / Write / Construct Only

+

Flags: Write / Construct Only


diff --git a/docs/libnm/html/NMRemoteConnection.html b/docs/libnm/html/NMRemoteConnection.html index 7441b6c3..03b7753e 100644 --- a/docs/libnm/html/NMRemoteConnection.html +++ b/docs/libnm/html/NMRemoteConnection.html @@ -3,7 +3,7 @@ NMRemoteConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSecretAgentOld.html b/docs/libnm/html/NMSecretAgentOld.html index 65cb389a..8e11585e 100644 --- a/docs/libnm/html/NMSecretAgentOld.html +++ b/docs/libnm/html/NMSecretAgentOld.html @@ -3,7 +3,7 @@ NMSecretAgentOld: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSetting.html b/docs/libnm/html/NMSetting.html index 66b934f0..ad551841 100644 --- a/docs/libnm/html/NMSetting.html +++ b/docs/libnm/html/NMSetting.html @@ -3,7 +3,7 @@ NMSetting: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSetting8021x.html b/docs/libnm/html/NMSetting8021x.html index b88fe242..10870083 100644 --- a/docs/libnm/html/NMSetting8021x.html +++ b/docs/libnm/html/NMSetting8021x.html @@ -3,7 +3,7 @@ NMSetting8021x: libnm Reference Manual - + @@ -4500,7 +4500,7 @@ should be used.

NMSetting8021x

typedef struct _NMSetting8021x NMSetting8021x;
-

AIEEE 802.1x Authentication Settings

+

IEEE 802.1x Authentication Settings

diff --git a/docs/libnm/html/NMSettingAdsl.html b/docs/libnm/html/NMSettingAdsl.html index 8ef99cbc..12724c50 100644 --- a/docs/libnm/html/NMSettingAdsl.html +++ b/docs/libnm/html/NMSettingAdsl.html @@ -3,7 +3,7 @@ NMSettingAdsl: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingBluetooth.html b/docs/libnm/html/NMSettingBluetooth.html index e6aceb9e..f5c0cf41 100644 --- a/docs/libnm/html/NMSettingBluetooth.html +++ b/docs/libnm/html/NMSettingBluetooth.html @@ -3,7 +3,7 @@ NMSettingBluetooth: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingBond.html b/docs/libnm/html/NMSettingBond.html index a9187235..ff5e946b 100644 --- a/docs/libnm/html/NMSettingBond.html +++ b/docs/libnm/html/NMSettingBond.html @@ -3,7 +3,7 @@ NMSettingBond: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingBridge.html b/docs/libnm/html/NMSettingBridge.html index 356710e8..cff76051 100644 --- a/docs/libnm/html/NMSettingBridge.html +++ b/docs/libnm/html/NMSettingBridge.html @@ -3,7 +3,7 @@ NMSettingBridge: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingBridgePort.html b/docs/libnm/html/NMSettingBridgePort.html index f97f4fc2..75635d2a 100644 --- a/docs/libnm/html/NMSettingBridgePort.html +++ b/docs/libnm/html/NMSettingBridgePort.html @@ -3,7 +3,7 @@ NMSettingBridgePort: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingCdma.html b/docs/libnm/html/NMSettingCdma.html index 6173885c..06dac684 100644 --- a/docs/libnm/html/NMSettingCdma.html +++ b/docs/libnm/html/NMSettingCdma.html @@ -3,7 +3,7 @@ NMSettingCdma: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingConnection.html b/docs/libnm/html/NMSettingConnection.html index d354a751..a7372abc 100644 --- a/docs/libnm/html/NMSettingConnection.html +++ b/docs/libnm/html/NMSettingConnection.html @@ -3,7 +3,7 @@ NMSettingConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingDcb.html b/docs/libnm/html/NMSettingDcb.html index 6a497ba8..285c1b7a 100644 --- a/docs/libnm/html/NMSettingDcb.html +++ b/docs/libnm/html/NMSettingDcb.html @@ -3,7 +3,7 @@ NMSettingDcb: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingDummy.html b/docs/libnm/html/NMSettingDummy.html index a6fc3605..d94079c5 100644 --- a/docs/libnm/html/NMSettingDummy.html +++ b/docs/libnm/html/NMSettingDummy.html @@ -3,7 +3,7 @@ NMSettingDummy: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingGeneric.html b/docs/libnm/html/NMSettingGeneric.html index 714ec7c3..4332a58e 100644 --- a/docs/libnm/html/NMSettingGeneric.html +++ b/docs/libnm/html/NMSettingGeneric.html @@ -3,7 +3,7 @@ NMSettingGeneric: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingGsm.html b/docs/libnm/html/NMSettingGsm.html index 0a80c7f2..111a4a4e 100644 --- a/docs/libnm/html/NMSettingGsm.html +++ b/docs/libnm/html/NMSettingGsm.html @@ -3,7 +3,7 @@ NMSettingGsm: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingIP4Config.html b/docs/libnm/html/NMSettingIP4Config.html index e2e7cfed..46e11c1a 100644 --- a/docs/libnm/html/NMSettingIP4Config.html +++ b/docs/libnm/html/NMSettingIP4Config.html @@ -3,7 +3,7 @@ NMSettingIP4Config: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingIP6Config.html b/docs/libnm/html/NMSettingIP6Config.html index 9f735103..00bf63d0 100644 --- a/docs/libnm/html/NMSettingIP6Config.html +++ b/docs/libnm/html/NMSettingIP6Config.html @@ -3,7 +3,7 @@ NMSettingIP6Config: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingIPConfig.html b/docs/libnm/html/NMSettingIPConfig.html index 10afde80..e7722f0b 100644 --- a/docs/libnm/html/NMSettingIPConfig.html +++ b/docs/libnm/html/NMSettingIPConfig.html @@ -3,7 +3,7 @@ NMSettingIPConfig: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingIPTunnel.html b/docs/libnm/html/NMSettingIPTunnel.html index 70663b57..fdd4fc4f 100644 --- a/docs/libnm/html/NMSettingIPTunnel.html +++ b/docs/libnm/html/NMSettingIPTunnel.html @@ -3,7 +3,7 @@ NMSettingIPTunnel: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingInfiniband.html b/docs/libnm/html/NMSettingInfiniband.html index 13c0751a..e40f8af7 100644 --- a/docs/libnm/html/NMSettingInfiniband.html +++ b/docs/libnm/html/NMSettingInfiniband.html @@ -3,7 +3,7 @@ NMSettingInfiniband: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingMacsec.html b/docs/libnm/html/NMSettingMacsec.html index e0c7b741..972e98d7 100644 --- a/docs/libnm/html/NMSettingMacsec.html +++ b/docs/libnm/html/NMSettingMacsec.html @@ -3,7 +3,7 @@ NMSettingMacsec: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingMacvlan.html b/docs/libnm/html/NMSettingMacvlan.html index dd995d47..5c6e9acd 100644 --- a/docs/libnm/html/NMSettingMacvlan.html +++ b/docs/libnm/html/NMSettingMacvlan.html @@ -3,7 +3,7 @@ NMSettingMacvlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingOlpcMesh.html b/docs/libnm/html/NMSettingOlpcMesh.html index 58ed5b18..df0ef3dd 100644 --- a/docs/libnm/html/NMSettingOlpcMesh.html +++ b/docs/libnm/html/NMSettingOlpcMesh.html @@ -3,7 +3,7 @@ NMSettingOlpcMesh: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingPpp.html b/docs/libnm/html/NMSettingPpp.html index a0c6205b..ebc08aa9 100644 --- a/docs/libnm/html/NMSettingPpp.html +++ b/docs/libnm/html/NMSettingPpp.html @@ -3,7 +3,7 @@ NMSettingPpp: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingPppoe.html b/docs/libnm/html/NMSettingPppoe.html index 31d7adfa..6d673bf0 100644 --- a/docs/libnm/html/NMSettingPppoe.html +++ b/docs/libnm/html/NMSettingPppoe.html @@ -3,7 +3,7 @@ NMSettingPppoe: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingSerial.html b/docs/libnm/html/NMSettingSerial.html index 49600d00..e6483fc7 100644 --- a/docs/libnm/html/NMSettingSerial.html +++ b/docs/libnm/html/NMSettingSerial.html @@ -3,7 +3,7 @@ NMSettingSerial: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingTeam.html b/docs/libnm/html/NMSettingTeam.html index b8e1cfa2..79a5b3d0 100644 --- a/docs/libnm/html/NMSettingTeam.html +++ b/docs/libnm/html/NMSettingTeam.html @@ -3,7 +3,7 @@ NMSettingTeam: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingTeamPort.html b/docs/libnm/html/NMSettingTeamPort.html index 55c1580a..59751ec2 100644 --- a/docs/libnm/html/NMSettingTeamPort.html +++ b/docs/libnm/html/NMSettingTeamPort.html @@ -3,7 +3,7 @@ NMSettingTeamPort: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingTun.html b/docs/libnm/html/NMSettingTun.html index 85ebdcb8..e83919ec 100644 --- a/docs/libnm/html/NMSettingTun.html +++ b/docs/libnm/html/NMSettingTun.html @@ -3,7 +3,7 @@ NMSettingTun: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingVlan.html b/docs/libnm/html/NMSettingVlan.html index 7451a21d..eaf85a01 100644 --- a/docs/libnm/html/NMSettingVlan.html +++ b/docs/libnm/html/NMSettingVlan.html @@ -3,7 +3,7 @@ NMSettingVlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingVpn.html b/docs/libnm/html/NMSettingVpn.html index 439e24b9..6836679f 100644 --- a/docs/libnm/html/NMSettingVpn.html +++ b/docs/libnm/html/NMSettingVpn.html @@ -3,7 +3,7 @@ NMSettingVpn: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingVxlan.html b/docs/libnm/html/NMSettingVxlan.html index 53f5b707..70ff153c 100644 --- a/docs/libnm/html/NMSettingVxlan.html +++ b/docs/libnm/html/NMSettingVxlan.html @@ -3,7 +3,7 @@ NMSettingVxlan: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingWimax.html b/docs/libnm/html/NMSettingWimax.html index b3211dda..585b24c5 100644 --- a/docs/libnm/html/NMSettingWimax.html +++ b/docs/libnm/html/NMSettingWimax.html @@ -3,7 +3,7 @@ NMSettingWimax: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingWired.html b/docs/libnm/html/NMSettingWired.html index 1866c91a..e4965e4b 100644 --- a/docs/libnm/html/NMSettingWired.html +++ b/docs/libnm/html/NMSettingWired.html @@ -3,7 +3,7 @@ NMSettingWired: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingWireless.html b/docs/libnm/html/NMSettingWireless.html index f650348e..165002f3 100644 --- a/docs/libnm/html/NMSettingWireless.html +++ b/docs/libnm/html/NMSettingWireless.html @@ -3,7 +3,7 @@ NMSettingWireless: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSettingWirelessSecurity.html b/docs/libnm/html/NMSettingWirelessSecurity.html index 7d4cb824..90399f70 100644 --- a/docs/libnm/html/NMSettingWirelessSecurity.html +++ b/docs/libnm/html/NMSettingWirelessSecurity.html @@ -3,7 +3,7 @@ NMSettingWirelessSecurity: libnm Reference Manual - + diff --git a/docs/libnm/html/NMSimpleConnection.html b/docs/libnm/html/NMSimpleConnection.html index 4409af01..2e16290f 100644 --- a/docs/libnm/html/NMSimpleConnection.html +++ b/docs/libnm/html/NMSimpleConnection.html @@ -3,7 +3,7 @@ NMSimpleConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMVpnConnection.html b/docs/libnm/html/NMVpnConnection.html index 2c6878cb..b1811aae 100644 --- a/docs/libnm/html/NMVpnConnection.html +++ b/docs/libnm/html/NMVpnConnection.html @@ -3,7 +3,7 @@ NMVpnConnection: libnm Reference Manual - + diff --git a/docs/libnm/html/NMVpnEditorPlugin.html b/docs/libnm/html/NMVpnEditorPlugin.html index 18967a8a..b0c077b4 100644 --- a/docs/libnm/html/NMVpnEditorPlugin.html +++ b/docs/libnm/html/NMVpnEditorPlugin.html @@ -3,7 +3,7 @@ NMVpnEditorPlugin: libnm Reference Manual - + diff --git a/docs/libnm/html/NMWimaxNsp.html b/docs/libnm/html/NMWimaxNsp.html index b4f48849..66966786 100644 --- a/docs/libnm/html/NMWimaxNsp.html +++ b/docs/libnm/html/NMWimaxNsp.html @@ -3,7 +3,7 @@ NMWimaxNsp: libnm Reference Manual - + diff --git a/docs/libnm/html/annotation-glossary.html b/docs/libnm/html/annotation-glossary.html index 82a162a8..77d2b143 100644 --- a/docs/libnm/html/annotation-glossary.html +++ b/docs/libnm/html/annotation-glossary.html @@ -3,7 +3,7 @@ Annotation Glossary: libnm Reference Manual - + diff --git a/docs/libnm/html/api-index-full.html b/docs/libnm/html/api-index-full.html index 23e29073..ce03c509 100644 --- a/docs/libnm/html/api-index-full.html +++ b/docs/libnm/html/api-index-full.html @@ -3,7 +3,7 @@ API Index: libnm Reference Manual - + @@ -9113,6 +9113,10 @@ nm_setting_user_set_data, function in nm-setting-user
+nm_utils_fixup_desc_string, function in nm-libnm-utils +
+
+
nm_utils_format_variant_attributes, function in nm-utils
diff --git a/docs/libnm/html/ch02.html b/docs/libnm/html/ch02.html index 0d2a1593..13b684ac 100644 --- a/docs/libnm/html/ch02.html +++ b/docs/libnm/html/ch02.html @@ -3,7 +3,7 @@ Client Object API Reference: libnm Reference Manual - + diff --git a/docs/libnm/html/ch03.html b/docs/libnm/html/ch03.html index 0b11027a..74e8caa4 100644 --- a/docs/libnm/html/ch03.html +++ b/docs/libnm/html/ch03.html @@ -3,7 +3,7 @@ Connection and Setting API Reference: libnm Reference Manual - + diff --git a/docs/libnm/html/ch04.html b/docs/libnm/html/ch04.html index 6a14ecc7..3348708c 100644 --- a/docs/libnm/html/ch04.html +++ b/docs/libnm/html/ch04.html @@ -3,7 +3,7 @@ Device and Runtime Configuration API Reference: libnm Reference Manual - + diff --git a/docs/libnm/html/ch05.html b/docs/libnm/html/ch05.html index 96ebc473..ca745919 100644 --- a/docs/libnm/html/ch05.html +++ b/docs/libnm/html/ch05.html @@ -3,7 +3,7 @@ Utility API Reference: libnm Reference Manual - + diff --git a/docs/libnm/html/ch06.html b/docs/libnm/html/ch06.html index 962d2c83..a8cb9f22 100644 --- a/docs/libnm/html/ch06.html +++ b/docs/libnm/html/ch06.html @@ -3,7 +3,7 @@ VPN Plugin API Reference: libnm Reference Manual - + diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html index 78e47df6..cf5977db 100644 --- a/docs/libnm/html/index.html +++ b/docs/libnm/html/index.html @@ -3,7 +3,7 @@ libnm Reference Manual: libnm Reference Manual - + @@ -15,7 +15,7 @@

- for libnm 1.8.0 + for libnm 1.8.2 The latest version of this documentation can be found on-line at https://developer.gnome.org/libnm/stable/. diff --git a/docs/libnm/html/libnm-nm-dbus-interface.html b/docs/libnm/html/libnm-nm-dbus-interface.html index fdbddb36..10468905 100644 --- a/docs/libnm/html/libnm-nm-dbus-interface.html +++ b/docs/libnm/html/libnm-nm-dbus-interface.html @@ -3,7 +3,7 @@ nm-dbus-interface: libnm Reference Manual - + diff --git a/docs/libnm/html/libnm-nm-errors.html b/docs/libnm/html/libnm-nm-errors.html index 071c5eb4..3d77e193 100644 --- a/docs/libnm/html/libnm-nm-errors.html +++ b/docs/libnm/html/libnm-nm-errors.html @@ -3,7 +3,7 @@ nm-errors: libnm Reference Manual - + diff --git a/docs/libnm/html/libnm-nm-utils.html b/docs/libnm/html/libnm-nm-utils.html index fdd9876f..59bd902f 100644 --- a/docs/libnm/html/libnm-nm-utils.html +++ b/docs/libnm/html/libnm-nm-utils.html @@ -3,7 +3,7 @@ nm-utils: libnm Reference Manual - + diff --git a/docs/libnm/html/libnm-nm-version.html b/docs/libnm/html/libnm-nm-version.html index e4cee3e4..78bd0fca 100644 --- a/docs/libnm/html/libnm-nm-version.html +++ b/docs/libnm/html/libnm-nm-version.html @@ -3,7 +3,7 @@ nm-version: libnm Reference Manual - + diff --git a/docs/libnm/html/libnm-nm-vpn-dbus-interface.html b/docs/libnm/html/libnm-nm-vpn-dbus-interface.html index b4c94889..7b3c8a50 100644 --- a/docs/libnm/html/libnm-nm-vpn-dbus-interface.html +++ b/docs/libnm/html/libnm-nm-vpn-dbus-interface.html @@ -3,7 +3,7 @@ nm-vpn-dbus-interface: libnm Reference Manual - + diff --git a/docs/libnm/html/object-tree.html b/docs/libnm/html/object-tree.html index 36652fe0..057a734b 100644 --- a/docs/libnm/html/object-tree.html +++ b/docs/libnm/html/object-tree.html @@ -3,7 +3,7 @@ Object Hierarchy: libnm Reference Manual - + diff --git a/docs/libnm/html/ref-overview.html b/docs/libnm/html/ref-overview.html index d2f12619..d281a195 100644 --- a/docs/libnm/html/ref-overview.html +++ b/docs/libnm/html/ref-overview.html @@ -3,7 +3,7 @@ Overview: libnm Reference Manual - + diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html index 1f7cb3f6..e4a67a43 100644 --- a/docs/libnm/html/usage.html +++ b/docs/libnm/html/usage.html @@ -3,7 +3,7 @@ Using libnm: libnm Reference Manual - + @@ -96,7 +96,7 @@

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

diff --git a/docs/libnm/libnm-sections.txt b/docs/libnm/libnm-sections.txt index 969bfde8..ccaee14d 100644 --- a/docs/libnm/libnm-sections.txt +++ b/docs/libnm/libnm-sections.txt @@ -1219,6 +1219,11 @@ NM_TYPE_IP_CONFIG nm_ip_config_get_type +

+nm-libnm-utils +nm_utils_fixup_desc_string +
+
nm-object NMObject diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml index 27f9cd32..53adb84c 100644 --- a/docs/libnm/version.xml +++ b/docs/libnm/version.xml @@ -1 +1 @@ -1.8.0 +1.8.2 diff --git a/introspection/org.freedesktop.NetworkManager.Device.xml b/introspection/org.freedesktop.NetworkManager.Device.xml index ee424101..be0a612c 100644 --- a/introspection/org.freedesktop.NetworkManager.Device.xml +++ b/introspection/org.freedesktop.NetworkManager.Device.xml @@ -21,6 +21,9 @@ each device in your application, use the object path. If you're looking for a way to track a specific piece of hardware across reboot or hotplug, use a MAC address or USB serial number. + + Note that non-UTF-8 characters are backslash escaped. Use g_strcompress() + to obtain the true (non-UTF-8) string. --> @@ -28,6 +31,9 @@ Interface: The name of the device's control (and often data) interface. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping. --> @@ -38,6 +44,9 @@ not refer to the actual data interface until the device has successfully established a data connection, indicated by the device's State becoming ACTIVATED. + Note that non UTF-8 characters are backslash escaped, so the + resulting name may be longer then 15 characters. Use g_strcompress() + to revert the escaping. --> @@ -45,6 +54,8 @@ Driver: The driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. --> @@ -52,6 +63,8 @@ DriverVersion: The version of the driver handling the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. --> @@ -59,6 +72,8 @@ FirmwareVersion: The firmware version for the device. + Non-UTF-8 sequences are backslash escaped. Use g_strcompress() + to revert. --> diff --git a/introspection/org.freedesktop.NetworkManager.xml b/introspection/org.freedesktop.NetworkManager.xml index ebd04a89..73cbc725 100644 --- a/introspection/org.freedesktop.NetworkManager.xml +++ b/introspection/org.freedesktop.NetworkManager.xml @@ -213,11 +213,10 @@ @@ -242,8 +241,8 @@ diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c index ecfb9780..c1b75068 100644 --- a/libnm-core/nm-connection.c +++ b/libnm-core/nm-connection.c @@ -912,6 +912,36 @@ _normalize_bond_mode (NMConnection *self, GHashTable *parameters) return FALSE; } +static gboolean +_normalize_bond_options (NMConnection *self, GHashTable *parameters) +{ + NMSettingBond *s_bond = nm_connection_get_setting_bond (self); + gboolean changed = FALSE; + const char *name, *mode_str; + NMBondMode mode; + guint32 num, i; + + /* Strip away unsupported options for current mode */ + if (s_bond) { + mode_str = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MODE); + mode = _nm_setting_bond_mode_from_string (mode_str); + if (mode == NM_BOND_MODE_UNKNOWN) + return FALSE; +again: + num = nm_setting_bond_get_num_options (s_bond); + for (i = 0; i < num; i++) { + if ( nm_setting_bond_get_option (s_bond, i, &name, NULL) + && !_nm_setting_bond_option_supported (name, mode)) { + nm_setting_bond_remove_option (s_bond, name); + changed = TRUE; + goto again; + } + } + } + + return changed; +} + static gboolean _normalize_wireless_mac_address_randomization (NMConnection *self, GHashTable *parameters) { @@ -1275,6 +1305,7 @@ nm_connection_normalize (NMConnection *connection, 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_team_config (connection, parameters); was_modified |= _normalize_team_port_config (connection, parameters); diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index ac292bfc..91967ce3 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -343,6 +343,24 @@ _nm_setting_bond_get_option_type (NMSettingBond *setting, const char *name); /*****************************************************************************/ +/* nm_connection_get_uuid() asserts against NULL, which is the right thing to + * do in order to catch bugs. However, sometimes that behavior is inconvenient. + * Just try or return NULL. */ + +static inline const char * +_nm_connection_get_id (NMConnection *connection) +{ + return connection ? nm_connection_get_id (connection) : NULL; +} + +static inline const char * +_nm_connection_get_uuid (NMConnection *connection) +{ + return connection ? nm_connection_get_uuid (connection) : NULL; +} + +/*****************************************************************************/ + typedef enum { NM_BOND_MODE_UNKNOWN = 0, NM_BOND_MODE_ROUNDROBIN, diff --git a/libnm-core/nm-setting-8021x.h b/libnm-core/nm-setting-8021x.h index 0f5f7ddd..e1631e2d 100644 --- a/libnm-core/nm-setting-8021x.h +++ b/libnm-core/nm-setting-8021x.h @@ -175,7 +175,7 @@ typedef enum { /*< underscore_name=nm_setting_802_1x_auth_flags >*/ /** * NMSetting8021x: * - * AIEEE 802.1x Authentication Settings + * IEEE 802.1x Authentication Settings */ struct _NMSetting8021x { NMSetting parent; diff --git a/libnm-core/nm-setting-bond.c b/libnm-core/nm-setting-bond.c index 9a8bdc37..165001b0 100644 --- a/libnm-core/nm-setting-bond.c +++ b/libnm-core/nm-setting-bond.c @@ -85,8 +85,8 @@ static const BondDefault defaults[] = { { NM_SETTING_BOND_OPTION_USE_CARRIER, "1", NM_BOND_OPTION_TYPE_INT, 0, 1 }, { NM_SETTING_BOND_OPTION_AD_SELECT, "stable", NM_BOND_OPTION_TYPE_BOTH, 0, 2, { "stable", "bandwidth", "count", NULL } }, - { NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY, "layer2", NM_BOND_OPTION_TYPE_BOTH, 0, 2, - { "layer2", "layer3+4", "layer2+3", NULL } }, + { NM_SETTING_BOND_OPTION_XMIT_HASH_POLICY, "layer2", NM_BOND_OPTION_TYPE_BOTH, 0, 4, + { "layer2", "layer3+4", "layer2+3", "encap2+3", "encap3+4", NULL } }, { NM_SETTING_BOND_OPTION_RESEND_IGMP, "1", NM_BOND_OPTION_TYPE_INT, 0, 255 }, { NM_SETTING_BOND_OPTION_LACP_RATE, "slow", NM_BOND_OPTION_TYPE_BOTH, 0, 1, { "slow", "fast", NULL } }, @@ -542,6 +542,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) const char *arp_ip_target = NULL; const char *lacp_rate; const char *primary; + NMBondMode bond_mode; g_hash_table_iter_init (&iter, priv->options); while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &value)) { @@ -776,6 +777,23 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return NM_SETTING_VERIFY_NORMALIZABLE; } + /* normalize unsupported options for the current mode */ + bond_mode = _nm_setting_bond_mode_from_string (mode_new); + g_hash_table_iter_init (&iter, priv->options); + while (g_hash_table_iter_next (&iter, (gpointer) &key, NULL)) { + if (nm_streq (key, "mode")) + continue; + if (!_nm_setting_bond_option_supported (key, bond_mode)) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("'%s' option is not valid with mode '%s'"), + key, mode_new); + g_prefix_error (error, "%s.%s: ", NM_SETTING_BOND_SETTING_NAME, NM_SETTING_BOND_OPTIONS); + return NM_SETTING_VERIFY_NORMALIZABLE; + } + } + return TRUE; } diff --git a/libnm-core/nm-setting-vlan.c b/libnm-core/nm-setting-vlan.c index de9c5c48..ab1c5465 100644 --- a/libnm-core/nm-setting-vlan.c +++ b/libnm-core/nm-setting-vlan.c @@ -670,6 +670,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) _("the vlan id must be in range 0-4094 but is %u"), priv->id); g_prefix_error (error, "%s.%s: ", NM_SETTING_VLAN_SETTING_NAME, NM_SETTING_VLAN_ID); + return FALSE; } if (priv->flags & ~NM_VLAN_FLAGS_ALL) { diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c index 7ecd6813..ccde24f8 100644 --- a/libnm-core/tests/test-general.c +++ b/libnm-core/tests/test-general.c @@ -4867,14 +4867,23 @@ enum TEST_IS_POWER_OF_TWP_ENUM_UNSIGNED_64 { typeof (x) x1 = (x); \ type x2 = (type) x1; \ \ - if (((typeof (x1)) x2) == x1 && (x2 > 0 || x2 == 0)) { \ + g_assert_cmpint (expect, ==, nm_utils_is_power_of_two (x1)); \ + if ( ((typeof (x1)) x2) == x1 \ + && ((typeof (x2)) x1) == x2 \ + && x2 > 0) { \ /* x2 equals @x, and is positive. Compare to @expect */ \ g_assert_cmpint (expect, ==, nm_utils_is_power_of_two (x2)); \ - } else if (!(x2 > 0) && !(x2 == 0)) { \ - /* a (signed) negative value is always FALSE. */ \ - g_assert_cmpint (FALSE, ==, nm_utils_is_power_of_two (x2));\ + } else if (!(x2 > 0)) { \ + /* a non positive value is always FALSE. */ \ + g_assert_cmpint (FALSE, ==, nm_utils_is_power_of_two (x2)); \ + } \ + if (x2) { \ + x2 = -x2; \ + if (!(x2 > 0)) { \ + /* for negative values, we return FALSE. */ \ + g_assert_cmpint (FALSE, ==, nm_utils_is_power_of_two (x2)); \ + } \ } \ - g_assert_cmpint (expect, ==, nm_utils_is_power_of_two (x1)); \ } G_STMT_END static void @@ -4917,7 +4926,7 @@ again: gboolean expect = j == 0; guint64 x = expect ? xyes : xno; - if (!expect && xno == 0) + if (expect && xyes == 0) continue; /* check if @x is as @expect, when casted to a certain data type. */ @@ -5248,6 +5257,100 @@ static void test_nm_utils_enum (void) /*****************************************************************************/ +static void +do_test_utils_str_utf8safe (const char *str, const char *expected, NMUtilsStrUtf8SafeFlags flags) +{ + const char *str_safe, *s; + gs_free char *str2 = NULL; + gs_free char *str3 = NULL; + + str_safe = nm_utils_str_utf8safe_escape (str, flags, &str2); + + str3 = nm_utils_str_utf8safe_escape_cp (str, flags); + g_assert_cmpstr (str3, ==, str_safe); + g_assert ((!str && !str3) || (str != str3)); + g_clear_pointer (&str3, g_free); + + if (expected == NULL) { + g_assert (str_safe == str); + g_assert (!str2); + if (str) { + g_assert (!strchr (str, '\\')); + g_assert (g_utf8_validate (str, -1, NULL)); + } + + g_assert (str == nm_utils_str_utf8safe_unescape (str_safe, &str3)); + g_assert (!str3); + + str3 = nm_utils_str_utf8safe_unescape_cp (str_safe); + if (str) { + g_assert (str3 != str); + g_assert_cmpstr (str3, ==, str); + } else + g_assert (!str3); + g_clear_pointer (&str3, g_free); + return; + } + + g_assert (str); + g_assert (str_safe != str); + g_assert (str_safe == str2); + g_assert ( strchr (str, '\\') + || !g_utf8_validate (str, -1, NULL) + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII) + && NM_STRCHAR_ANY (str, ch, (guchar) ch >= 127)) + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL) + && NM_STRCHAR_ANY (str, ch, (guchar) ch < ' '))); + g_assert (g_utf8_validate (str_safe, -1, NULL)); + + str3 = g_strcompress (str_safe); + g_assert_cmpstr (str, ==, str3); + g_clear_pointer (&str3, g_free); + + str3 = nm_utils_str_utf8safe_unescape_cp (str_safe); + g_assert (str3 != str); + g_assert_cmpstr (str3, ==, str); + g_clear_pointer (&str3, g_free); + + s = nm_utils_str_utf8safe_unescape (str_safe, &str3); + g_assert (str3 != str); + g_assert (s == str3); + g_assert_cmpstr (str3, ==, str); + g_clear_pointer (&str3, g_free); + + g_assert_cmpstr (str_safe, ==, expected); +} + +static void +test_utils_str_utf8safe (void) +{ + do_test_utils_str_utf8safe (NULL, NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\314", "\\314", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\314\315x\315\315x", "\\314\\315x\\315\\315x", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\314\315xx", "\\314\\315xx", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\314xx", "\\314xx", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\xa0", "\\240", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\xe2\x91\xa0", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\xe2\xe2\x91\xa0", "\\342\xe2\x91\xa0", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("\xe2\xe2\x91\xa0\xa0", "\\342\xe2\x91\xa0\\240", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("a", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("ab", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("ab\314", "ab\\314", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("ab\314adsf", "ab\\314adsf", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("abadsf", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("abäb", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("x\xa0", "x\\240", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("Ä\304ab\\äb", "Ä\\304ab\\\\äb", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("Äab\\äb", "Äab\\\\äb", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("ÄÄab\\äb", "ÄÄab\\\\äb", NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("㈞abä㈞b", NULL, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE); + do_test_utils_str_utf8safe ("abäb", "ab\\303\\244b", NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII); + do_test_utils_str_utf8safe ("ab\ab", "ab\\007b", NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL); +} + +/*****************************************************************************/ + static int _test_nm_in_set_get (int *call_counter, gboolean allow_called, int value) { @@ -5605,6 +5708,7 @@ int main (int argc, char **argv) nmtst_init (&argc, &argv, TRUE); /* The tests */ + g_test_add_func ("/core/general/test_utils_str_utf8safe", test_utils_str_utf8safe); g_test_add_func ("/core/general/test_nm_in_set", test_nm_in_set); g_test_add_func ("/core/general/test_nm_in_strset", test_nm_in_strset); g_test_add_func ("/core/general/test_setting_vpn_items", test_setting_vpn_items); diff --git a/libnm-core/tests/test-setting-bond.c b/libnm-core/tests/test-setting-bond.c index 91a81997..e6a65bba 100644 --- a/libnm-core/tests/test-setting-bond.c +++ b/libnm-core/tests/test-setting-bond.c @@ -182,6 +182,54 @@ test_compare (void) ((const char *[]){ "num_unsol_na", "4", "num_grat_arp", "4", NULL })); } +static void +test_normalize_options (const char **opts1, const char **opts2) +{ + gs_unref_object NMConnection *con = NULL; + NMSettingBond *s_bond; + GError *error = NULL; + gboolean success; + const char **p; + int num = 0; + + create_bond_connection (&con, &s_bond); + + for (p = opts1; p[0] && p[1]; p += 2) + g_assert (nm_setting_bond_add_option (s_bond, p[0], p[1])); + + nmtst_assert_connection_verifies_and_normalizable (con); + nmtst_connection_normalize (con); + success = nm_setting_verify ((NMSetting *) s_bond, con, &error); + nmtst_assert_success (success, error); + + for (p = opts2; p[0] && p[1]; p += 2) { + g_assert_cmpstr (nm_setting_bond_get_option_by_name (s_bond, p[0]), ==, p[1]); + num++; + } + + g_assert_cmpint (num, ==, nm_setting_bond_get_num_options (s_bond)); +} + +static void +test_normalize (void) +{ + test_normalize_options ( + ((const char *[]){ "mode", "802.3ad", "ad_actor_system", "00:02:03:04:05:06", NULL }), + ((const char *[]){ "mode", "802.3ad", "ad_actor_system", "00:02:03:04:05:06", NULL })); + test_normalize_options ( + ((const char *[]){ "mode", "1", "miimon", "1", NULL }), + ((const char *[]){ "mode", "active-backup", "miimon", "1", NULL })); + test_normalize_options ( + ((const char *[]){ "mode", "balance-alb", "tlb_dynamic_lb", "1", NULL }), + ((const char *[]){ "mode", "balance-alb", NULL })); + test_normalize_options ( + ((const char *[]){ "mode", "balance-tlb", "tlb_dynamic_lb", "1", NULL }), + ((const char *[]){ "mode", "balance-tlb", "tlb_dynamic_lb", "1", NULL })); + test_normalize_options ( + ((const char *[]){ "mode", "balance-rr", "ad_actor_sys_prio", "4", "packets_per_slave", "3", NULL }), + ((const char *[]){ "mode", "balance-rr", "packets_per_slave", "3", NULL })); +} + #define TPATH "/libnm/settings/bond/" NMTST_DEFINE (); @@ -193,6 +241,7 @@ main (int argc, char **argv) g_test_add_func (TPATH "verify", test_verify); g_test_add_func (TPATH "compare", test_compare); + g_test_add_func (TPATH "normalize", test_normalize); return g_test_run (); } diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 47f1548e..2a91c2ff 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -91,6 +91,13 @@ G_DEFINE_TYPE_WITH_CODE (NMClient, nm_client, G_TYPE_OBJECT, #define NM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_CLIENT, NMClientPrivate)) +typedef struct { + NMClient *client; + GCancellable *cancellable; + GSimpleAsyncResult *result; + int pending_init; +} NMClientInitData; + typedef struct { NMManager *manager; NMRemoteSettings *settings; @@ -2267,13 +2274,23 @@ objects_created (NMClient *client, GDBusObjectManager *object_manager, GError ** static void name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data); +static gboolean +_om_has_name_owner (GDBusObjectManager *object_manager) +{ + gs_free char *name_owner = NULL; + + nm_assert (G_IS_DBUS_OBJECT_MANAGER_CLIENT (object_manager)); + + name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (object_manager)); + return !!name_owner; +} + 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; - gchar *name_owner; 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, @@ -2285,9 +2302,7 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) if (!priv->object_manager) return FALSE; - name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager)); - if (name_owner) { - g_free (name_owner); + if (_om_has_name_owner (priv->object_manager)) { if (!objects_created (client, priv->object_manager, error)) return FALSE; @@ -2316,16 +2331,11 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error) /* Asynchronous initialization. */ -typedef struct { - NMClient *client; - GCancellable *cancellable; - GSimpleAsyncResult *result; - int pending_init; -} NMClientInitData; - static void init_async_complete (NMClientInitData *init_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); @@ -2338,14 +2348,13 @@ async_inited_obj_nm (GObject *object, GAsyncResult *result, gpointer user_data) NMClientInitData *init_data = user_data; GError *error = NULL; + nm_assert (init_data && init_data->pending_init > 0); + if (!g_async_initable_init_finish (G_ASYNC_INITABLE (object), result, &error)) g_simple_async_result_take_error (init_data->result, error); - if (init_data) { - init_data->pending_init--; - if (init_data->pending_init == 0) - init_async_complete (init_data); - } + init_data->pending_init--; + init_async_complete (init_data); } static void @@ -2405,10 +2414,11 @@ unhook_om (NMClient *self) static void new_object_manager (GObject *source_object, GAsyncResult *res, gpointer user_data) { - NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (source_object); + NMClient *self = NM_CLIENT (user_data); + NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self); - g_object_notify (G_OBJECT (user_data), NM_CLIENT_NM_RUNNING); g_clear_object (&priv->new_object_manager_cancellable); + g_object_notify (G_OBJECT (user_data), NM_CLIENT_NM_RUNNING); } static void @@ -2418,16 +2428,13 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data) NMClient *client; NMClientPrivate *priv; GList *objects, *iter; - gchar *name_owner; GError *error = NULL; GDBusObjectManager *object_manager; object_manager = g_dbus_object_manager_client_new_for_bus_finish (result, &error); if (object_manager == NULL) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - } + g_simple_async_result_take_error (init_data->result, error); + init_async_complete (init_data); return; } @@ -2435,9 +2442,7 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data) priv = NM_CLIENT_GET_PRIVATE (client); priv->object_manager = object_manager; - name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager)); - if (name_owner) { - g_free (name_owner); + 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); @@ -2458,9 +2463,9 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data) async_inited_obj_nm, init_data); } g_list_free_full (objects, g_object_unref); + } - } else - init_async_complete (init_data); + init_async_complete (init_data); g_signal_connect (priv->object_manager, "notify::name-owner", G_CALLBACK (name_owner_changed), client); @@ -2497,17 +2502,15 @@ 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); - gchar *name_owner; - - name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (object)); - if (name_owner) { - g_free (name_owner); - g_object_unref (object_manager); - if (priv->new_object_manager_cancellable) - g_cancellable_cancel (priv->new_object_manager_cancellable); + + nm_assert (object_manager == priv->object_manager); + + if (_om_has_name_owner (object_manager)) { + 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, user_data); + new_object_manager, self); } else { g_signal_handlers_disconnect_by_func (object_manager, object_added, self); unhook_om (self); diff --git a/libnm/nm-device.c b/libnm/nm-device.c index 9cbdbd00..969d08a6 100644 --- a/libnm/nm-device.c +++ b/libnm/nm-device.c @@ -26,6 +26,7 @@ #include #include +#include "nm-libnm-utils.h" #include "nm-dbus-interface.h" #include "nm-active-connection.h" #include "nm-device-bt.h" @@ -81,7 +82,7 @@ typedef struct { GPtrArray *available_connections; struct udev *udev; - char *product, *short_product; + char *product; char *vendor, *short_vendor; char *description, *bus_name; @@ -320,7 +321,6 @@ finalize (GObject *object) g_free (priv->driver_version); g_free (priv->firmware_version); g_free (priv->product); - g_free (priv->short_product); g_free (priv->vendor); g_free (priv->short_vendor); g_free (priv->description); @@ -1357,6 +1357,17 @@ _get_udev_property (NMDevice *device, return db_value; } +static char * +_get_udev_property_utf8safe (NMDevice *device, + const char *enc_prop, /* ID_XXX_ENC */ + const char *db_prop) /* ID_XXX_FROM_DATABASE */ +{ + return nm_utils_str_utf8safe_escape_take (_get_udev_property (device, + enc_prop, + db_prop), + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL); +} + /** * nm_device_get_product: * @device: a #NMDevice @@ -1365,6 +1376,9 @@ _get_udev_property (NMDevice *device, * * Returns: the product name of the device. This is the internal string used by the * device, and must not be modified. + * + * The string is backslash escaped (C escaping) for invalid characters. The escaping + * can be reverted with g_strcompress(), however the result may not be valid UTF-8. **/ const char * nm_device_get_product (NMDevice *device) @@ -1374,15 +1388,16 @@ nm_device_get_product (NMDevice *device) g_return_val_if_fail (NM_IS_DEVICE (device), NULL); priv = NM_DEVICE_GET_PRIVATE (device); - if (!priv->product) - priv->product = _get_udev_property (device, "ID_MODEL_ENC", "ID_MODEL_FROM_DATABASE"); + if (!priv->product) { + priv->product = _get_udev_property_utf8safe (device, "ID_MODEL_ENC", "ID_MODEL_FROM_DATABASE"); - /* Sometimes ID_PRODUCT_FROM_DATABASE is used? */ - if (!priv->product) - priv->product = _get_udev_property (device, "ID_MODEL_ENC", "ID_PRODUCT_FROM_DATABASE"); + /* Sometimes ID_PRODUCT_FROM_DATABASE is used? */ + if (!priv->product) + priv->product = _get_udev_property_utf8safe (device, "ID_MODEL_ENC", "ID_PRODUCT_FROM_DATABASE"); - if (!priv->product) - priv->product = g_strdup (""); + if (!priv->product) + priv->product = g_strdup (""); + } return priv->product; } @@ -1395,6 +1410,9 @@ nm_device_get_product (NMDevice *device) * * Returns: the vendor name of the device. This is the internal string used by the * device, and must not be modified. + * + * The string is backslash escaped (C escaping) for invalid characters. The escaping + * can be reverted with g_strcompress(), however the result may not be valid UTF-8. **/ const char * nm_device_get_vendor (NMDevice *device) @@ -1406,7 +1424,7 @@ nm_device_get_vendor (NMDevice *device) priv = NM_DEVICE_GET_PRIVATE (device); if (!priv->vendor) - priv->vendor = _get_udev_property (device, "ID_VENDOR_ENC", "ID_VENDOR_FROM_DATABASE"); + priv->vendor = _get_udev_property_utf8safe (device, "ID_VENDOR_ENC", "ID_VENDOR_FROM_DATABASE"); if (!priv->vendor) priv->vendor = g_strdup (""); @@ -1414,128 +1432,14 @@ nm_device_get_vendor (NMDevice *device) return priv->vendor; } -static const char * const ignored_words[] = { - "Semiconductor", - "Components", - "Corporation", - "Communications", - "Company", - "Corp.", - "Corp", - "Co.", - "Inc.", - "Inc", - "Incorporated", - "Ltd.", - "Limited.", - "Intel?", - "chipset", - "adapter", - "[hex]", - "NDIS", - "Module", - NULL -}; - -static const char * const ignored_phrases[] = { - "Multiprotocol MAC/baseband processor", - "Wireless LAN Controller", - "Wireless LAN Adapter", - "Wireless Adapter", - "Network Connection", - "Wireless Cardbus Adapter", - "Wireless CardBus Adapter", - "54 Mbps Wireless PC Card", - "Wireless PC Card", - "Wireless PC", - "PC Card with XJACK(r) Antenna", - "Wireless cardbus", - "Wireless LAN PC Card", - "Technology Group Ltd.", - "Communication S.p.A.", - "Business Mobile Networks BV", - "Mobile Broadband Minicard Composite Device", - "Mobile Communications AB", - "(PC-Suite Mode)", - NULL -}; - -static char * -fixup_desc_string (const char *desc) -{ - char *p, *temp; - char **words, **item; - GString *str; - int i; - - if (!desc) - return NULL; - - p = temp = g_strdup (desc); - while (*p) { - if (*p == '_' || *p == ',') - *p = ' '; - p++; - } - - /* Attempt to shorten ID by ignoring certain phrases */ - for (i = 0; ignored_phrases[i]; i++) { - p = strstr (temp, ignored_phrases[i]); - if (p) { - guint32 ignored_len = strlen (ignored_phrases[i]); - - memmove (p, p + ignored_len, strlen (p + ignored_len) + 1); /* +1 for the \0 */ - } - } - - /* Attempt to shorten ID by ignoring certain individual words */ - words = g_strsplit (temp, " ", 0); - str = g_string_new_len (NULL, strlen (temp)); - g_free (temp); - - for (item = words; *item; item++) { - gboolean ignore = FALSE; - - if (**item == '\0') - continue; - - for (i = 0; ignored_words[i]; i++) { - if (!strcmp (*item, ignored_words[i])) { - ignore = TRUE; - break; - } - } - - if (!ignore) { - if (str->len) - g_string_append_c (str, ' '); - g_string_append (str, *item); - } - } - g_strfreev (words); - - temp = str->str; - g_string_free (str, FALSE); - - return temp; -} - static void -get_description (NMDevice *device) +ensure_description (NMDevice *device) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device); - const char *dev_product; - const char *dev_vendor; - char *pdown; - char *vdown; - GString *str; GParamSpec *name_prop; + gs_free char *short_product = NULL; - dev_product = nm_device_get_product (device); - priv->short_product = fixup_desc_string (dev_product); - - dev_vendor = nm_device_get_vendor (device); - priv->short_vendor = fixup_desc_string (dev_vendor); + priv->short_vendor = nm_str_realloc (nm_utils_fixup_desc_string (nm_device_get_vendor (device))); /* Grab device's preferred name, if any */ name_prop = g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (device)), "name"); @@ -1546,28 +1450,24 @@ get_description (NMDevice *device) g_clear_pointer (&priv->description, g_free); } - if (!dev_product || !dev_vendor) { - priv->description = g_strdup (nm_device_get_iface (device)); + if ( !priv->short_vendor + || !(short_product = nm_utils_fixup_desc_string (nm_device_get_product (device)))) { + priv->description = g_strdup (nm_device_get_iface (device) ?: ""); return; } - str = g_string_new_len (NULL, strlen (priv->short_vendor) + strlen (priv->short_product) + 1); - /* Another quick hack; if all of the fixed up vendor string * is found in product, ignore the vendor. */ - pdown = g_ascii_strdown (priv->short_product, -1); - vdown = g_ascii_strdown (priv->short_vendor, -1); - if (!strstr (pdown, vdown)) { - g_string_append (str, priv->short_vendor); - g_string_append_c (str, ' '); + { + gs_free char *pdown = g_ascii_strdown (short_product, -1); + gs_free char *vdown = g_ascii_strdown (priv->short_vendor, -1); + + if (!strstr (pdown, vdown)) + priv->description = g_strconcat (priv->short_vendor, " ", short_product, NULL); + else + priv->description = g_steal_pointer (&short_product); } - g_free (pdown); - g_free (vdown); - - g_string_append (str, priv->short_product); - - priv->description = g_string_free (str, FALSE); } static const char * @@ -1580,7 +1480,7 @@ get_short_vendor (NMDevice *device) priv = NM_DEVICE_GET_PRIVATE (device); if (!priv->description) - get_description (device); + ensure_description (device); return priv->short_vendor; } @@ -1604,7 +1504,7 @@ nm_device_get_description (NMDevice *device) priv = NM_DEVICE_GET_PRIVATE (device); if (!priv->description) - get_description (device); + ensure_description (device); return priv->description; } diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c new file mode 100644 index 00000000..fbbfe2c5 --- /dev/null +++ b/libnm/nm-libnm-utils.c @@ -0,0 +1,162 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * 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 - 2017 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "nm-libnm-utils.h" + +/*****************************************************************************/ + +char * +nm_utils_fixup_desc_string (const char *desc) +{ + static const char *const IGNORED_PHRASES[] = { + "Multiprotocol MAC/baseband processor", + "Wireless LAN Controller", + "Wireless LAN Adapter", + "Wireless Adapter", + "Network Connection", + "Wireless Cardbus Adapter", + "Wireless CardBus Adapter", + "54 Mbps Wireless PC Card", + "Wireless PC Card", + "Wireless PC", + "PC Card with XJACK(r) Antenna", + "Wireless cardbus", + "Wireless LAN PC Card", + "Technology Group Ltd.", + "Communication S.p.A.", + "Business Mobile Networks BV", + "Mobile Broadband Minicard Composite Device", + "Mobile Communications AB", + "(PC-Suite Mode)", + }; + static const char *const IGNORED_WORDS[] = { + "Semiconductor", + "Components", + "Corporation", + "Communications", + "Company", + "Corp.", + "Corp", + "Co.", + "Inc.", + "Inc", + "Incorporated", + "Ltd.", + "Limited.", + "Intel?", + "chipset", + "adapter", + "[hex]", + "NDIS", + "Module", + }; + char *desc_full; + char *p, *q; + int i; + + if (!desc || !desc[0]) + return NULL; + + /* restore original non-UTF-8-safe text. */ + desc_full = nm_utils_str_utf8safe_unescape_cp (desc); + + /* replace all invalid UTF-8 bytes with space. */ + p = desc_full; + while (!g_utf8_validate (p, -1, (const char **) &q)) { + /* the byte is invalid UTF-8. Replace it with space and proceed. */ + *q = ' '; + p = q + 1; + } + + /* replace '_', ',', and ASCII controll characters with space. */ + for (p = desc_full; p[0]; p++) { + if ( NM_IN_SET (*p, '_', ',') + || *p < ' ') + *p = ' '; + } + + /* Attempt to shorten ID by ignoring certain phrases */ + for (i = 0; i < G_N_ELEMENTS (IGNORED_PHRASES); i++) { + p = strstr (desc_full, IGNORED_PHRASES[i]); + if (p) { + const char *eow = &p[strlen (IGNORED_PHRASES[i])]; + + /* require that the phrase is delimited by space, or + * at the beginning or end of the description. */ + if ( (p == desc_full || p[-1] == ' ') + && NM_IN_SET (eow[0], '\0', ' ')) + memmove (p, eow, strlen (eow) + 1); /* +1 for the \0 */ + } + } + + /* Attempt to shorten ID by ignoring certain individual words. + * - word-split the description at spaces + * - coalesce multiple spaces + * - skip over IGNORED_WORDS */ + p = desc_full; + q = desc_full; + for (;;) { + char *eow; + gsize l; + + /* skip leading spaces. */ + while (p[0] == ' ') + p++; + + if (!p[0]) + break; + + /* split leading word on first space */ + eow = strchr (p, ' '); + if (eow) + *eow = '\0'; + + if (nm_utils_strv_find_first ((char **) IGNORED_WORDS, + G_N_ELEMENTS (IGNORED_WORDS), + p) >= 0) + goto next; + + l = strlen (p); + if (q != p) { + if (q != desc_full) + *q++ = ' '; + memmove (q, p, l); + } + q += l; + +next: + if (!eow) + break; + p = eow + 1; + } + + *q++ = '\0'; + + if (!desc_full[0]) { + g_free (desc_full); + return NULL; + } + + nm_assert (g_utf8_validate (desc_full, -1, NULL)); + return desc_full; +} diff --git a/libnm/nm-libnm-utils.h b/libnm/nm-libnm-utils.h new file mode 100644 index 00000000..4a5a361c --- /dev/null +++ b/libnm/nm-libnm-utils.h @@ -0,0 +1,26 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * 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. + */ + +#ifndef __NM_LIBNM_UTILS_H__ +#define __NM_LIBNM_UTILS_H__ + +char *nm_utils_fixup_desc_string (const char *desc); + +#endif /* __NM_LIBNM_UTILS_H__ */ diff --git a/libnm/nm-object.c b/libnm/nm-object.c index 95346e06..6bf1d063 100644 --- a/libnm/nm-object.c +++ b/libnm/nm-object.c @@ -1233,12 +1233,6 @@ get_property (GObject *object, guint prop_id, case PROP_DBUS_CONNECTION: g_value_set_object (value, g_dbus_object_manager_client_get_connection (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager))); break; - case PROP_DBUS_OBJECT: - g_value_set_object (value, priv->object); - break; - case PROP_DBUS_OBJECT_MANAGER: - g_value_set_object (value, priv->object_manager); - break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1335,7 +1329,7 @@ nm_object_class_init (NMObjectClass *nm_object_class) (object_class, PROP_DBUS_OBJECT, g_param_spec_object (NM_OBJECT_DBUS_OBJECT, "", "", G_TYPE_DBUS_OBJECT, - G_PARAM_READWRITE | + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); @@ -1348,7 +1342,7 @@ nm_object_class_init (NMObjectClass *nm_object_class) (object_class, PROP_DBUS_OBJECT_MANAGER, g_param_spec_object (NM_OBJECT_DBUS_OBJECT_MANAGER, "", "", G_TYPE_DBUS_OBJECT_MANAGER, - G_PARAM_READWRITE | + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); } diff --git a/libnm/nm-property-docs.xml b/libnm/nm-property-docs.xml index 7754187d..bdcfa6e7 100644 --- a/libnm/nm-property-docs.xml +++ b/libnm/nm-property-docs.xml @@ -25,7 +25,7 @@ - + diff --git a/libnm/nm-settings-docs.xml b/libnm/nm-settings-docs.xml index d114a0ee..b5291405 100644 --- a/libnm/nm-settings-docs.xml +++ b/libnm/nm-settings-docs.xml @@ -25,7 +25,7 @@ - + diff --git a/libnm/tests/test-general.c b/libnm/tests/test-general.c new file mode 100644 index 00000000..7e0b7bb7 --- /dev/null +++ b/libnm/tests/test-general.c @@ -0,0 +1,69 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * + * 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. + */ + +#include "nm-default.h" + +#include "nm-libnm-utils.h" + +#include "nm-utils/nm-test-utils.h" + +/*****************************************************************************/ + +static void +do_test_fixup_desc_string (const char *desc, const char *expected) +{ + gs_free char *result = NULL; + + result = nm_utils_fixup_desc_string (desc); + g_assert_cmpstr (result, ==, expected); +} + +#define do_test_fixup_desc_string_same(desc) (do_test_fixup_desc_string (""desc"", ""desc"")) + +static void +test_fixup_desc_string (void) +{ + do_test_fixup_desc_string (NULL, NULL); + do_test_fixup_desc_string ("", NULL); + do_test_fixup_desc_string_same ("a"); + do_test_fixup_desc_string_same ("a b"); + do_test_fixup_desc_string ("a b ", "a b"); + do_test_fixup_desc_string (" a bbc ", "a bbc"); + do_test_fixup_desc_string (" a \xcc bbc ", "a bbc"); + do_test_fixup_desc_string (" a\xcc bbc ", "a bbc"); + do_test_fixup_desc_string (" a\xcc""bbc Wireless PC", "a bbc"); + do_test_fixup_desc_string (" a\xcc""bbc Wireless PC ", "a bbc"); + do_test_fixup_desc_string (" a\xcc""bbcWireless PC ", "a bbcWireless PC"); + do_test_fixup_desc_string (" a\xcc""bbc Wireless PCx", "a bbc Wireless PCx"); + do_test_fixup_desc_string (" a\xcc""bbc Inc Wireless PC ", "a bbc"); +} + +/*****************************************************************************/ + +NMTST_DEFINE (); + +int main (int argc, char **argv) +{ + nmtst_init (&argc, &argv, TRUE); + + g_test_add_func ("/libnm/general/fixup_desc_string", test_fixup_desc_string); + + return g_test_run (); +} diff --git a/m4/compiler_options.m4 b/m4/compiler_options.m4 index 23929af8..ccb51f5e 100644 --- a/m4/compiler_options.m4 +++ b/m4/compiler_options.m4 @@ -70,11 +70,13 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then -Wimplicit-fallthrough \ -Wimplicit-function-declaration \ -Winit-self \ + -Wlogical-op \ -Wmissing-declarations \ -Wmissing-include-dirs \ -Wmissing-prototypes \ -Wpointer-arith \ -Wshadow \ + -Wshift-negative-value \ -Wstrict-prototypes \ -Wundef \ -Wno-duplicate-decl-specifier \ diff --git a/man/NetworkManager.8 b/man/NetworkManager.8 index 029dadce..1b8b9f4c 100644 --- a/man/NetworkManager.8 +++ b/man/NetworkManager.8 @@ -1,13 +1,13 @@ '\" t .\" Title: NetworkManager .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Network management daemons -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.8\&.0" "Network management daemons" +.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.8\&.2" "Network management daemons" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5 index 339a106d..53ad01bc 100644 --- a/man/NetworkManager.conf.5 +++ b/man/NetworkManager.conf.5 @@ -1,13 +1,13 @@ '\" t .\" Title: NetworkManager.conf .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Configuration -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.8\&.0" "Configuration" +.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.8\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -295,6 +295,15 @@ The number of times a connection activation should be automatically tried before connection\&.autoconnect\-retries property set to \-1\&. If not specified, connections will be retried 4 times\&. .RE +.PP +\fIslaves\-order\fR +.RS 4 +This key specifies in which order slave connections are auto\-activated on boot or when the master activates them\&. Allowed values are +name +(order connection by interface name, the default), or +index +(order slaves by their kernel index)\&. +.RE .SH "KEYFILE SECTION" .PP This section contains keyfile\-plugin\-specific options, and is normally only used when you are not using any other distro\-specific plugin\&. @@ -593,7 +602,7 @@ If left unspecified, it defaults to "preserve"\&. .PP \fIethernet\&.mtu\fR .RS 4 -If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints\&. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or a default of 1500\&. +If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints\&. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is not reconfigured during activation\&. .RE .PP \fIethernet\&.wake\-on\-lan\fR diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml index 658fd7c2..9e0ad9ba 100644 --- a/man/NetworkManager.conf.xml +++ b/man/NetworkManager.conf.xml @@ -409,6 +409,19 @@ no-auto-default=* + + slaves-order + + + This key specifies in which order slave connections are + auto-activated on boot or when the master activates + them. Allowed values are name (order + connection by interface name, the default), or + index (order slaves by their kernel + index). + + + @@ -642,7 +655,7 @@ ipv6.ip6-privacy=0 ethernet.mtu - If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or a default of 1500. + If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is not reconfigured during activation. ethernet.wake-on-lan diff --git a/man/nm-online.1 b/man/nm-online.1 index 6de8ea32..10f4ca8e 100644 --- a/man/nm-online.1 +++ b/man/nm-online.1 @@ -1,13 +1,13 @@ '\" t .\" Title: nm-online .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.8\&.0" "General Commands Manual" +.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.8\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5 index 69879b38..865b4306 100644 --- a/man/nm-settings-ifcfg-rh.5 +++ b/man/nm-settings-ifcfg-rh.5 @@ -1,13 +1,13 @@ '\" t .\" Title: nm-settings-ifcfg-rh .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Configuration -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.8\&.0" "Configuration" +.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.8\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml index a476608f..c45af65a 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.8.0nm-settings-ifcfg-rhDescription of ifcfg-rh settings pluginDescription +nm-settings-ifcfg-rhNetworkManager developersnm-settings-ifcfg-rh5NetworkManagerConfiguration1.8.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 b729b6c2..69029a61 100644 --- a/man/nm-settings-keyfile.5 +++ b/man/nm-settings-keyfile.5 @@ -1,13 +1,13 @@ '\" t .\" Title: nm-settings-keyfile .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Configuration -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.8\&.0" "Configuration" +.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.8\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml index 05cb94fd..b520067e 100644 --- a/man/nm-settings-keyfile.xml +++ b/man/nm-settings-keyfile.xml @@ -1,6 +1,6 @@ -nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.8.0nm-settings-keyfileDescription of keyfile settings pluginDescription +nm-settings-keyfileNetworkManager developersnm-settings-keyfile5NetworkManagerConfiguration1.8.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 543179c1..a361e8e7 100644 --- a/man/nm-settings.5 +++ b/man/nm-settings.5 @@ -1,13 +1,13 @@ '\" t .\" Title: nm-settings .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Configuration -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.8\&.0" "Configuration" +.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.8\&.2" "Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -278,7 +278,7 @@ T} .sp 1 .SS "802\-1x setting" .PP -AIEEE 802\&.1x Authentication Settings\&. +IEEE 802\&.1x Authentication Settings\&. .TS allbox tab(:); lB lB lB lB. diff --git a/man/nm-settings.xml b/man/nm-settings.xml index 1ceee6f4..0f8109ea 100644 --- a/man/nm-settings.xml +++ b/man/nm-settings.xml @@ -1,6 +1,6 @@ -nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.8.0nm-settingsDescription of settings and properties of NetworkManager connection profilesDescription +nm-settingsNetworkManager developersnm-settings5NetworkManagerConfiguration1.8.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 @@ -55,7 +55,7 @@ uuidstringA universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-"). zonestringThe trust level of a the connection. Free form case-insensitive string (for example "Home", "Work", "Public"). NULL or unspecified zone means the connection will be placed in the default zone as defined by the firewall. When updating this property on a currently activated connection, the change takes effect immediately. - 802-1x settingAIEEE 802.1x Authentication Settings.Key NameValue TypeDefault ValueValue Description + 802-1x settingIEEE 802.1x Authentication Settings.Key NameValue TypeDefault ValueValue Description altsubject-matchesarray of string[]List of strings to be matched against the altSubjectName of the certificate presented by the authentication server. If the list is empty, no verification of the server certificate's altSubjectName is performed. anonymous-identitystringAnonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS. auth-timeoutint320A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds. diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7 index 3291c072..5fecaa28 100644 --- a/man/nmcli-examples.7 +++ b/man/nmcli-examples.7 @@ -1,13 +1,13 @@ '\" t .\" Title: nmcli-examples .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: Examples -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.8\&.0" "Examples" +.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.8\&.2" "Examples" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmcli.1 b/man/nmcli.1 index 349c3331..3a217bd9 100644 --- a/man/nmcli.1 +++ b/man/nmcli.1 @@ -1,13 +1,13 @@ '\" t .\" Title: nmcli .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NMCLI" "1" "" "NetworkManager 1\&.8\&.0" "General Commands Manual" +.TH "NMCLI" "1" "" "NetworkManager 1\&.8\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/nmtui.1 b/man/nmtui.1 index 95ab4506..5b793c5d 100644 --- a/man/nmtui.1 +++ b/man/nmtui.1 @@ -1,13 +1,13 @@ '\" t .\" Title: nmtui .\" Author: -.\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 05/10/2017 +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 07/07/2017 .\" Manual: General Commands Manual -.\" Source: NetworkManager 1.8.0 +.\" Source: NetworkManager 1.8.2 .\" Language: English .\" -.TH "NMTUI" "1" "" "NetworkManager 1\&.8\&.0" "General Commands Manual" +.TH "NMTUI" "1" "" "NetworkManager 1\&.8\&.2" "General Commands Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/po/ja.po b/po/ja.po index 022bfef8..620dfb61 100644 --- a/po/ja.po +++ b/po/ja.po @@ -5,9 +5,8 @@ # Satoru SATOH , 2005-2007. # Kiyoto Hashida , 2010. # Noriko Mizumoto , 2013 - 2014. -# Lubomir Rintel , 2016. #zanata -# Lubomir Rintel , 2017. #zanata -# Thomas Haller , 2017. #zanata +# kmoriguc , 2017. #zanata +# lrintel , 2017. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -21,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Zanata 3.9.6\n" +"X-Generator: Zanata 4.1.1\n" #: ../clients/cli/agent.c:39 #, c-format @@ -31,7 +30,7 @@ msgid "" "COMMAND := { secret | polkit | all }\n" "\n" msgstr "" -"Usage: nmcli agent { COMMAND | help }\n" +"使い方: nmcli agent { COMMAND | help }\n" "\n" "COMMAND := { secret | polkit | all }\n" "\n" @@ -164,26 +163,27 @@ msgid "invalid IP address: %s" msgstr "無効な IP アドレス: %s" #: ../clients/cli/common.c:426 -#, fuzzy msgid "" "The valid syntax is: 'ip[/prefix] [next-hop] [metric] [attribute=val]... [," "ip[/prefix] ...]'" -msgstr "'%s' は無効です (書式: ip[/prefix] [next-hop] [metric])" +msgstr "" +"有効な構文は以下のようになります: 'ip[/prefix] [next-hop] [metric] " +"[attribute=val]... [,ip[/prefix] ...]'" #: ../clients/cli/common.c:458 #, c-format msgid "the next hop ('%s') must be first" -msgstr "" +msgstr "次のホップ ('%s') が初回である必要があります" #: ../clients/cli/common.c:464 #, c-format msgid "the metric ('%s') must be before attributes" -msgstr "" +msgstr "メトリック ('%s') が属性の前にある必要があります" #: ../clients/cli/common.c:504 -#, fuzzy, c-format +#, c-format msgid "invalid route: %s. " -msgstr "無効なルート: %s" +msgstr "無効なルート: %s。" #: ../clients/cli/common.c:516 msgid "default route cannot be added (NetworkManager handles it by itself)" @@ -571,42 +571,42 @@ msgstr "'%s' は有効な優先度ではありません (<0-%ld>)" #: ../clients/cli/common.c:911 #, c-format msgid "cannot read team config from file '%s'" -msgstr "" +msgstr "ファイル '%s' から team 設定を読み込めません" #: ../clients/cli/common.c:918 #, c-format msgid "team config file '%s' contains non-valid utf-8" -msgstr "" +msgstr "team 設定ファイル '%s' には無効な utf-8 が含まれています" #: ../clients/cli/common.c:930 -#, fuzzy, c-format +#, c-format msgid "'%s' does not contain a valid team configuration" -msgstr "'%s' は有効な team 設定でもファイル名でもありません" +msgstr "'%s' には有効な team 設定が含まれていません" #: ../clients/cli/common.c:933 #, c-format msgid "team configuration must be a JSON object" -msgstr "" +msgstr "team 設定は JSON オブジェクトである必要があります" #: ../clients/cli/common.c:986 #, c-format msgid "cannot read pac-script from file '%s'" -msgstr "" +msgstr "ファイル '%s' から pac-script を読み込めません" #: ../clients/cli/common.c:993 -#, fuzzy, c-format +#, c-format msgid "file '%s' contains non-valid utf-8" -msgstr "インデックス '%s' は無効です" +msgstr "ファイル '%s' には無効な utf-8 が含まれています" #: ../clients/cli/common.c:1006 -#, fuzzy, c-format +#, c-format msgid "'%s' does not contain a valid PAC Script" -msgstr "'%s' は有効な PSK ではありません" +msgstr "'%s' には有効な PAC スクリプトが含まれていません" #: ../clients/cli/common.c:1009 -#, fuzzy, c-format +#, c-format msgid "Not a valid PAC Script" -msgstr "は有効な MAC アドレスではありません" +msgstr "有効な PAC スクリプトではありません" #: ../clients/cli/common.c:1132 #, c-format @@ -644,16 +644,15 @@ msgstr "エラー: NetworkManager が起動していません。" #: ../clients/cli/common.c:1768 #, c-format msgid "Error: argument '%s' not understood. Try passing --help instead." -msgstr "" +msgstr "エラー: 引数 '%s' が認識されません。代わりに --help を渡してください。" #: ../clients/cli/common.c:1778 -#, fuzzy msgid "Error: missing argument. Try passing --help." -msgstr "エラー: %s オプション用の引数がありません。" +msgstr "エラー: 引数がありません。--help を渡してください。" #: ../clients/cli/common.c:1831 msgid "access denied" -msgstr "" +msgstr "アクセスは拒否されました" #. define some prompts for connection editor #: ../clients/cli/connections.c:62 @@ -670,48 +669,40 @@ msgstr "接続タイプを入力してください: " #. define some other prompts #: ../clients/cli/connections.c:67 -#, fuzzy msgid "Connection type" -msgstr "接続タイプ: " +msgstr "接続タイプ" #: ../clients/cli/connections.c:68 -#, fuzzy msgid "Interface name [*]" -msgstr "インターフェース名 [*]: " +msgstr "インターフェース名 [*]" #: ../clients/cli/connections.c:69 -#, fuzzy msgid "VPN type" -msgstr "VPN タイプ: " +msgstr "VPN タイプ" #: ../clients/cli/connections.c:70 -#, fuzzy msgid "Master" -msgstr "マスター: " +msgstr "マスター" #: ../clients/cli/connections.c:72 ../clients/tui/nmt-page-infiniband.c:88 msgid "Transport mode" msgstr "トランスポートモード" #: ../clients/cli/connections.c:77 -#, fuzzy msgid "Bluetooth type" -msgstr "Bluetooth タイプ %s" +msgstr "Bluetooth タイプ" #: ../clients/cli/connections.c:83 -#, fuzzy msgid "Bonding mode" -msgstr "ボンディングモニタリングモード %s" +msgstr "ボンディングモード" #: ../clients/cli/connections.c:85 ../clients/cli/connections.c:4320 -#, fuzzy msgid "Bonding monitoring mode" -msgstr "ボンディングモニタリングモード %s" +msgstr "ボンディングモニタリングモード" #: ../clients/cli/connections.c:90 -#, fuzzy msgid "Protocol" -msgstr "プロトコル %s" +msgstr "プロトコル" #: ../clients/cli/connections.c:93 msgid "Wi-Fi mode" @@ -722,48 +713,40 @@ msgid "ADSL encapsulation" msgstr "ADSL カプセル化" #: ../clients/cli/connections.c:102 -#, fuzzy msgid "Tun mode" -msgstr "トンネルモード: " +msgstr "トンネルモード" #: ../clients/cli/connections.c:107 -#, fuzzy msgid "IP Tunnel mode" -msgstr "トンネルモード: " +msgstr "IP トンネルモード" #: ../clients/cli/connections.c:109 -#, fuzzy msgid "MACVLAN mode" -msgstr "MACVLAN モード: " +msgstr "MACVLAN モード" #: ../clients/cli/connections.c:111 -#, fuzzy msgid "MACsec mode" -msgstr "MACVLAN モード: " +msgstr "MACsec モード" #: ../clients/cli/connections.c:116 msgid "Proxy method" -msgstr "" +msgstr "プロキシメソッド" #: ../clients/cli/connections.c:121 -#, fuzzy msgid "Connection (name, UUID, or path)" -msgstr "接続 (名前、UUID またはパス): " +msgstr "接続 (名前、UUID またはパス)" #: ../clients/cli/connections.c:122 -#, fuzzy msgid "VPN connection (name, UUID, or path)" -msgstr "VPN 接続 (名前、UUID またはパス): " +msgstr "VPN 接続 (名前、UUID またはパス)" #: ../clients/cli/connections.c:123 -#, fuzzy msgid "Connection(s) (name, UUID, or path)" -msgstr "接続 (名前、UUID またはパス): " +msgstr "接続 (名前、UUID またはパス)" #: ../clients/cli/connections.c:124 -#, fuzzy msgid "Connection(s) (name, UUID, path or apath)" -msgstr "接続 (名前、UUID またはパス): " +msgstr "接続 (名前、UUID、パス または apath)" #. 0 #: ../clients/cli/connections.c:130 ../clients/cli/connections.c:225 @@ -867,7 +850,6 @@ msgstr "ACTIVE-PATH" #. 12 #: ../clients/cli/connections.c:143 -#, fuzzy msgid "SLAVE" msgstr "スレーブ" @@ -966,7 +948,7 @@ msgid "DHCP6" msgstr "DHCP6" #: ../clients/cli/connections.c:301 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli connection { COMMAND | help }\n" "\n" @@ -1005,10 +987,10 @@ msgid "" " export [id | uuid | path] []\n" "\n" msgstr "" -"Usage: nmcli connection { COMMAND | help }\n" +"使い方: nmcli connection { COMMAND | help }\n" "\n" -"COMMAND := { show | up | down | add | modify | edit | delete | monitor | " -"reload | load }\n" +"COMMAND := { show | up | down | add | modify | clone | edit | delete | " +"monitor | reload | load | import | export }\n" "\n" " show [--active] [--order ]\n" " show [--active] [id | uuid | path | apath] ...\n" @@ -1308,6 +1290,153 @@ msgid "" " [ip6 ] [gw6 ]\n" "\n" msgstr "" +"使い方: nmcli connection add { ARGUMENTS | help }\n" +"\n" +"ARGUMENTS := COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS " +"[-- ([+|-]. )+]\n" +"\n" +" COMMON_OPTIONS:\n" +" type \n" +" ifname | \"*\"\n" +" [con-name ]\n" +" [autoconnect yes|no]\n" +" [save yes|no]\n" +" [master ]\n" +" [slave-type ]\n" +"\n" +" TYPE_SPECIFIC_OPTIONS:\n" +" ethernet: [mac ]\n" +" [cloned-mac ]\n" +" [mtu ]\n" +"\n" +" wifi: ssid \n" +" [mac ]\n" +" [cloned-mac ]\n" +" [mtu ]\n" +" [mode infrastructure|ap|adhoc]\n" +"\n" +" wimax: [mac ]\n" +" [nsp ]\n" +"\n" +" pppoe: username \n" +" [password ]\n" +" [service ]\n" +" [mtu ]\n" +" [mac ]\n" +"\n" +" gsm: apn \n" +" [user ]\n" +" [password ]\n" +"\n" +" cdma: [user ]\n" +" [password ]\n" +"\n" +" infiniband: [mac ]\n" +" [mtu ]\n" +" [transport-mode datagram | connected]\n" +" [parent ]\n" +" [p-key ]\n" +"\n" +" bluetooth: [addr ]\n" +" [bt-type panu|dun-gsm|dun-cdma]\n" +"\n" +" vlan: dev \n" +" id \n" +" [flags ]\n" +" [ingress ]\n" +" [egress ]\n" +" [mtu ]\n" +"\n" +" bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) " +"| broadcast (3) |\n" +" 802.3ad (4) | balance-tlb (5) | balance-alb " +"(6)]\n" +" [primary ]\n" +" [miimon ]\n" +" [downdelay ]\n" +" [updelay ]\n" +" [arp-interval ]\n" +" [arp-ip-target ]\n" +" [lacp-rate slow (0) | fast (1)]\n" +"\n" +" bond-slave: master \n" +"\n" +" team: [config |]\n" +"\n" +" team-slave: master \n" +" [config |]\n" +"\n" +" bridge: [stp yes|no]\n" +" [priority ]\n" +" [forward-delay <2-30>]\n" +" [hello-time <1-10>]\n" +" [max-age <6-40>]\n" +" [ageing-time <0-1000000>]\n" +" [multicast-snooping yes|no]\n" +" [mac ]\n" +"\n" +" bridge-slave: master \n" +" [priority <0-63>]\n" +" [path-cost <1-65535>]\n" +" [hairpin yes|no]\n" +"\n" +" vpn: vpn-type vpnc|openvpn|pptp|openconnect|openswan|libreswan|" +"ssh|l2tp|iodine|...\n" +" [user ]\n" +"\n" +" olpc-mesh: ssid \n" +" [channel <1-13>]\n" +" [dhcp-anycast ]\n" +"\n" +" adsl: username \n" +" protocol pppoa|pppoe|ipoatm\n" +" [password ]\n" +" [encapsulation vcmux|llc]\n" +"\n" +" tun: mode tun|tap\n" +" [owner ]\n" +" [group ]\n" +" [pi yes|no]\n" +" [vnet-hdr yes|no]\n" +" [multi-queue yes|no]\n" +"\n" +" ip-tunnel: mode ipip|gre|sit|isatap|vti|ip6ip6|ipip6|ip6gre|vti6\n" +" remote \n" +" [local ]\n" +" [dev ]\n" +"\n" +" macsec: dev \n" +" mode \n" +" [cak ckn ]\n" +" [encrypt yes|no]\n" +" [port 1-65534]\n" +"\n" +"\n" +" macvlan: dev \n" +" mode vepa|bridge|private|passthru|source\n" +" [tap yes|no]\n" +"\n" +" vxlan: id \n" +" remote \n" +" [local ]\n" +" [dev ]\n" +" [source-port-min <0-65535>]\n" +" [source-port-max <0-65535>]\n" +" [destination-port <0-65535>]\n" +"\n" +" dummy: \n" +"\n" +" SLAVE_OPTIONS:\n" +" bridge: [priority <0-63>]\n" +" [path-cost <1-65535>]\n" +" [hairpin yes|no]\n" +"\n" +" team: [config |]\n" +"\n" +" IP_OPTIONS:\n" +" [ip4 ] [gw4 ]\n" +" [ip6 ] [gw6 ]\n" +"\n" #: ../clients/cli/connections.c:495 #, c-format @@ -1581,7 +1710,6 @@ msgid "never" msgstr "しない" #: ../clients/cli/connections.c:1190 -#, fuzzy msgid "Activate connection details" msgstr "アクティブな接続の詳細" @@ -1607,19 +1735,18 @@ msgid "incorrect item '%s' in '--order' option" msgstr "'--order' オプションの正しくないアイテム '%s'" #: ../clients/cli/connections.c:1705 -#, fuzzy msgid "No connection specified" -msgstr "エラー: 接続が指定されていません。" +msgstr "接続が指定されていません。" #: ../clients/cli/connections.c:1720 -#, fuzzy, c-format +#, c-format msgid "%s argument is missing" -msgstr "エラー: %s 引数がありません。" +msgstr "%s 引数がありません。" #: ../clients/cli/connections.c:1730 -#, fuzzy, c-format +#, c-format msgid "unknown connection '%s'" -msgstr "エラー: 不明な接続 '%s'\n" +msgstr "不明な接続 '%s'" #: ../clients/cli/connections.c:1763 msgid "'--order' argument is missing" @@ -1678,9 +1805,9 @@ msgid "no active connection or device" msgstr "アクティブな接続またはデバイスがありません" #: ../clients/cli/connections.c:2081 -#, fuzzy, c-format +#, c-format msgid "device '%s' not compatible with connection '%s':" -msgstr "デバイス '%s' は接続 '%s' と互換性がありません" +msgstr "デバイス '%s' は接続 '%s' と互換性がありません:" #: ../clients/cli/connections.c:2117 #, c-format @@ -1693,84 +1820,68 @@ msgid "no device found for connection '%s'" msgstr "接続 '%s'用のデバイスが見つかりません" #: ../clients/cli/connections.c:2140 -#, fuzzy msgid "Unknown reason" msgstr "不明な理由" #: ../clients/cli/connections.c:2142 -#, fuzzy msgid "The connection was disconnected" -msgstr "接続はボンド接続ではありませんでした。" +msgstr "接続が切断されました" #: ../clients/cli/connections.c:2144 -#, fuzzy msgid "Disconnected by user" -msgstr "D-Bus により切断" +msgstr "ユーザーにより切断" #: ../clients/cli/connections.c:2146 -#, fuzzy msgid "The base network connection was interrupted" -msgstr "基本ネットワーク接続が妨害されました。" +msgstr "基本ネットワーク接続が中断されました。" #: ../clients/cli/connections.c:2148 -#, fuzzy msgid "The VPN service stopped unexpectedly" -msgstr "VPN サービスが予期しない停止をしました" +msgstr "VPN サービスが予期せず停止しました" #: ../clients/cli/connections.c:2150 -#, fuzzy msgid "The VPN service returned invalid configuration" -msgstr "VPN サービスは無効な設定を返しました" +msgstr "VPN サービスが無効な設定を返しました" #: ../clients/cli/connections.c:2152 -#, fuzzy msgid "The connection attempt timed out" -msgstr "接続試行は時間切れです" +msgstr "接続試行がタイムアウトしました" #: ../clients/cli/connections.c:2154 -#, fuzzy msgid "The VPN service did not start in time" -msgstr "VPN サービスは時間内に開始していません" +msgstr "VPN サービスは時間内に開始しませんでした" #: ../clients/cli/connections.c:2156 -#, fuzzy msgid "The VPN service failed to start" -msgstr "VPN サービスの開始は失敗しました" +msgstr "VPN サービスの開始に失敗しました" #: ../clients/cli/connections.c:2158 -#, fuzzy msgid "No valid secrets" -msgstr "有効な VPN シークレットはありません" +msgstr "有効なシークレットはありません" #: ../clients/cli/connections.c:2160 -#, fuzzy msgid "Invalid secrets" -msgstr "無効な VPN シークレット" +msgstr "無効なシークレット" #: ../clients/cli/connections.c:2162 -#, fuzzy msgid "The connection was removed" msgstr "接続は削除されました" #: ../clients/cli/connections.c:2164 -#, fuzzy msgid "Master connection failed" -msgstr "接続に失敗" +msgstr "マスター接続に失敗しました" #: ../clients/cli/connections.c:2166 -#, fuzzy msgid "Could not create a software link" -msgstr "一時ファイルを作成できませんでした: %s" +msgstr "ソフトウェアリンクを作成できませんでした" #: ../clients/cli/connections.c:2168 -#, fuzzy msgid "The device disappeared" -msgstr "このデバイスのアクティブな接続が消滅しました" +msgstr "デバイスが消滅しました" #: ../clients/cli/connections.c:2171 -#, fuzzy msgid "Invalid reason" -msgstr "無効なルート: %s" +msgstr "無効な理由" #: ../clients/cli/connections.c:2196 ../clients/cli/connections.c:2366 #: ../clients/cli/connections.c:6468 @@ -1794,9 +1905,9 @@ msgstr "" "Bus アクティブパス: %s)\n" #: ../clients/cli/connections.c:2261 -#, fuzzy, c-format +#, c-format msgid "Error: Timeout expired (%d seconds)" -msgstr "エラー: 制限時間の %d 秒が経過" +msgstr "エラー: タイムアウト (%d 秒) になりました" #: ../clients/cli/connections.c:2427 #, c-format @@ -1871,9 +1982,9 @@ msgid "Error: no active connection provided." msgstr "エラー: アクティブな接続がありません。" #: ../clients/cli/connections.c:2878 -#, fuzzy, c-format +#, c-format msgid "Connection '%s' deactivation failed: %s\n" -msgstr "エラー: 接続のアクティベーションに失敗: %s" +msgstr "接続 '%s' の非アクティブ化に失敗しました: %s\n" #: ../clients/cli/connections.c:3341 ../clients/cli/utils.c:710 #, c-format @@ -1906,14 +2017,14 @@ msgid "Error: failed to remove a value from %s.%s: %s." msgstr "エラー: '%s' の値の削除に失敗しました、%s: %s。" #: ../clients/cli/connections.c:3748 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' is mandatory." -msgstr "エラー: '%s' を繰り返すことはできません。" +msgstr "エラー: '%s' は必須です。" #: ../clients/cli/connections.c:3780 -#, fuzzy, c-format +#, c-format msgid "Error: invalid slave type; %s." -msgstr "エラー: 無効な接続タイプ; %s。" +msgstr "エラー: 無効なスレーブタイプ; %s。" #: ../clients/cli/connections.c:3793 #, c-format @@ -1921,24 +2032,23 @@ msgid "Error: invalid connection type; %s." msgstr "エラー: 無効な接続タイプ; %s。" #: ../clients/cli/connections.c:4002 -#, fuzzy, c-format +#, c-format msgid "Error: bad connection type: %s." -msgstr "エラー: 無効な接続タイプ; %s。" +msgstr "エラー: 問題のある接続タイプ; %s。" #: ../clients/cli/connections.c:4065 -#, fuzzy, c-format +#, c-format msgid "Error: '%s': %s" -msgstr "エラー: %s: %s。" +msgstr "エラー: '%s': %s" #: ../clients/cli/connections.c:4086 -#, fuzzy msgid "Error: master is required" -msgstr "エラー: 'マスター' が必要です。" +msgstr "エラー: マスターが必要です" #: ../clients/cli/connections.c:4145 -#, fuzzy, c-format +#, c-format msgid "Error: error adding bond option '%s=%s'." -msgstr "エラー: 不明な接続 '%s' です。" +msgstr "エラー: ボンドオプション '%s=%s' の追加中にエラー。" #: ../clients/cli/connections.c:4176 #, c-format @@ -1954,48 +2064,40 @@ msgstr "" "エラー: 'bt-type': '%s' は無効です; [%s, %s (%s), %s] を使用してください。" #: ../clients/cli/connections.c:4282 -#, fuzzy msgid "PPPoE username" -msgstr "PPPoE ユーザー名: " +msgstr "PPPoE ユーザー名" #: ../clients/cli/connections.c:4283 ../clients/cli/connections.c:4304 #: ../clients/cli/connections.c:4306 ../clients/cli/connections.c:4355 -#, fuzzy msgid "Password [none]" -msgstr "パスワード [none]: " +msgstr "パスワード [none]" #: ../clients/cli/connections.c:4284 -#, fuzzy msgid "Service [none]" -msgstr "サービス [none]: " +msgstr "サービス [none]" #: ../clients/cli/connections.c:4285 ../clients/cli/connections.c:4288 #: ../clients/cli/connections.c:4297 -#, fuzzy msgid "MTU [auto]" -msgstr "MTU [auto]: " +msgstr "MTU [auto]" #: ../clients/cli/connections.c:4286 ../clients/cli/connections.c:4289 #: ../clients/cli/connections.c:4298 ../clients/cli/connections.c:4301 #: ../clients/cli/connections.c:4342 -#, fuzzy msgid "MAC [none]" -msgstr "MAC [none]: " +msgstr "MAC [none]" #: ../clients/cli/connections.c:4287 ../clients/cli/connections.c:4299 -#, fuzzy msgid "Cloned MAC [none]" -msgstr "クローンの MAC [none]: " +msgstr "クローンしたMAC [none]" #: ../clients/cli/connections.c:4292 -#, fuzzy msgid "Parent interface [none]" -msgstr "親インターフェース [none]: " +msgstr "親インターフェース [none]" #: ../clients/cli/connections.c:4293 -#, fuzzy msgid "P_KEY [none]" -msgstr "P_KEY [none]: " +msgstr "P_KEY [none]" #. 0 #: ../clients/cli/connections.c:4294 ../clients/cli/connections.c:4349 @@ -2004,150 +2106,121 @@ msgid "SSID" msgstr "SSID" #: ../clients/cli/connections.c:4300 -#, fuzzy msgid "WiMAX NSP name" -msgstr "WiMAX NSP 名: " +msgstr "WiMAX NSP 名" #: ../clients/cli/connections.c:4302 -#, fuzzy msgid "APN" -msgstr "AP" +msgstr "APN" #: ../clients/cli/connections.c:4303 ../clients/cli/connections.c:4305 #: ../clients/cli/connections.c:4348 -#, fuzzy msgid "Username [none]" -msgstr "ユーザー名 [none]: " +msgstr "ユーザー名 [none]" #: ../clients/cli/connections.c:4307 -#, fuzzy msgid "Bluetooth device address" -msgstr "Bluetooth デバイスアドレス: " +msgstr "Bluetooth デバイスアドレス" #: ../clients/cli/connections.c:4310 -#, fuzzy msgid "VLAN parent device or connection UUID" -msgstr "VLAN 親デバイスまたは接続 UUID: " +msgstr "VLAN 親デバイスまたは接続 UUID" #: ../clients/cli/connections.c:4312 -#, fuzzy msgid "VLAN ID (<0-4094>)" -msgstr "VLAN ID <0-4094>: " +msgstr "VLAN ID (<0-4094>)" #: ../clients/cli/connections.c:4313 -#, fuzzy msgid "VLAN flags (<0-7>) [none]" -msgstr "VLAN フラグ (<0-7>) [none]: " +msgstr "VLAN フラグ (<0-7>) [none]" #: ../clients/cli/connections.c:4314 -#, fuzzy msgid "Ingress priority maps [none]" -msgstr "イングレス優先度マップ [none]: " +msgstr "イングレス優先度マップ [none]" #: ../clients/cli/connections.c:4315 -#, fuzzy msgid "Egress priority maps [none]" -msgstr "イーグレス優先度マップ [none]: " +msgstr "イーグレス優先度マップ [none]" #: ../clients/cli/connections.c:4318 -#, fuzzy msgid "Bonding primary interface [none]" -msgstr "ボンドのプライマリインターフェース [none]:" +msgstr "ボンドのプライマリインターフェース [none]" #: ../clients/cli/connections.c:4322 -#, fuzzy msgid "Bonding miimon [100]" -msgstr "ボンドの miimon [100]:" +msgstr "ボンドの miimon [100]" #: ../clients/cli/connections.c:4323 -#, fuzzy msgid "Bonding downdelay [0]" -msgstr "ボンドの downdelay [0]: " +msgstr "ボンドの downdelay [0]" #: ../clients/cli/connections.c:4324 -#, fuzzy msgid "Bonding updelay [0]" -msgstr "ボンドの updelay [0]: " +msgstr "ボンドの updelay [0]" #: ../clients/cli/connections.c:4325 -#, fuzzy msgid "Bonding arp-interval [0]" -msgstr "ボンドの arp-interval [0]: " +msgstr "ボンドの arp-interval [0]" #: ../clients/cli/connections.c:4327 -#, fuzzy msgid "Bonding arp-ip-target [none]" -msgstr "ボンドの arp-ip-target [none]: " +msgstr "ボンドの arp-ip-target [none]" #: ../clients/cli/connections.c:4329 -#, fuzzy msgid "LACP rate ('slow' or 'fast') [slow]" -msgstr "LACP レート ('低速' または '高速') [低速]: " +msgstr "LACP レート ('slow' または 'fast') [slow]" #: ../clients/cli/connections.c:4331 ../clients/cli/connections.c:4332 -#, fuzzy msgid "Team JSON configuration [none]" -msgstr "team JSON 設定 [none]: " +msgstr "team JSON 設定 [none]" #: ../clients/cli/connections.c:4333 -#, fuzzy msgid "Enable STP [no]" -msgstr "STP %s の有効化 " +msgstr "STP の有効化 [no]" #: ../clients/cli/connections.c:4335 -#, fuzzy msgid "STP priority [32768]" -msgstr "STP の優先度 [32768]: " +msgstr "STP の優先度 [32768]" #: ../clients/cli/connections.c:4336 -#, fuzzy msgid "Forward delay [15]" -msgstr "フォワード遅延 [15]:" +msgstr "フォワード遅延 [15]" #: ../clients/cli/connections.c:4337 -#, fuzzy msgid "Hello time [2]" -msgstr "Hello タイム [2]: " +msgstr "Hello タイム [2]" #: ../clients/cli/connections.c:4338 -#, fuzzy msgid "Max age [20]" -msgstr "最大エイジ [20]: " +msgstr "最大エイジ [20]" #: ../clients/cli/connections.c:4339 -#, fuzzy msgid "MAC address ageing time [300]" -msgstr "MAC アドレスのエージングタイム [300]:" +msgstr "MAC アドレスのエージングタイム [300]" #: ../clients/cli/connections.c:4340 -#, fuzzy msgid "Enable IGMP snooping [no]" -msgstr "IGMP スヌーピングの有効化" +msgstr "IGMP スヌーピングの有効化 [no]" #: ../clients/cli/connections.c:4343 -#, fuzzy msgid "Bridge port priority [32]" -msgstr "ブリッジポートの優先度 [32]:" +msgstr "ブリッジポートの優先度 [32]" #: ../clients/cli/connections.c:4344 -#, fuzzy msgid "Bridge port STP path cost [100]" -msgstr "ブリッジポートの STP パスコスト [100]: " +msgstr "ブリッジポートの STP パスコスト [100]" #: ../clients/cli/connections.c:4345 -#, fuzzy msgid "Hairpin [no]" -msgstr "ヘアピンモード" +msgstr "ヘアピン [no]" #: ../clients/cli/connections.c:4350 -#, fuzzy msgid "OLPC Mesh channel [1]" -msgstr "OLPC メッシュチャンネル [1]: " +msgstr "OLPC メッシュチャンネル [1]" #: ../clients/cli/connections.c:4351 -#, fuzzy msgid "DHCP anycast MAC address [none]" -msgstr "DHCP anycast MAC アドレス [none]: " +msgstr "DHCP anycast MAC アドレス [none]" #. TTLS and PEAP are actually much more complicated, but this complication #. * is not visible here since we only care about phase2 authentication @@ -2162,130 +2235,112 @@ msgstr "ユーザー名" #: ../clients/cli/connections.c:4358 msgid "MACsec parent device or connection UUID" -msgstr "" +msgstr "MACsec 親デバイスまたは接続 UUID" #: ../clients/cli/connections.c:4360 msgid "Enable encryption [yes]" -msgstr "" +msgstr "暗号化の有効化 [yes]" #: ../clients/cli/connections.c:4361 #: ../clients/common/nm-secret-agent-simple.c:520 msgid "MKA CAK" -msgstr "" +msgstr "MKA CAK" #: ../clients/cli/connections.c:4362 msgid "MKA_CKN" -msgstr "" +msgstr "MKA_CKN" #: ../clients/cli/connections.c:4363 msgid "SCI port [1]" -msgstr "" +msgstr "SCI ポート [1]" #: ../clients/cli/connections.c:4365 -#, fuzzy msgid "MACVLAN parent device or connection UUID" -msgstr "MACVLAN 親デバイスまたは接続 UUID: " +msgstr "MACVLAN 親デバイスまたは接続 UUID" #: ../clients/cli/connections.c:4369 msgid "Tap [no]" -msgstr "" +msgstr "Tap [no]" #: ../clients/cli/connections.c:4371 -#, fuzzy msgid "VXLAN ID" -msgstr "VXLAN ID: " +msgstr "VXLAN ID" #: ../clients/cli/connections.c:4372 ../clients/cli/connections.c:4391 -#, fuzzy msgid "Remote" -msgstr "リモート: " +msgstr "リモート" #: ../clients/cli/connections.c:4373 ../clients/cli/connections.c:4392 -#, fuzzy msgid "Parent device [none]" -msgstr "親デバイス [none]: " +msgstr "親デバイス [none]" #: ../clients/cli/connections.c:4375 -#, fuzzy msgid "Local address [none]" -msgstr "ローカルアドレス [none]: " +msgstr "ローカルアドレス [none]" #: ../clients/cli/connections.c:4376 -#, fuzzy msgid "Minimum source port [0]" -msgstr "最小ソースポート [0]: " +msgstr "最小ソースポート数 [0]" #: ../clients/cli/connections.c:4377 -#, fuzzy msgid "Maximum source port [0]" -msgstr "最小ソースポート [0]: " +msgstr "最大ソースポート数 [0]" #: ../clients/cli/connections.c:4378 -#, fuzzy msgid "Destination port [8472]" -msgstr "送信先ポート [8472]: " +msgstr "接続先ポート [8472]" #: ../clients/cli/connections.c:4381 -#, fuzzy msgid "User ID [none]" -msgstr "ユーザー ID [none]: " +msgstr "ユーザー ID [none]" #: ../clients/cli/connections.c:4382 -#, fuzzy msgid "Group ID [none]" -msgstr "グループ ID [none]: " +msgstr "グループ ID [none]" #: ../clients/cli/connections.c:4383 -#, fuzzy msgid "Enable PI [no]" -msgstr "PI %s の有効化" +msgstr "PI の有効化 [no]" #: ../clients/cli/connections.c:4385 -#, fuzzy msgid "Enable VNET header [no]" -msgstr "VNET ヘッダー %s の有効化" +msgstr "VNET ヘッダー の有効化 [no]" #: ../clients/cli/connections.c:4387 -#, fuzzy msgid "Enable multi queue [no]" -msgstr "複数のキュー %s の有効化" +msgstr "複数のキューの有効化 [no]" #: ../clients/cli/connections.c:4390 -#, fuzzy msgid "Local endpoint [none]" -msgstr "ローカルエンドポイント [none]: " +msgstr "ローカルエンドポイント [none]" #: ../clients/cli/connections.c:4394 -#, fuzzy msgid "IPv4 address (IP[/plen]) [none]" -msgstr "IPv4 アドレス (IP[/plen]) [none]: " +msgstr "IPv4 アドレス (IP[/plen]) [none]" #: ../clients/cli/connections.c:4396 -#, fuzzy msgid "IPv4 gateway [none]" -msgstr "IPv4 ゲートウェイ [none]: " +msgstr "IPv4 ゲートウェイ [none]" #: ../clients/cli/connections.c:4397 -#, fuzzy msgid "IPv6 address (IP[/plen]) [none]" -msgstr "IPv6 アドレス (IP[/plen]) [none]: " +msgstr "IPv6 アドレス (IP[/plen]) [none]" #: ../clients/cli/connections.c:4399 -#, fuzzy msgid "IPv6 gateway [none]" -msgstr "IPv6 ゲートウェイ [none]: " +msgstr "IPv6 ゲートウェイ [none]" #: ../clients/cli/connections.c:4401 msgid "Browser only [no]" -msgstr "" +msgstr "ブラウザー専用 [no]" #: ../clients/cli/connections.c:4403 msgid "PAC URL" -msgstr "" +msgstr "PAC URL" #: ../clients/cli/connections.c:4404 msgid "PAC script" -msgstr "" +msgstr "PAC スクリプト" #: ../clients/cli/connections.c:4539 #, c-format @@ -2302,9 +2357,9 @@ msgid "Error: invalid or not allowed setting '%s': %s." msgstr "エラー: 無効または許可されていない設定 '%s' です: %s。" #: ../clients/cli/connections.c:4633 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)." -msgstr "'%s' が不明瞭です (%s x %s)" +msgstr "エラー:'%s' があいまいです (%s.%s または %s.%s)。" #: ../clients/cli/connections.c:4647 #, c-format @@ -2326,13 +2381,15 @@ msgstr "接続 '%s' (%s) が正常に追加されました。\n" msgid "" "You can specify this option more than once. Press when you're done.\n" msgstr "" +"このオプションは複数回指定することができます。終了したら を押してくだ" +"さい。\n" #. Ask for optional arguments. #: ../clients/cli/connections.c:4854 -#, 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] "'%2$s' 接続タイプには %1$d 種類のオプション引数があります。\n" +msgstr[0] "'%s' には %d のオプション設定があります。\n" #: ../clients/cli/connections.c:4857 #, c-format @@ -2341,81 +2398,68 @@ msgid_plural "Do you want to provide them? %s" msgstr[0] "指定しますか? %s" #: ../clients/cli/connections.c:4871 -#, fuzzy msgid "Wired Ethernet" -msgstr "Ethernet" +msgstr "有線イーサネット" #: ../clients/cli/connections.c:4873 ../src/devices/nm-device-infiniband.c:192 msgid "InfiniBand connection" msgstr "InfiniBand 接続" #: ../clients/cli/connections.c:4875 -#, fuzzy msgid "Wi-Fi connection" -msgstr "Wi-Fi 接続 %d" +msgstr "Wi-Fi 接続" #: ../clients/cli/connections.c:4877 -#, fuzzy msgid "WiMAX connection" -msgstr "CDMA 接続" +msgstr "WiMAX 接続" #: ../clients/cli/connections.c:4879 msgid "PPPoE" msgstr "PPPoE" #: ../clients/cli/connections.c:4881 -#, fuzzy msgid "CDMA mobile broadband connection" -msgstr "モバイルブロードバンド接続 %d" +msgstr "CDMA モバイルブロードバンド接続" #: ../clients/cli/connections.c:4883 -#, fuzzy msgid "GSM mobile broadband connection" -msgstr "モバイルブロードバンド接続 %d" +msgstr "GSM モバイルブロードバンド接続" #: ../clients/cli/connections.c:4885 -#, fuzzy msgid "bluetooth connection" -msgstr "ボンド接続" +msgstr "bluetooth 接続" #: ../clients/cli/connections.c:4887 ../src/devices/nm-device-vlan.c:433 msgid "VLAN connection" msgstr "VLAN 接続" #: ../clients/cli/connections.c:4889 -#, fuzzy msgid "Bond device" -msgstr "Ethernet デバイス" +msgstr "Bond デバイス" #: ../clients/cli/connections.c:4891 -#, fuzzy msgid "Team device" -msgstr "TUN デバイスモード" +msgstr "Team デバイス" #: ../clients/cli/connections.c:4893 -#, fuzzy msgid "Team port" -msgstr "team " +msgstr "Team ポート" #: ../clients/cli/connections.c:4895 -#, fuzzy msgid "Bridge device" -msgstr "Ethernet デバイス" +msgstr "ブリッジデバイス" #: ../clients/cli/connections.c:4897 -#, fuzzy msgid "Bridge port" -msgstr "ブリッジ" +msgstr "ブリッジポート" #: ../clients/cli/connections.c:4899 ../src/nm-manager.c:4080 -#, fuzzy msgid "VPN connection" msgstr "VPN 接続" #: ../clients/cli/connections.c:4901 -#, fuzzy msgid "OLPC Mesh connection" -msgstr "CDMA 接続" +msgstr "OLPC Mesh 接続" #: ../clients/cli/connections.c:4903 ../src/devices/adsl/nm-device-adsl.c:137 msgid "ADSL connection" @@ -2423,35 +2467,31 @@ msgstr "ADSL 接続" #: ../clients/cli/connections.c:4905 msgid "MACsec connection" -msgstr "" +msgstr "MACsec 接続" #: ../clients/cli/connections.c:4907 -#, fuzzy msgid "macvlan connection" -msgstr "ボンド接続" +msgstr "macvlan 接続" #: ../clients/cli/connections.c:4909 ../src/devices/nm-device-vxlan.c:369 msgid "VXLAN connection" msgstr "VXLAN 接続" #: ../clients/cli/connections.c:4911 -#, fuzzy msgid "Tun device" -msgstr "TUN デバイスモード" +msgstr "TUN デバイス" #: ../clients/cli/connections.c:4913 -#, fuzzy msgid "IPv4 protocol" -msgstr "ADSL プロトコル" +msgstr "IPv4 プロトコル" #: ../clients/cli/connections.c:4915 -#, fuzzy msgid "IPv6 protocol" -msgstr "ADSL プロトコル" +msgstr "IPv6 プロトコル" #: ../clients/cli/connections.c:4917 msgid "Proxy" -msgstr "" +msgstr "プロキシ" #: ../clients/cli/connections.c:5004 ../clients/cli/utils.c:186 #, c-format @@ -2464,9 +2504,9 @@ msgid "Error: 'save': %s." msgstr "エラー: 'save': %s。" #: ../clients/cli/connections.c:5082 -#, fuzzy, c-format +#, c-format msgid "Error: '%s' argument is required." -msgstr "エラー: 'タイプ' 引数が必要です。" +msgstr "エラー: '%s' 引数が必要です。" #: ../clients/cli/connections.c:6054 #, c-format @@ -3268,9 +3308,9 @@ msgid "Error: Connection deletion failed: %s" msgstr "エラー: 接続の削除に失敗しました: %s" #: ../clients/cli/connections.c:8391 ../clients/cli/connections.c:8516 -#, fuzzy, c-format +#, c-format msgid "Error: %s.\n" -msgstr "エラー: %s." +msgstr "エラー: %s.\n" #: ../clients/cli/connections.c:8392 ../clients/cli/connections.c:8517 #, c-format @@ -3348,9 +3388,9 @@ msgid "Error: 'file' argument is required." msgstr "エラー: 'file' 引数が必要です。" #: ../clients/cli/connections.c:8708 -#, fuzzy, c-format +#, c-format msgid "Error: failed to find VPN plugin for %s." -msgstr "エラー: VPN プラグインのロードに失敗しました: %s。" +msgstr "エラー: %s 用の VPN プラグインが見つかりません。" #: ../clients/cli/connections.c:8716 ../clients/cli/connections.c:8817 #, c-format @@ -3392,7 +3432,6 @@ msgid "Interface: " msgstr "インターフェース: " #: ../clients/cli/devices.c:37 -#, fuzzy msgid "Interface(s): " msgstr "インターフェース: " @@ -3520,7 +3559,7 @@ msgstr "速度" #. 3 #: ../clients/cli/devices.c:104 msgid "SRIOV" -msgstr "" +msgstr "SRIOV" #. 0 #: ../clients/cli/devices.c:113 @@ -3678,7 +3717,7 @@ msgstr "スレーブ" #. 1 #: ../clients/cli/devices.c:204 msgid "CONFIG" -msgstr "" +msgstr "CONFIG" #. 0 #: ../clients/cli/devices.c:213 @@ -3814,7 +3853,7 @@ msgid "PORT-ID-TYPE" msgstr "PORT-ID-TYPE" #: ../clients/cli/devices.c:295 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli device { COMMAND | help }\n" "\n" @@ -3854,10 +3893,10 @@ msgid "" " lldp [list [ifname ]]\n" "\n" msgstr "" -"使い方: nmcli device { コマンド | help }\n" +"使い方: nmcli device { COMMAND | help }\n" "\n" -"コマンド := { status | show | connect | reapply | disconnect | delete | " -"monitor | wifi | lldp }\n" +"COMMAND := { status | show | set | connect | reapply | modify | disconnect | " +"delete | monitor | wifi | lldp }\n" "\n" " status\n" "\n" @@ -3867,7 +3906,9 @@ msgstr "" "\n" " connect \n" "\n" -" reapply ...\n" +" reapply \n" +"\n" +" modify ([+|-]. )+\n" "\n" " disconnect ...\n" "\n" @@ -3877,15 +3918,15 @@ msgstr "" "\n" " wifi [list [ifname ] [bssid ]]\n" "\n" -" wifi connect <(B)SSID> [password <パスワード>] [wep-key-type key|phrase] " +" wifi connect <(B)SSID> [password ] [wep-key-type key|phrase] " "[ifname ]\n" -" [bssid ] [name <名前>] [private yes|no] " +" [bssid ] [name ] [private yes|no] " "[hidden yes|no]\n" "\n" -" wifi hotspot [ifname ] [con-name <名前>] [ssid ] [band a|bg] " -"[channel <チャネル>] [password <パスワード>]\n" +" wifi hotspot [ifname ] [con-name ] [ssid ] [band a|bg] " +"[channel ] [password ]\n" "\n" -" wifi rescan [ifname ] [[ssid <スキャンする SSID>] ...]\n" +" wifi rescan [ifname ] [[ssid ] ...]\n" "\n" " lldp [list [ifname ]]\n" "\n" @@ -3932,9 +3973,9 @@ msgid "" "The command lists details for all devices, or for a given device.\n" "\n" msgstr "" -"使い方: nmcli device show { 引数 | help }\n" +"使い方: nmcli device show { ARGUMENTS | help }\n" "\n" -"引数 := []\n" +"ARGUMENTS := []\n" "\n" "デバイスの詳細を表示します。\n" "このコマンドですべてのデバイスまたは指定デバイスの詳細を表示させます。\n" @@ -3953,9 +3994,9 @@ msgid "" "It will also consider connections that are not set to auto-connect.\n" "\n" msgstr "" -"使い方: nmcli device connect { 引数 | help }\n" +"使い方: nmcli device connect { ARGUMENTS | help }\n" "\n" -"引数 := \n" +"ARGUMENTS := \n" "\n" "デバイスを接続します。\n" "NetworkManager により適した接続が検索され、アクティベートされます。\n" @@ -3963,7 +4004,7 @@ msgstr "" "\n" #: ../clients/cli/devices.c:356 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli device reapply { ARGUMENTS | help }\n" "\n" @@ -3973,16 +4014,16 @@ msgid "" "made since it was last applied.\n" "\n" msgstr "" -"使い方: nmcli device reapply { 引数 | help }\n" +"使い方: n nmcli device reapply { ARGUMENTS | help }\n" "\n" -"引数 := ...\n" +"ARGUMENTS := \n" "\n" -"変更が最後に適用されてから現在アクティブな接続に対して行われた変更\n" -"でデバイスの更新を試行します。\n" +"現在アクティブな接続に最後に適用されて以来の\n" +"変更でデバイスの更新を試行します。\n" "\n" #: ../clients/cli/devices.c:367 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli device modify { ARGUMENTS | --help }\n" "\n" @@ -4002,27 +4043,24 @@ msgid "" "nmcli dev mod em1 -ipv4.dns 1\n" "nmcli dev mod em1 -ipv6.addr \"abbe::cafe/56\"\n" msgstr "" -"使い方: nmcli connection modify { ARGUMENTS | help }\n" +"使い方: nmcli device modify { ARGUMENTS | --help }\n" "\n" -"ARGUMENTS := [id | uuid | path] ([+|-]. )+\n" +"ARGUMENTS := ([+|-]. )+\n" "\n" -"接続プロファイルの 1 つ以上のプロパティーを変更します。\n" -"プロファイルは名前、UUID、または D-Bus パスで識別されます。複数の値から成るプ" -"ロパティーの場合は、\n" +"接続プロファイルを編集せずに、現在アクティブなデバイス上の 1 つ以上のプロパ" +"ティーを変更します。\n" +"変更はすぐに反映されます。\n" +"複数の値で構成されるプロパティーの場合は、\n" "プロパティー名にオプションの '+' または '-' プレフィックスを使用できます。\n" "'+' 記号を使用すると、値全体を上書きせずにアイテムを追加できます。\n" -"'-' 記号を使用すると、値全体の代わりに、選択されたアイテムを削除できます。\n" +"'-' 記号を使用すると、値全体ではなく、選択されたアイテムを削除できます。\n" "\n" "例:\n" -"nmcli con mod home-wifi wifi.ssid rakosnicek\n" -"nmcli con mod em1-1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " +"nmcli dev mod em1 ipv4.method manual ipv4.addr \"192.168.1.2/24, " "10.10.1.5/8\"\n" -"nmcli con mod em1-1 +ipv4.dns 8.8.4.4\n" -"nmcli con mod em1-1 -ipv4.dns 1\n" -"nmcli con mod em1-1 -ipv6.addr \"abbe::cafe/56\"\n" -"nmcli con mod bond0 +bond.options mii=500\n" -"nmcli con mod bond0 -bond.options downdelay\n" -"\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:387 #, c-format @@ -4036,9 +4074,9 @@ msgid "" "further connections without user/manual intervention.\n" "\n" msgstr "" -"使い方: nmcli device disconnect { 引数 | help }\n" +"使い方: nmcli device disconnect { ARGUMENTS | help }\n" "\n" -"引数 := ...\n" +"ARGUMENTS := ...\n" "\n" "デバイスの接続を切断します。\n" "このコマンドにより、デバイスの接続が切断され、ユーザーまたは手作業による介入" @@ -4059,9 +4097,9 @@ msgid "" "command.\n" "\n" msgstr "" -"使い方: nmcli device delete { 引数 | help }\n" +"使い方: nmcli device delete { ARGUMENTS | help }\n" "\n" -"引数 := ...\n" +"ARGUMENTS := ...\n" "\n" "ソフトウェアデバイスを削除します。\n" "このコマンドにより、インターフェースが削除されます。ソフトウェアデバイス\n" @@ -4082,11 +4120,11 @@ msgid "" "Modify device properties.\n" "\n" msgstr "" -"使い方: nmcli device set { 引数 | help }\n" +"使い方: nmcli device set { ARGUMENTS | help }\n" "\n" -"引数 := デバイス { プロパティー [ プロパティー ... ] }\n" -"デバイス := [ifname] \n" -"プロパティー := { autoconnect { yes | no } |\n" +"ARGUMENTS := DEVICE { PROPERTY [ PROPERTY ... ] }\n" +"DEVICE := [ifname] \n" +"PROPERTY := { autoconnect { yes | no } |\n" " { managed { yes | no }\n" "\n" "デバイスプロパティーを変更します。\n" @@ -4104,9 +4142,9 @@ msgid "" "Monitors all devices in case no interface is specified.\n" "\n" msgstr "" -"使い方: nmcli device monitor { 引数 | help }\n" +"使い方: nmcli device monitor { ARGUMENTS | help }\n" "\n" -"引数 := [] ...\n" +"ARGUMENTS := [] ...\n" "\n" "デバイスアクティビティーを監視します。\n" "このコマンドにより、指定されたデバイスの状態が変わるたびに行が出力されま" @@ -4115,7 +4153,7 @@ msgstr "" "\n" #: ../clients/cli/devices.c:437 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli device wifi { ARGUMENTS | help }\n" "\n" @@ -4166,20 +4204,20 @@ msgid "" "use 'nmcli device wifi list' for that.\n" "\n" msgstr "" -"使い方: nmcli device wifi { 引数 | help }\n" +"使い方: nmcli device wifi { ARGUMENTS | help }\n" "\n" -"Wi-Fi デバイス上での操作を行います。\n" +"Wi-Fi デバイス上で演算を実行します。\n" "\n" -"引数 := [list [ifname ] [bssid ]]\n" +"ARGUMENTS := [list [ifname ] [bssid ]]\n" "\n" "使用可能な Wi-Fi アクセスポイントを一覧表示します。'ifname' オプションと " "'bssid' オプションを使用すると、\n" "特定のインターフェース用の AP または特定の BSSID を持つ AP を一覧表示すること" "ができます。\n" "\n" -"引数 := connect <(B)SSID> [password <パスワード>] [wep-key-type key|phrase] " -"[ifname ]\n" -" [bssid ] [name <名前>] [private yes|no] [hidden " +"ARGUMENTS := connect <(B)SSID> [password ] [wep-key-type key|" +"phrase] [ifname ]\n" +" [bssid ] [name ] [private yes|no] [hidden " "yes|no]\n" "\n" "SSID または BSSID で指定した Wi-Fi ネットワークへ接続します。このコマンドによ" @@ -4188,21 +4226,23 @@ msgstr "" "クライアントで SSID をクリックした場合と同じ動作になります。常に新規の接続" "が\n" "作成されるため、主に新規の Wi-Fi ネットワークに接続する場合に役に立ちます。\n" -"ネットワーク用の接続がすでに存在する場合は、「nmcli con up id <名前>」を使っ" +"ネットワーク用の接続がすでに存在する場合は、「nmcli con up id 」を使っ" "て\n" "既存のプロファイルを有効にすることが推奨されます。現時点でサポートされている" "のはオープンな\n" "WEP ネットワークおよび WPA-PSK ネットワークのみであることに注意してくださ" "い。また、\n" -"IP 設定は DHCP で取得されるとみなされます。\n" +"IP 設定は DHCP で取得されることが前提となります。\n" "\n" "ARGUMENTS := wifi hotspot [ifname ] [con-name ] [ssid ]\n" " [band a|bg] [channel ] [password " "]\n" "\n" -"Create a Wi-Fi hotspot. Use 'connection down' or 'device disconnect'\n" -"to stop the hotspot.\n" -"Parameters of the hotspot can be influenced by the optional parameters:\n" +"Wi-Fi ホットスポットを作成します。'connection down' または 'device " +"disconnect'\n" +"を使ってホットスポットを停止します。\n" +"ホットスポットのパラメーターは以下のオプションのパラメーターに影響を受けま" +"す:\n" "ifname - Wi-Fi device to use\n" "con-name - name of the created hotspot connection profile\n" "ssid - SSID of the hotspot\n" @@ -4212,15 +4252,16 @@ msgstr "" "\n" "ARGUMENTS := rescan [ifname ] [[ssid ] ...]\n" "\n" -"Request that NetworkManager immediately re-scan for available access " -"points.\n" -"NetworkManager scans Wi-Fi networks periodically, but in some cases it " -"might\n" -"be useful to start scanning manually. 'ssid' allows scanning for a specific\n" -"SSID, which is useful for APs with hidden SSIDs. More 'ssid' parameters can " -"be\n" -"given. Note that this command does not show the APs,\n" -"use 'nmcli device wifi list' for that.\n" +"NetworkManager が直ちに利用可能なアクセスポイントを再スキャンすることをリクエ" +"ストします。\n" +"\n" +"NetworkManager は定期的に Wi-Fi ネットワークをスキャンしますが、\n" +"スキャンを手動で開始することが便利な場合もあります。'ssid' を使用すると特定" +"の\n" +"SSID をスキャンすることができ、非表示 SSID の AP で便利です。複数の 'ssid' パ" +"ラメーターを使用することが可能です\n" +"このコマンドは AP を表示せず、\n" +"それには 'nmcli device wifi list' を使用することに留意してください。\n" "\n" #: ../clients/cli/devices.c:484 @@ -4235,9 +4276,9 @@ msgid "" "used to list neighbors for a particular interface.\n" "\n" msgstr "" -"使い方: nmcli device lldp { 引数 | help }\n" +"使い方: nmcli device lldp { ARGUMENTS | help }\n" "\n" -"引数 := [list [ifname ]]\n" +"ARGUMENTS := [list [ifname ]]\n" "\n" "LLDP を介して検出された近接デバイスを一覧表示します。'ifname' オプションを使" "用すると、\n" @@ -4265,14 +4306,13 @@ msgid "Error: not all devices found." msgstr "エラー: 一部のデバイスが見つかりません。" #: ../clients/cli/devices.c:641 -#, fuzzy msgid "No interface specified" -msgstr "エラー: インターフェースが指定されていません。" +msgstr "インターフェースが指定されていません" #: ../clients/cli/devices.c:660 -#, fuzzy, c-format +#, c-format msgid "Device '%s' not found" -msgstr "エラー: デバイス'%s' が見つかりません" +msgstr "デバイス'%s' が見つかりません" #: ../clients/cli/devices.c:746 ../clients/cli/devices.c:898 msgid "(none)" @@ -4429,9 +4469,9 @@ msgid "Device '%s' successfully removed.\n" msgstr "デバイス '%s' が正常に削除されました。\n" #: ../clients/cli/devices.c:1980 ../clients/cli/devices.c:2050 -#, fuzzy, c-format +#, c-format msgid "Error: Reapplying connection to device '%s' (%s) failed: %s" -msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s\n" +msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s" #: ../clients/cli/devices.c:1990 ../clients/cli/devices.c:2059 #, c-format @@ -4439,9 +4479,10 @@ msgid "Connection successfully reapplied to device '%s'.\n" msgstr "接続がデバイス '%s' に正常に再適用されました。\n" #: ../clients/cli/devices.c:2084 -#, fuzzy, c-format +#, c-format msgid "Error: Reading applied connection from device '%s' (%s) failed: %s" -msgstr "エラー: デバイス '%s' (%s) への接続の再適用に失敗しました: %s\n" +msgstr "" +"エラー: デバイス '%s' (%s) からの適用済み接続の読み取りに失敗しました: %s" #: ../clients/cli/devices.c:2148 #, c-format @@ -5185,71 +5226,61 @@ msgid "Networkmanager is now in the '%s' state\n" msgstr "Networkmanager の状態は '%s' です\n" #: ../clients/cli/general.c:1103 -#, fuzzy msgid "connection available" -msgstr "接続に失敗" +msgstr "接続が利用可能" #: ../clients/cli/general.c:1105 -#, fuzzy msgid "connections available" -msgstr "接続に失敗" +msgstr "接続が利用可能" #: ../clients/cli/general.c:1123 -#, fuzzy msgid "autoconnect" -msgstr "接続済み" +msgstr "自動接続" #: ../clients/cli/general.c:1125 -#, fuzzy msgid "fw missing" -msgstr "データがありません" +msgstr "fw がありません" #: ../clients/cli/general.c:1130 -#, fuzzy msgid "plugin missing" -msgstr "データがありません" +msgstr "プラグインがありません" #: ../clients/cli/general.c:1135 msgid "sw" -msgstr "" +msgstr "sw" #: ../clients/cli/general.c:1137 -#, fuzzy msgid "hw" -msgstr "表示する" +msgstr "hw" #: ../clients/cli/general.c:1142 msgid "iface" -msgstr "" +msgstr "iface" #: ../clients/cli/general.c:1145 -#, fuzzy msgid "port" -msgstr "ポータル" +msgstr "ポート" #: ../clients/cli/general.c:1148 msgid "mtu" -msgstr "" +msgstr "mtu" #: ../clients/cli/general.c:1165 -#, fuzzy msgid "master" -msgstr "マスター: " +msgstr "マスター" #: ../clients/cli/general.c:1171 -#, fuzzy msgid "ip4 default" -msgstr "デフォルト" +msgstr "ip4 デフォルト" #: ../clients/cli/general.c:1173 -#, fuzzy msgid "ip6 default" -msgstr "デフォルト" +msgstr "ip6 デフォルト" #: ../clients/cli/general.c:1253 -#, fuzzy, c-format +#, c-format msgid "%s VPN connection" -msgstr "VPN 接続" +msgstr "%s VPN 接続" #: ../clients/cli/general.c:1323 #, c-format @@ -5261,6 +5292,13 @@ msgid "" "Consult nmcli(1) and nmcli-examples(5) manual pages for complete usage " "details.\n" msgstr "" +"既知のデバイスに関する情報を取得するには、\"nmcli device show\" を使用しま" +"す。\n" +"アクティブな接続プロファイルの概要を取得するには、\"nmcli connection show\" " +"を使用します。\n" +"\n" +"使用方法の詳細情報については、nmcli(1) と nmcli-examples(5) の man ページを参" +"照してください。\n" #: ../clients/cli/general.c:1344 #, c-format @@ -5272,7 +5310,7 @@ msgid "Networkmanager is not running (waiting for it)\n" msgstr "Networkmanager が実行されていません (待機中)\n" #: ../clients/cli/nmcli.c:171 -#, fuzzy, c-format +#, c-format msgid "" "Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }\n" "\n" @@ -5304,35 +5342,34 @@ msgid "" " m[onitor] monitor NetworkManager changes\n" "\n" msgstr "" -"使い方: %s [オプション] オブジェクト { コマンド | help }\n" +"使い方: nmcli [OPTIONS] OBJECT { COMMAND | help }\n" "\n" -"オプション\n" -" -t[erse] 簡潔な出力\n" -" -p[retty] 人間が読みやすい出力\n" -" -m[ode] tabular|multiline 出力モード\n" -" -c[olors] auto|yes|no 出力で色を使用するかどうか\n" -" -f[ields] |all|common 出力フィールドの指定\n" -" -e[scape] yes|no 値内のコラムセパレーターをエス" -"ケープ\n" -" -n[ocheck] nmcli および NetworkManager の" -"バージョンをチェックしない\n" -" -a[sk] 足りないパラメーターを問い合わせ" -"る\n" -" -s[how-secrets] パスワードの表示を許可\n" -" -w[ait] 動作の完了を待機する場合のタイム" -"アウトを設定\n" -" -v[ersion] プログラムバージョンを表示\n" -" -h[elp] このヘルプを出力\n" -"\n" -"オブジェクト\n" -" g[eneral] NetworkManager の全般的な状態と動作\n" -" n[etworking] 全体的なネットワーク制御\n" -" r[adio] NetworkManager ラジオスイッチ\n" -" c[onnection] NetworkManager の接続\n" -" d[evice] NetworkManager で管理しているデバイス\n" -" a[gent] NetworkManager シークレットエージェントまたは polkit エー" -"ジェント\n" -" m[onitor] NetworkManager の変更を監視\n" +"OPTIONS\n" +" -t[erse] terse output\n" +" -p[retty] pretty output\n" +" -m[ode] tabular|multiline output mode\n" +" -c[olors] auto|yes|no whether to use colors in " +"output\n" +" -f[ields] |all|common specify fields to output\n" +" -g[et-values] |all|common shortcut for -m tabular -t -" +"f\n" +" -e[scape] yes|no escape columns separators " +"in values\n" +" -a[sk] ask for missing parameters\n" +" -s[how-secrets] allow displaying passwords\n" +" -w[ait] set timeout waiting for " +"finishing operations\n" +" -v[ersion] show program version\n" +" -h[elp] print this help\n" +"\n" +"OBJECT\n" +" g[eneral] NetworkManager's general status and operations\n" +" n[etworking] overall networking control\n" +" r[adio] NetworkManager radio switches\n" +" c[onnection] NetworkManager's connections\n" +" d[evice] devices managed by NetworkManager\n" +" a[gent] NetworkManager secret agent or polkit agent\n" +" m[onitor] monitor NetworkManager changes\n" "\n" #: ../clients/cli/nmcli.c:249 @@ -5388,11 +5425,9 @@ msgid "Error: Option '%s' is unknown, try 'nmcli -help'." msgstr "エラー: オプション '%s' は不明です、'nmcli -help' を確認してください。" #: ../clients/cli/nmcli.c:433 ../clients/cli/nmcli.c:440 -#, fuzzy, c-format +#, c-format msgid "Error: nmcli terminated by signal %s (%d)\n" -msgstr "" -"\n" -"Error: nmcli がシグナル %s (%d) で終了しました\n" +msgstr "Error: nmcli がシグナル %s (%d) で終了しました\n" #: ../clients/cli/nmcli.c:538 msgid "Success" @@ -5712,9 +5747,9 @@ msgstr "" " ab 4 55 0xa6 ea 3a 74 C2\n" #: ../clients/cli/settings.c:2243 -#, fuzzy, c-format +#, c-format msgid "invalid option '%s', use a combination of [%s]" -msgstr "無効なオプション '%s' です。[%s] のいずれかを使用してください" +msgstr "無効なオプション '%s' です。[%s] の組み合わせを使用してください" #: ../clients/cli/settings.c:2411 #, c-format @@ -5748,9 +5783,9 @@ msgstr "" "例: mode=2,miimon=120\n" #: ../clients/cli/settings.c:2486 -#, fuzzy, c-format +#, c-format msgid "%d (forever)" -msgstr "%d (no)" +msgstr "%d (forever)" #. 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. @@ -5760,9 +5795,9 @@ msgstr "%d (no)" #. * nmc_setting_set_property() is called only after the property #. * we're setting (type) has been removed. #: ../clients/cli/settings.c:2542 -#, fuzzy, c-format +#, c-format msgid "Can not change the connection type" -msgstr "不明な/未処理の Bluetooth 接続タイプ" +msgstr "接続タイプを変更できません" #: ../clients/cli/settings.c:2566 ../libnm-core/nm-setting-connection.c:887 #: ../libnm-util/nm-setting-connection.c:791 @@ -6121,9 +6156,9 @@ msgid "'%s' is not a valid channel; use <1-13>" msgstr "'%s' は有効なチャンネルではありません; <1-13> を使用してください" #: ../clients/cli/settings.c:4563 -#, fuzzy, c-format +#, c-format msgid "invalid method '%s', use one of %s" -msgstr "無効なモード '%s' です。%s のいずれかを使用してください" +msgstr "無効なメソッド '%s' です。%s のいずれかを使用してください" #: ../clients/cli/settings.c:4628 #, c-format @@ -6462,20 +6497,18 @@ msgid "Wired 802.1X authentication" msgstr "有線 802.1X の認証" #: ../clients/common/nm-secret-agent-simple.c:475 -#, fuzzy, c-format +#, c-format msgid "Secrets are required to access the wired network '%s'" -msgstr "" -"ワイヤレスネットワーク '%s' へのアクセスにはパスワードまたは暗号キーが必要で" -"す。" +msgstr "有線ネットワーク '%s' へのアクセスにはシークレットが必要です" #: ../clients/common/nm-secret-agent-simple.c:480 msgid "DSL authentication" msgstr "DSL 認証" #: ../clients/common/nm-secret-agent-simple.c:481 -#, fuzzy, c-format +#, c-format msgid "Secrets are required for the DSL connection '%s'" -msgstr "タイプ '%s' の接続には設定が必要です" +msgstr "DSL 接続 '%s' にはシークレットが必要です" #: ../clients/common/nm-secret-agent-simple.c:489 msgid "PIN code required" @@ -6506,50 +6539,50 @@ msgstr "'%s' への接続にはパスワードが必要です。" #: ../clients/common/nm-secret-agent-simple.c:515 #, c-format msgid "Secrets are required to access the MACsec network '%s'" -msgstr "" +msgstr "MACsec ネットワーク '%s' へのアクセスにはシークレットが必要です" #: ../clients/common/nm-secret-agent-simple.c:519 msgid "MACsec PSK authentication" -msgstr "" +msgstr "MACsec PSK 認証" #: ../clients/common/nm-secret-agent-simple.c:528 msgid "MACsec EAP authentication" -msgstr "" +msgstr "MACsec EAP 認証" #: ../clients/common/nm-secret-agent-simple.c:568 msgid "VPN password required" -msgstr "PIN パスワードが必要です" +msgstr "VPN パスワードが必要です" #: ../clients/common/nm-vpn-helpers.c:48 -#, fuzzy, c-format +#, c-format msgid "unknown VPN plugin \"%s\"" -msgstr "プラグイン %s をロードできません" +msgstr "不明な VPNプラグイン '%s'" #: ../clients/common/nm-vpn-helpers.c:59 -#, fuzzy, c-format +#, c-format msgid "cannot load legacy-only VPN plugin \"%s\" for \"%s\"" -msgstr "プラグイン %s をロードできません" +msgstr "'%s' 向けレガシー専用 VPN プラグイン '%s' を読み込めません" #: ../clients/common/nm-vpn-helpers.c:64 -#, fuzzy, c-format +#, c-format msgid "" "cannot load VPN plugin \"%s\" due to missing \"%s\". Missing client plugin?" -msgstr "'%s' で VPN プラグインをロードできません: 不明なプラグイン名" +msgstr "" +"'%s' がないため VPN プラグイン '%s' を読み込めません。クライアントプラグイン" +"がありませんか?" #: ../clients/common/nm-vpn-helpers.c:69 -#, fuzzy, c-format +#, c-format msgid "failed to load VPN plugin \"%s\": %s" -msgstr "エラー: VPN プラグインのロードに失敗しました: %s。" +msgstr "VPN プラグイン '%s' の読み込みに失敗しました: %s" #: ../clients/common/nm-vpn-helpers.c:121 -#, fuzzy msgid "Certificate password" -msgstr "プライベートキーのパスワード" +msgstr "証明書のパスワード" #: ../clients/common/nm-vpn-helpers.c:122 -#, fuzzy msgid "HTTP proxy password" -msgstr "グループパスワード" +msgstr "HTTP プロキシのパスワード" #: ../clients/common/nm-vpn-helpers.c:125 #: ../clients/common/nm-vpn-helpers.c:128 @@ -6574,14 +6607,14 @@ msgid "Connecting" msgstr "接続中" #: ../clients/nm-online.c:189 -#, fuzzy, c-format +#, c-format msgid "Error: timeout creating NMClient object\n" -msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s。" +msgstr "エラー: NMClient オブジェクトの作成でタイムアウト\n" #: ../clients/nm-online.c:209 -#, fuzzy, c-format +#, c-format msgid "Error: Could not create NMClient object: %s\n" -msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s。" +msgstr "エラー: NMClient オブジェクトを作成できませんでした: %s\n" #: ../clients/nm-online.c:235 msgid "" @@ -6740,14 +6773,13 @@ msgid "VLAN connection %d" msgstr "VLAN 接続 %d" #: ../clients/tui/nm-editor-utils.c:225 ../clients/tui/nmt-page-ip-tunnel.c:136 -#, fuzzy msgid "IP tunnel" msgstr "IP トンネル" #: ../clients/tui/nm-editor-utils.c:229 -#, fuzzy, c-format +#, c-format msgid "IP tunnel connection %d" -msgstr "IP トンネル接続" +msgstr "IP トンネル接続 %d" #: ../clients/tui/nm-editor-utils.c:244 #, c-format @@ -6792,7 +6824,6 @@ msgid "Could not create editor for invalid connection '%s'." msgstr "無効な接続 '%s' のエディタを作成できませんでした。" #: ../clients/tui/nmt-editor.c:112 -#, fuzzy msgid "Edit Connection" msgstr "接続の編集" @@ -7061,39 +7092,39 @@ msgstr "この接続には IPv6 アドレス設定が必要になります" #. The order must match the NM_IP_TUNNEL_MODE_* enum #: ../clients/tui/nmt-page-ip-tunnel.c:78 msgid "IPIP" -msgstr "" +msgstr "IPIP" #: ../clients/tui/nmt-page-ip-tunnel.c:79 msgid "GRE" -msgstr "" +msgstr "GRE" #: ../clients/tui/nmt-page-ip-tunnel.c:80 msgid "SIT" -msgstr "" +msgstr "SIT" #: ../clients/tui/nmt-page-ip-tunnel.c:81 msgid "ISATAP" -msgstr "" +msgstr "ISATAP" #: ../clients/tui/nmt-page-ip-tunnel.c:82 msgid "VTI" -msgstr "" +msgstr "VTI" #: ../clients/tui/nmt-page-ip-tunnel.c:83 msgid "IP6IP6" -msgstr "" +msgstr "IP6IP6" #: ../clients/tui/nmt-page-ip-tunnel.c:84 msgid "IPIP6" -msgstr "" +msgstr "IPIP6" #: ../clients/tui/nmt-page-ip-tunnel.c:85 msgid "IP6GRE" -msgstr "" +msgstr "IP6GRE" #: ../clients/tui/nmt-page-ip-tunnel.c:86 msgid "VTI6" -msgstr "" +msgstr "VTI6" #: ../clients/tui/nmt-page-ip-tunnel.c:150 ../clients/tui/nmt-page-vlan.c:99 msgid "Parent" @@ -7101,20 +7132,19 @@ msgstr "親" #: ../clients/tui/nmt-page-ip-tunnel.c:157 msgid "Local IP" -msgstr "" +msgstr "ローカル IP" #: ../clients/tui/nmt-page-ip-tunnel.c:163 -#, fuzzy msgid "Remote IP" -msgstr "リモート: " +msgstr "リモート IP" #: ../clients/tui/nmt-page-ip-tunnel.c:169 msgid "Input key" -msgstr "" +msgstr "入力キー" #: ../clients/tui/nmt-page-ip-tunnel.c:176 msgid "Output key" -msgstr "" +msgstr "出力キー" #: ../clients/tui/nmt-page-ppp.c:131 msgid "PPP CONFIGURATION" @@ -7392,7 +7422,7 @@ msgstr "終了" #: ../clients/tui/nmtui-connect.c:416 ../clients/tui/nmtui-edit.c:120 msgid "Back" -msgstr "" +msgstr "戻る" #: ../clients/tui/nmtui-connect.c:439 #, c-format @@ -7965,7 +7995,7 @@ msgstr "無効なキー/証明書値パス \"%s\"" #: ../libnm-core/nm-keyfile-reader.c:1030 #, c-format msgid "invalid PKCS#11 URI \"%s\"" -msgstr "" +msgstr "無効な PKCS#11 URI \"%s\"" #: ../libnm-core/nm-keyfile-reader.c:1068 msgid "invalid key/cert value data:;base64, is not base64" @@ -7989,9 +8019,9 @@ msgid "invalid parity value '%s'" msgstr "無効なパリティー値 '%s'" #: ../libnm-core/nm-keyfile-reader.c:1298 -#, fuzzy, c-format +#, c-format msgid "ignoring invalid team configuration: %s" -msgstr "無効な %s ルートを無視: %s" +msgstr "無効な team 設定を無視: %s" #: ../libnm-core/nm-keyfile-reader.c:1504 #, c-format @@ -8037,19 +8067,16 @@ msgid "binary data missing" msgstr "バイナリーデータがありません" #: ../libnm-core/nm-setting-8021x.c:500 -#, fuzzy msgid "URI not NUL terminated" -msgstr "file:// URI が NUL で終了していません" +msgstr "URI が NUL でないため終了しました" #: ../libnm-core/nm-setting-8021x.c:509 -#, fuzzy msgid "URI is empty" -msgstr "file:// URI が空です" +msgstr "URI が空です" #: ../libnm-core/nm-setting-8021x.c:517 -#, fuzzy msgid "URI is not valid UTF-8" -msgstr "file:// URI が有効な UTF-8 ではありません" +msgstr "URI が有効な UTF-8 ではありません" #: ../libnm-core/nm-setting-8021x.c:753 ../libnm-util/nm-setting-8021x.c:639 msgid "CA certificate must be in X.509 format" @@ -8120,7 +8147,7 @@ msgstr "証明書が無効です: %s" #: ../libnm-core/nm-setting-8021x.c:3198 #, c-format msgid "password is not supported when certificate is not on a PKCS#11 token" -msgstr "" +msgstr "証明書が PKCS#11 トークンにない場合は、パスワードはサポートされません" #: ../libnm-core/nm-setting-8021x.c:3235 #: ../libnm-core/nm-setting-bluetooth.c:129 @@ -8178,9 +8205,8 @@ msgid "'%s' is not a valid value for the property" msgstr "'%s' は有効なプロパティの値ではありません" #: ../libnm-core/nm-setting-8021x.c:3290 -#, fuzzy msgid "invalid auth flags" -msgstr "無効なルート: %s" +msgstr "無効な auth フラグ" #: ../libnm-core/nm-setting-bluetooth.c:168 #, c-format @@ -8213,9 +8239,9 @@ msgid "'%s=%s' is incompatible with '%s > 0'" msgstr "'%s=%s' は '%s > 0' とは互換性がありません" #: ../libnm-core/nm-setting-bond.c:629 -#, fuzzy, c-format +#, c-format msgid "'%s' is not a valid for '%s' option: %s" -msgstr "'%s' は '%s' オプション用の有効な IPv4 アドレスではありません" +msgstr "'%s' は '%s' オプションに無効です: %s" #: ../libnm-core/nm-setting-bond.c:640 ../libnm-util/nm-setting-bond.c:577 #, c-format @@ -8342,11 +8368,9 @@ msgstr "" "'%s' に設定する必要があります" #: ../libnm-core/nm-setting-connection.c:1077 -#, fuzzy, c-format +#, c-format msgid "A slave connection with '%s' set to '%s' cannot have a '%s' setting" -msgstr "" -"'%s' が設定され、ポートタイプが '%s' のスレーブ接続を検出します。'%s' は " -"'%s' に設定する必要があります" +msgstr "'%s' に設定されている '%s' とのスレーブ接続には、'%s' 設定ができません" #: ../libnm-core/nm-setting-dcb.c:522 ../libnm-util/nm-setting-dcb.c:594 msgid "flags invalid" @@ -8439,12 +8463,12 @@ msgid "Missing IPv6 address" msgstr "不明な IPv6 アドレス" #: ../libnm-core/nm-setting-ip-config.c:138 -#, fuzzy, c-format +#, c-format msgid "Invalid IPv4 address '%s'" msgstr "無効な IPv4 アドレス '%s'" #: ../libnm-core/nm-setting-ip-config.c:138 -#, fuzzy, c-format +#, c-format msgid "Invalid IPv6 address '%s'" msgstr "無効な IPv6 アドレス '%s'" @@ -8464,41 +8488,40 @@ msgid "Invalid routing metric '%s'" msgstr "無効なルーティングメトリック '%s'" #: ../libnm-core/nm-setting-ip-config.c:1260 -#, fuzzy msgid "unknown attribute" -msgstr "不明な設定名" +msgstr "不明な属性" #: ../libnm-core/nm-setting-ip-config.c:1270 -#, fuzzy, c-format +#, c-format msgid "invalid attribute type '%s'" -msgstr "無効なパリティー値 '%s'" +msgstr "無効な属性タイプ '%s'" #: ../libnm-core/nm-setting-ip-config.c:1281 #, c-format msgid "attribute is not valid for a IPv4 route" -msgstr "" +msgstr "属性は IPv4 ルートには無効です" #: ../libnm-core/nm-setting-ip-config.c:1282 #, c-format msgid "attribute is not valid for a IPv6 route" -msgstr "" +msgstr "属性は IPv6 ルートには無効です" #: ../libnm-core/nm-setting-ip-config.c:1298 #: ../libnm-core/nm-setting-ip-config.c:1322 -#, fuzzy, c-format +#, c-format msgid "'%s' is not a valid IPv4 address" -msgstr "'%s' は有効な IP アドレスではありません" +msgstr "'%s' は有効な IPv4 アドレスではありません" #: ../libnm-core/nm-setting-ip-config.c:1299 #: ../libnm-core/nm-setting-ip-config.c:1323 -#, fuzzy, c-format +#, c-format msgid "'%s' is not a valid IPv6 address" -msgstr "'%s' は有効な IP アドレスではありません" +msgstr "'%s' は有効な IPv6 アドレスではありません" #: ../libnm-core/nm-setting-ip-config.c:1313 -#, fuzzy, c-format +#, c-format msgid "invalid prefix %s" -msgstr "無効なルート: %s" +msgstr "無効なプレフィックス %s" #: ../libnm-core/nm-setting-ip-config.c:2429 #, c-format @@ -8539,9 +8562,9 @@ msgid "%d. route cannot be a default route" msgstr "%d. ルートをデフォルトルートにすることはできません" #: ../libnm-core/nm-setting-ip-config.c:2523 -#, fuzzy, c-format +#, c-format msgid "a gateway is incompatible with '%s'" -msgstr "'%s=%s' は '%s > 0' とは互換性がありません" +msgstr "ゲートウェイは '%s' と互換性がありません" #: ../libnm-core/nm-setting-ip4-config.c:143 #: ../libnm-core/nm-setting-ip6-config.c:167 @@ -8577,32 +8600,29 @@ msgid "property cannot be set when dhcp-hostname is also set" msgstr "dhcp-hostname も設定されている場合は、プロパティーを設定できません" #: ../libnm-core/nm-setting-ip4-config.c:235 -#, fuzzy, c-format +#, c-format msgid "multiple addresses are not allowed for '%s=%s'" -msgstr "このプロパティは '%s=%s' には許可されていません" +msgstr "'%s=%s' では複数のアドレスは許可されていません" #: ../libnm-core/nm-setting-ip4-config.c:249 -#, fuzzy msgid "property should be TRUE when method is set to disabled" -msgstr "プロパティータイプは '%s' に設定する必要があります" +msgstr "メソッドが無効に設定されている場合は、プロパティーは TRUE にします" #: ../libnm-core/nm-setting-ip6-config.c:241 -#, fuzzy msgid "value is not a valid token" -msgstr "値 '%s' は有効な UUID ではありません" +msgstr "値 は有効なトークンではありません" #: ../libnm-core/nm-setting-ip6-config.c:252 -#, fuzzy msgid "only makes sense with EUI64 address generation mode" -msgstr "IPv6 SLAAC アドレス生成モード" +msgstr "EUI64 アドレス生成モードでのみ、意味が通じます" #: ../libnm-core/nm-setting-ip6-config.c:264 msgid "token is not in canonical form" -msgstr "" +msgstr "トークンが正規形式ではありません" #: ../libnm-core/nm-setting-ip6-config.c:276 msgid "property should be TRUE when method is set to ignore" -msgstr "" +msgstr "メソッドが ignore に設定されている場合は、プロパティーは TRUE にします" #: ../libnm-core/nm-setting-ip-tunnel.c:318 #, c-format @@ -8639,17 +8659,16 @@ msgstr "固定 TTL は、パス MTU 検出が有効な場合のみ許可され #: ../libnm-core/nm-setting-macsec.c:235 msgid "the key is empty" -msgstr "" +msgstr "キーが空です" #: ../libnm-core/nm-setting-macsec.c:246 #, c-format msgid "the key must be %d characters" -msgstr "" +msgstr "キーは %d 文字にする必要があります" #: ../libnm-core/nm-setting-macsec.c:254 -#, fuzzy msgid "the key contains non-hexadecimal characters" -msgstr "IV は 16進法でない数字を含んでいます。" +msgstr "キーは 16進法でない文字が含まれています" #: ../libnm-core/nm-setting-macsec.c:291 ../libnm-core/nm-setting-vlan.c:634 #: ../libnm-util/nm-setting-vlan.c:556 @@ -8666,12 +8685,12 @@ msgstr "プロパティ、'%s:%s' いずれも指定されていません" #: ../libnm-core/nm-setting-macsec.c:333 #, c-format msgid "EAP key management requires '%s' setting presence" -msgstr "" +msgstr "EAP キー管理には '%s' 設定が必要です" #: ../libnm-core/nm-setting-macsec.c:344 #, c-format msgid "invalid port %d" -msgstr "" +msgstr "無効なポート %d" #: ../libnm-core/nm-setting-macvlan.c:192 msgid "non promiscuous operation is allowed only in passthru mode" @@ -8703,34 +8722,34 @@ msgid "setting this property requires non-zero '%s' property" msgstr "このプロパティを設定するにはゼロ以外の '%s' プロパティが必要です" #: ../libnm-core/nm-setting-proxy.c:163 -#, fuzzy, c-format +#, c-format msgid "invalid proxy method" -msgstr "無効な優先度マップ '%s'" +msgstr "無効なプロキシメソッド" #: ../libnm-core/nm-setting-proxy.c:173 ../libnm-core/nm-setting-proxy.c:182 -#, fuzzy, c-format +#, c-format msgid "this property is not allowed for method none" -msgstr "このプロパティは '%s=%s' には許可されていません" +msgstr "このプロパティはメソッド none には許可されていません" #: ../libnm-core/nm-setting-proxy.c:193 #, c-format msgid "the script is too large" -msgstr "" +msgstr "スクリプトが長すぎます" #: ../libnm-core/nm-setting-proxy.c:201 -#, fuzzy, c-format +#, c-format msgid "the script is not valid utf8" -msgstr "インデックス '%s' は無効です" +msgstr "スクリプトは有効な utf8 ではありません" #: ../libnm-core/nm-setting-proxy.c:209 #, c-format msgid "the script lacks FindProxyForURL function" -msgstr "" +msgstr "スクリプトには FindProxyForURL 関数がありません" #: ../libnm-core/nm-setting-team.c:94 ../libnm-core/nm-setting-team-port.c:122 #, c-format msgid "team config exceeds size limit" -msgstr "" +msgstr "team 設定が制限サイズを超えています" #: ../libnm-core/nm-setting-tun.c:187 #, c-format @@ -8748,66 +8767,59 @@ msgid "'%s': invalid group ID" msgstr "'%s': 無効なグループ ID" #: ../libnm-core/nm-setting-user.c:111 -#, fuzzy msgid "missing key" -msgstr "不明な設定" +msgstr "キーがみつかりません" #: ../libnm-core/nm-setting-user.c:117 -#, fuzzy msgid "key is too long" -msgstr "エラー: ssid が長すぎます。" +msgstr "キーが長すぎます" #: ../libnm-core/nm-setting-user.c:122 -#, fuzzy msgid "key must be UTF8" -msgstr "パスワードは UTF-8 である必要があります" +msgstr "キーは UTF-8 である必要があります" #: ../libnm-core/nm-setting-user.c:145 msgid "key requires a '.' for a namespace" -msgstr "" +msgstr "キーはネームスペースに '.' が必要です" #: ../libnm-core/nm-setting-user.c:158 msgid "key cannot contain \"..\"" -msgstr "" +msgstr "キーに \"..\" を含めることはできません" #: ../libnm-core/nm-setting-user.c:163 -#, fuzzy msgid "key contains invalid characters" -msgstr "IV は 16進法でない数字を含んでいます。" +msgstr "キーに無効な文字が含まれています" #: ../libnm-core/nm-setting-user.c:188 -#, fuzzy msgid "value is missing" -msgstr "エラー: %s 引数がありません。" +msgstr "値がありません" #: ../libnm-core/nm-setting-user.c:195 -#, fuzzy msgid "value is too large" -msgstr "シークレット値が空でした" +msgstr "値が長すぎます" #: ../libnm-core/nm-setting-user.c:201 -#, fuzzy msgid "value is not valid UTF8" -msgstr "file:// URI が有効な UTF-8 ではありません" +msgstr "値が有効な UTF-8 ではありません" #: ../libnm-core/nm-setting-user.c:338 msgid "maximum number of user data entries reached" -msgstr "" +msgstr "ユーザーデータエントリーが最大数に達しました" #: ../libnm-core/nm-setting-user.c:379 -#, fuzzy, c-format +#, c-format msgid "invalid key \"%s\": %s" -msgstr "無効なルート: %s" +msgstr "無効なキー '%s': %s" #: ../libnm-core/nm-setting-user.c:383 -#, fuzzy, c-format +#, c-format msgid "invalid value for \"%s\": %s" -msgstr "'%s' は有効な '%s' の値ではありません" +msgstr "'%s' の無効な値: %s" #: ../libnm-core/nm-setting-user.c:398 #, c-format msgid "maximum number of user data entries reached (%u instead of %u)" -msgstr "" +msgstr "ユーザーデータエントリーが最大数に達しました (%u ではなく %u)" #: ../libnm-core/nm-setting-vlan.c:670 ../libnm-util/nm-setting-vlan.c:600 #, c-format @@ -8820,7 +8832,7 @@ msgstr "フラグが無効です" #: ../libnm-core/nm-setting-vlan.c:691 msgid "vlan setting should have a ethernet setting as well" -msgstr "" +msgstr "vlan 設定にはイーサネット設定も必要です" #: ../libnm-core/nm-setting-vpn.c:460 #, c-format @@ -8865,9 +8877,9 @@ msgid "%d is greater than local port max %d" msgstr "%d はローカルポートの最大 %d よりも大きいです" #: ../libnm-core/nm-setting-wired.c:632 ../libnm-util/nm-setting-wired.c:613 -#, fuzzy, c-format +#, c-format msgid "'%s' is not a valid Ethernet port value" -msgstr "'%s' は有効な Ethernet ポート値ではありません" +msgstr "'%s' は有効なイーサネットポート値ではありません" #: ../libnm-core/nm-setting-wired.c:642 ../libnm-util/nm-setting-wired.c:623 #, c-format @@ -8889,16 +8901,15 @@ msgstr "Wake-on-LAN パスワードはマジックパケットモードでのみ #: ../libnm-core/nm-setting-wired.c:770 msgid "when link autonegotiation is enabled no duplex value is accepted" -msgstr "" +msgstr "リンク autonegotiation が有効になっていると、二重値は承認されません" #: ../libnm-core/nm-setting-wired.c:778 msgid "when link autonegotiation is enabled speed should be 0" -msgstr "" +msgstr "リンク autonegotiation が有効になっている場合は、スピードは 0 にします" #: ../libnm-core/nm-setting-wired.c:788 -#, fuzzy msgid "both speed and duplex are required for static link configuration" -msgstr "VPN サービスは無効な設定を返しました" +msgstr "スピードと二重の両方が静的リンク設定に必要です" #: ../libnm-core/nm-setting-wireless-security.c:882 #: ../libnm-util/nm-setting-wireless-security.c:912 @@ -8948,14 +8959,14 @@ msgid "'%s' requires setting '%s' property" msgstr "'%s' の場合は '%s' プロパティーを設定する必要があります" #: ../libnm-core/nm-setting-wireless.c:883 -#, fuzzy, c-format +#, c-format msgid "invalid value" -msgstr "無効なキー/証明書値" +msgstr "無効な値" #: ../libnm-core/nm-setting-wireless.c:904 #, c-format msgid "conflicting value of mac-address-randomization and cloned-mac-address" -msgstr "" +msgstr "mac-address-randomization と cloned-mac-address の値の競合" #: ../libnm-core/nm-setting.c:838 #, c-format @@ -9001,9 +9012,9 @@ msgid "not a file (%s)" msgstr "ファイルではありません (%s)" #: ../libnm-core/nm-utils.c:2464 -#, fuzzy, c-format +#, c-format msgid "invalid file owner %d for %s" -msgstr "'%s' は無効なフィールドです; 許可されているのは次のフィールドです: %s" +msgstr "'%s' の無効なファイル所有者 %d" #: ../libnm-core/nm-utils.c:2475 #, c-format @@ -9041,94 +9052,91 @@ msgid "Could not find \"%s\" binary" msgstr "\"%s\" バイナリーを見つけることができませんでした" #: ../libnm-core/nm-utils.c:3665 -#, fuzzy, c-format +#, c-format msgid "not a valid ethernet MAC address for mask at position %lld" -msgstr "'%s' は '%s' オプション用の有効な IPv4 アドレスではありません" +msgstr "%lld の場所でマスク用に有効なイーサネット MAC アドレスではありません" #: ../libnm-core/nm-utils.c:3680 #, c-format msgid "not a valid ethernet MAC address #%u at position %lld" -msgstr "" +msgstr "%lld の場所で有効なイーサネット MAC アドレス #%u ではありません" #: ../libnm-core/nm-utils.c:3714 -#, fuzzy msgid "interface name is too short" -msgstr "インターフェース名 [*]: " +msgstr "インターフェース名が短すぎます" #: ../libnm-core/nm-utils.c:3720 msgid "interface name is longer than 15 characters" -msgstr "" +msgstr "インターフェース名が 15 文字を超えています" #: ../libnm-core/nm-utils.c:3726 -#, fuzzy msgid "interface name is reserved" -msgstr "インターフェース名と UUID が’必要です\n" +msgstr "インターフェース名が予約されています" #: ../libnm-core/nm-utils.c:3733 msgid "interface name contains an invalid character" -msgstr "" +msgstr "インターフェース名に無効な文字が含まれています" #: ../libnm-core/nm-utils.c:4534 ../libnm-core/nm-utils.c:4668 msgid "value is NULL" -msgstr "" +msgstr "値が NULL です" #: ../libnm-core/nm-utils.c:4534 ../libnm-core/nm-utils.c:4668 -#, fuzzy msgid "value is empty" -msgstr "シークレット値が空でした" +msgstr "値が空です" #: ../libnm-core/nm-utils.c:4543 -#, fuzzy, c-format +#, c-format msgid "invalid JSON at position %d (%s)" -msgstr "無効なオプション '%s'" +msgstr "%d (%s) で無効な JSON" #: ../libnm-core/nm-utils.c:4555 ../libnm-core/nm-utils.c:4687 msgid "is not a JSON object" -msgstr "" +msgstr "JSON オブジェクトではありません" #: ../libnm-core/nm-utils.c:4657 msgid "not valid utf-8" -msgstr "" +msgstr "utf-8 ではありません" #: ../libnm-core/nm-utils.c:4782 ../libnm-core/nm-utils.c:4800 #, c-format msgid "unterminated escape sequence" -msgstr "" +msgstr "未終了のエスケープシーケンス" #: ../libnm-core/nm-utils.c:4810 #, c-format msgid "missing key-value separator '%c'" -msgstr "" +msgstr "キー-値のセパレーター '%c' がありません" #: ../libnm-core/nm-utils.c:4827 -#, fuzzy, c-format +#, c-format msgid "unknown attribute '%s'" -msgstr "不明なデバイス '%s' です。" +msgstr "不明な属性 '%s'" #: ../libnm-core/nm-utils.c:4837 -#, fuzzy, c-format +#, c-format msgid "invalid uint32 value '%s' for attribute '%s'" -msgstr "無効なオプション '%s'、またはその値 '%s' です" +msgstr "属性 '%s' の無効な uint32 値 '%s'" #: ../libnm-core/nm-utils.c:4846 -#, fuzzy, c-format +#, c-format msgid "invalid uint8 value '%s' for attribute '%s'" -msgstr "無効なオプション '%s'、またはその値 '%s' です" +msgstr "属性 '%s' の無効な uint8 値 '%s'" #: ../libnm-core/nm-utils.c:4859 -#, fuzzy, c-format +#, c-format msgid "invalid boolean value '%s' for attribute '%s'" -msgstr "無効なオプション '%s'、またはその値 '%s' です" +msgstr "属性 '%s' の無効なブール値 '%s'" #: ../libnm-core/nm-utils.c:4867 #, c-format msgid "unsupported attribute '%s' of type '%s'" -msgstr "" +msgstr "タイプ '%s' のサポートされていない属性 '%s'" #: ../libnm-core/nm-vpn-editor-plugin.c:296 -#, fuzzy, c-format +#, c-format msgid "cannot load plugin \"%s\": %s" -msgstr "プラグイン %s をロードできません" +msgstr "プラグイン '%s' を読み込めません: %s" #: ../libnm-core/nm-vpn-editor-plugin.c:307 #, c-format @@ -9389,9 +9397,8 @@ msgid "" msgstr "デバイスには接続に必要な Bluetooth 機能がありません。" #: ../libnm/nm-device-dummy.c:46 -#, fuzzy msgid "The connection was not a dummy connection." -msgstr "接続はモデム接続ではありませんでした。" +msgstr "接続はダミー接続ではありませんでした。" #: ../libnm/nm-device-dummy.c:53 ../libnm/nm-device-generic.c:97 msgid "The connection did not specify an interface name." @@ -9406,9 +9413,9 @@ msgid "The connection and device differ in S390 subchannels." msgstr "接続とデバイスは S390 サブチャネルで異なります。" #: ../libnm/nm-device-ethernet.c:236 -#, fuzzy, c-format +#, c-format msgid "Invalid device MAC address %s." -msgstr "無効なデバイス MAC アドレスです。" +msgstr "無効なデバイス MAC アドレス %s。" #: ../libnm/nm-device-ethernet.c:241 msgid "The MACs of the device and the connection do not match." @@ -9516,11 +9523,11 @@ msgstr "接続は WiMAX 接続ではありませんでした。" #: ../libnm/nm-device.c:1651 msgid "MACsec" -msgstr "" +msgstr "MACsec" #: ../libnm/nm-device.c:1653 msgid "Dummy" -msgstr "" +msgstr "ダミー" #: ../libnm/nm-device.c:2544 #, c-format @@ -9555,16 +9562,12 @@ msgstr "" "れます" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:3 -#, fuzzy msgid "Reload NetworkManager configuration" -msgstr "NetworkManager の設定を表示して終了する" +msgstr "NetworkManager 設定をリロード" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:4 -#, fuzzy msgid "System policy prevents reloading NetworkManager" -msgstr "" -"システムポリシーによりシステムのネットワーキングの有効化または無効化が阻止さ" -"れます" +msgstr "システムポリシーにより NetworkManager のリロードが回避されます" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:5 msgid "" @@ -9674,23 +9677,21 @@ msgstr "システムポリシーにより永続的なグローバル DNS 設定 #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:27 msgid "Perform a checkpoint or rollback of interfaces configuration" -msgstr "" +msgstr "インターフェース設定のチェックポイントまたはロールバックを実行" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:28 -#, fuzzy msgid "System policy prevents the creation of a checkpoint or its rollback" -msgstr "システムポリシーにより永続的なシステムのホスト名の修正が阻止されます" +msgstr "" +"システムポリシーによりチェックポイントまたはそのロールバックの作成が回避され" +"ます" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:29 -#, fuzzy msgid "Enable or disable device statistics" -msgstr "Wi-Fi デバイスを有効または無効にする" +msgstr "デバイスの統計値を有効または無効にする" #: ../data/org.freedesktop.NetworkManager.policy.in.in.h:30 -#, fuzzy msgid "System policy prevents enabling or disabling device statistics" -msgstr "" -"システムポリシーにより Wi-Fi デバイスの有効化または無効化が阻止されます" +msgstr "システムポリシーによりデバイス統計値の有効化または無効化が阻止されます" #: ../shared/nm-utils/nm-shared-utils.c:312 #, c-format @@ -9913,9 +9914,8 @@ msgid "Bridge connection" msgstr "ブリッジ接続" #: ../src/devices/nm-device-dummy.c:70 -#, fuzzy msgid "Dummy connection" -msgstr "ADSL 接続" +msgstr "ダミー接続" #: ../src/devices/nm-device-ethernet.c:1435 msgid "PPPoE connection" @@ -10173,9 +10173,8 @@ msgid "Connection UUID" msgstr "接続 UUID" #: ../src/nm-iface-helper.c:293 -#, fuzzy msgid "Connection Token for Stable IDs" -msgstr "接続プロファイルの詳細" +msgstr "安定 ID の接続トークン" #: ../src/nm-iface-helper.c:294 msgid "Whether to manage IPv6 SLAAC" @@ -10281,16 +10280,3 @@ msgstr "不明なログレベル '%s'" #, c-format msgid "Unknown log domain '%s'" msgstr "不明なログドメイン '%s'" - -#, fuzzy -#~ msgid "unrecognized option '%s'" -#~ msgstr "無効なオプション '%s'" - -#~ msgid "Option '--terse' requires specifying '--fields'" -#~ msgstr "オプション '--terse' には '--fields' の指定が必要です" - -#~ msgid "" -#~ "Option '--terse' requires specific '--fields' option values , not '%s'" -#~ msgstr "" -#~ "オプション'--terse' には特定の '--fields' オプションの値が必要で、 '%s' で" -#~ "はありません" diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h index 6ca66d29..5fe4bc50 100644 --- a/shared/nm-utils/nm-macros-internal.h +++ b/shared/nm-utils/nm-macros-internal.h @@ -609,18 +609,13 @@ nm_clear_g_cancellable (GCancellable **cancellable) /*****************************************************************************/ /* Determine whether @x is a power of two (@x being an integer type). - * For the special cases @x equals zero or one, it also returns true. - * In case @x being a signed type, for negative @x always return FALSE. */ + * Basically, this returns TRUE, if @x has exactly one bit set. + * For negative values and zero, this always returns FALSE. */ #define nm_utils_is_power_of_two(x) ({ \ typeof(x) __x = (x); \ \ - /* Check if the value is negative. In that case, return FALSE. - * The first expression is a compile time constant, depending on whether - * the type is signed. The second expression is a clumsy way for (__x >= 0), - * which otherwise causes a compiler warning for unsigned types. */ \ - ( (((typeof(__x)) -1) > ((typeof(__x)) 0)) \ - || (__x > 0 || __x == 0) ) \ - && ((__x & (__x - 1)) == 0); \ + ( (__x > ((typeof(__x)) 0)) \ + && ((__x & (__x - (((typeof(__x)) 1)))) == ((typeof(__x)) 0))); \ }) /*****************************************************************************/ diff --git a/shared/nm-utils/nm-shared-utils.c b/shared/nm-utils/nm-shared-utils.c index 413526dc..e7f31cbc 100644 --- a/shared/nm-utils/nm-shared-utils.c +++ b/shared/nm-utils/nm-shared-utils.c @@ -364,3 +364,141 @@ nm_g_object_set_property (GObject *object, } /*****************************************************************************/ + +static void +_str_append_escape (GString *s, char ch) +{ + g_string_append_c (s, '\\'); + g_string_append_c (s, '0' + ((((guchar) ch) >> 6) & 07)); + g_string_append_c (s, '0' + ((((guchar) ch) >> 3) & 07)); + g_string_append_c (s, '0' + ( ((guchar) ch) & 07)); +} + +/** + * nm_utils_str_utf8safe_escape: + * @str: NUL terminated input string, possibly in utf-8 encoding + * @flags: #NMUtilsStrUtf8SafeFlags flags + * @to_free: (out): return the pointer location of the string + * if a copying was necessary. + * + * Returns the possible non-UTF-8 NUL terminated string @str + * and uses backslash escaping (C escaping, like g_strescape()) + * to sanitize non UTF-8 characters. The result is valid + * UTF-8. + * + * The operation can be reverted with g_strcompress() or + * nm_utils_str_utf8safe_unescape(). + * + * Depending on @flags, valid UTF-8 characters are not escaped at all + * (except the escape character '\\'). This is the difference to g_strescape(), + * which escapes all non-ASCII characters. This allows to pass on + * valid UTF-8 characters as-is and can be directly shown to the user + * as UTF-8 -- with exception of the backslash escape character, + * invalid UTF-8 sequences, and other (depending on @flags). + * + * Returns: the escaped input string, as valid UTF-8. If no escaping + * is necessary, it returns the input @str. Otherwise, an allocated + * string @to_free is returned which must be freed by the caller + * with g_free. The escaping can be reverted by g_strcompress(). + **/ +const char * +nm_utils_str_utf8safe_escape (const char *str, NMUtilsStrUtf8SafeFlags flags, char **to_free) +{ + const char *p = NULL; + GString *s; + + g_return_val_if_fail (to_free, NULL); + + *to_free = NULL; + if (!str || !str[0]) + return str; + + if ( g_utf8_validate (str, -1, &p) + && !NM_STRCHAR_ANY (str, ch, + ( ch == '\\' \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL) \ + && ch < ' ') \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII) \ + && ((guchar) ch) >= 127)))) + return str; + + s = g_string_sized_new ((p - str) + strlen (p) + 5); + + do { + for (; str < p; str++) { + char ch = str[0]; + + if (ch == '\\') + g_string_append (s, "\\\\"); + else if ( ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL) \ + && ch < ' ') \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII) \ + && ((guchar) ch) >= 127)) + _str_append_escape (s, ch); + else + g_string_append_c (s, ch); + } + + if (p[0] == '\0') + break; + _str_append_escape (s, p[0]); + + str = &p[1]; + g_utf8_validate (str, -1, &p); + } while (TRUE); + + *to_free = g_string_free (s, FALSE); + return *to_free; +} + +const char * +nm_utils_str_utf8safe_unescape (const char *str, char **to_free) +{ + g_return_val_if_fail (to_free, NULL); + + if (!str || !strchr (str, '\\')) { + *to_free = NULL; + return str; + } + return (*to_free = g_strcompress (str)); +} + +/** + * nm_utils_str_utf8safe_escape_cp: + * @str: NUL terminated input string, possibly in utf-8 encoding + * @flags: #NMUtilsStrUtf8SafeFlags flags + * + * Like nm_utils_str_utf8safe_escape(), except the returned value + * is always a copy of the input and must be freed by the caller. + * + * Returns: the escaped input string in UTF-8 encoding. The returned + * value should be freed with g_free(). + * The escaping can be reverted by g_strcompress(). + **/ +char * +nm_utils_str_utf8safe_escape_cp (const char *str, NMUtilsStrUtf8SafeFlags flags) +{ + char *s; + + nm_utils_str_utf8safe_escape (str, flags, &s); + return s ?: g_strdup (str); +} + +char * +nm_utils_str_utf8safe_unescape_cp (const char *str) +{ + return str ? g_strcompress (str) : NULL; +} + +char * +nm_utils_str_utf8safe_escape_take (char *str, NMUtilsStrUtf8SafeFlags flags) +{ + char *str_to_free; + + nm_utils_str_utf8safe_escape (str, flags, &str_to_free); + if (str_to_free) { + g_free (str); + return str_to_free; + } + return str; +} diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h index f1f9f518..69f9533d 100644 --- a/shared/nm-utils/nm-shared-utils.h +++ b/shared/nm-utils/nm-shared-utils.h @@ -86,4 +86,20 @@ gboolean nm_g_object_set_property (GObject *object, /*****************************************************************************/ +typedef enum { + NM_UTILS_STR_UTF8_SAFE_FLAG_NONE = 0, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL = 0x0001, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII = 0x0002, +} NMUtilsStrUtf8SafeFlags; + +const char *nm_utils_str_utf8safe_escape (const char *str, NMUtilsStrUtf8SafeFlags flags, char **to_free); +const char *nm_utils_str_utf8safe_unescape (const char *str, char **to_free); + +char *nm_utils_str_utf8safe_escape_cp (const char *str, NMUtilsStrUtf8SafeFlags flags); +char *nm_utils_str_utf8safe_unescape_cp (const char *str); + +char *nm_utils_str_utf8safe_escape_take (char *str, NMUtilsStrUtf8SafeFlags flags); + +/*****************************************************************************/ + #endif /* __NM_SHARED_UTILS_H__ */ diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h index 0dfdfce6..bc521131 100644 --- a/shared/nm-utils/nm-test-utils.h +++ b/shared/nm-utils/nm-test-utils.h @@ -1183,6 +1183,15 @@ nmtst_file_get_contents (const char *filename) return contents; } +#define nmtst_file_set_contents(filename, content) \ + G_STMT_START { \ + GError *_error = NULL; \ + gboolean _success; \ + \ + _success = g_file_set_contents ((filename), (content), -1, &_error); \ + nmtst_assert_success (_success, _error); \ + } G_STMT_END + /*****************************************************************************/ static inline void diff --git a/shared/nm-utils/nm-udev-utils.c b/shared/nm-utils/nm-udev-utils.c index 5552d592..79d4426d 100644 --- a/shared/nm-utils/nm-udev-utils.c +++ b/shared/nm-utils/nm-udev-utils.c @@ -67,8 +67,9 @@ nm_udev_utils_property_decode (const char *uproperty, char **to_free) if ( p[0] == '\\' && p[1] == 'x' && (a = g_ascii_xdigit_value (p[2])) >= 0 - && (b = g_ascii_xdigit_value (p[3])) >= 0) { - if (!unescaped) { + && (b = g_ascii_xdigit_value (p[3])) >= 0 + && (a || b)) { + if (!n) { gssize l = p - uproperty; unescaped = g_malloc (l + strlen (p) + 1 - 3); @@ -84,11 +85,12 @@ nm_udev_utils_property_decode (const char *uproperty, char **to_free) } } - if (!unescaped) { + if (!n) { *to_free = NULL; return uproperty; } + *n++ = '\0'; return (*to_free = unescaped); } @@ -144,7 +146,7 @@ nm_udev_utils_enumerate (struct udev *uclient, for (n = 0; subsystems[n]; n++) { const char *subsystem; const char *devtype; - gs_free char *to_free; + gs_free char *to_free = NULL; _subsystem_split (subsystems[n], &subsystem, &devtype, &to_free); @@ -240,7 +242,7 @@ nm_udev_client_new (const char *const*subsystems, /* install subsystem filters to only wake up for certain events */ for (n = 0; self->subsystems[n]; n++) { if (self->monitor) { - gs_free char *to_free; + gs_free char *to_free = NULL; const char *subsystem; const char *devtype; diff --git a/shared/nm-version-macros.h b/shared/nm-version-macros.h index a0b61c6f..e7a2f329 100644 --- a/shared/nm-version-macros.h +++ b/shared/nm-version-macros.h @@ -45,7 +45,7 @@ * Evaluates to the micro version number of NetworkManager which this source * compiled against. */ -#define NM_MICRO_VERSION (0) +#define NM_MICRO_VERSION (2) /** * NM_CHECK_VERSION: diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c index ebfa0d64..41ef74ca 100644 --- a/src/devices/bluetooth/nm-bluez-device.c +++ b/src/devices/bluetooth/nm-bluez-device.c @@ -1187,7 +1187,11 @@ dispose (GObject *object) g_slist_free_full (priv->connections, g_object_unref); priv->connections = NULL; - g_clear_object (&priv->adapter5); + if (priv->adapter5) { + g_signal_handlers_disconnect_by_func (priv->adapter5, adapter5_on_properties_changed, self); + g_clear_object (&priv->adapter5); + } + g_clear_object (&priv->dbus_connection); G_OBJECT_CLASS (nm_bluez_device_parent_class)->dispose (object); diff --git a/src/devices/nm-device-bond.c b/src/devices/nm-device-bond.c index 3325c948..d9c2ca64 100644 --- a/src/devices/nm-device-bond.c +++ b/src/devices/nm-device-bond.c @@ -137,17 +137,22 @@ set_bond_attr (NMDevice *device, NMBondMode mode, const char *attr, const char * return ret; } -/* Ignore certain bond options if they are zero (off/disabled) */ static gboolean -ignore_if_zero (const char *option, const char *value) +ignore_option (NMSettingBond *s_bond, const char *option, const char *value) { - if (!NM_IN_STRSET (option, NM_SETTING_BOND_OPTION_ARP_INTERVAL, - NM_SETTING_BOND_OPTION_DOWNDELAY, - NM_SETTING_BOND_OPTION_MIIMON, - NM_SETTING_BOND_OPTION_UPDELAY)) - return FALSE; + const char *defvalue; + + if (nm_streq0 (option, NM_SETTING_BOND_OPTION_MIIMON)) { + /* The default value for miimon, when missing in the setting, is + * 0 if arp_interval is != 0, and 100 otherwise. So, let's ignore + * miimon=0 (which means that miimon is disabled) and accept any + * other value. Adding miimon=100 does not cause any harm. + */ + defvalue = "0"; + } else + defvalue = nm_setting_bond_get_option_default (s_bond, option); - return g_strcmp0 (value, "0") == 0 ? TRUE : FALSE; + return nm_streq0 (value, defvalue); } static void @@ -155,6 +160,7 @@ update_connection (NMDevice *device, NMConnection *connection) { NMSettingBond *s_bond = nm_connection_get_setting_bond (connection); int ifindex = nm_device_get_ifindex (device); + NMBondMode mode = NM_BOND_MODE_UNKNOWN; const char **options; if (!s_bond) { @@ -164,9 +170,8 @@ update_connection (NMDevice *device, NMConnection *connection) /* Read bond options from sysfs and update the Bond setting to match */ options = nm_setting_bond_get_valid_options (s_bond); - while (options && *options) { + for (; *options; options++) { gs_free char *value = nm_platform_sysctl_master_get_option (nm_device_get_platform (device), ifindex, *options); - const char *defvalue = nm_setting_bond_get_option_default (s_bond, *options); char *p; if ( value @@ -176,10 +181,15 @@ update_connection (NMDevice *device, NMConnection *connection) *p = '\0'; } + if (value && nm_streq (*options, NM_SETTING_BOND_OPTION_MODE)) + mode = _nm_setting_bond_mode_from_string (value); + + if (!_nm_setting_bond_option_supported (*options, mode)) + continue; + if ( value && value[0] - && !ignore_if_zero (*options, value) - && !nm_streq0 (value, defvalue)) { + && !ignore_option (s_bond, *options, value)) { /* Replace " " with "," for arp_ip_targets from the kernel */ if (strcmp (*options, NM_SETTING_BOND_OPTION_ARP_IP_TARGET) == 0) { for (p = value; *p; p++) { @@ -190,7 +200,6 @@ update_connection (NMDevice *device, NMConnection *connection) nm_setting_bond_add_option (s_bond, *options, value); } - options++; } } diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index 4c5aeb5e..8a04d401 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -1597,12 +1597,11 @@ get_link_speed (NMDevice *device) } static void -carrier_changed (NMDevice *device, gboolean carrier) +carrier_changed_notify (NMDevice *device, gboolean carrier) { if (carrier) get_link_speed (device); - - NM_DEVICE_CLASS (nm_device_ethernet_parent_class)->carrier_changed (device, carrier); + NM_DEVICE_CLASS (nm_device_ethernet_parent_class)->carrier_changed_notify (device, carrier); } static void @@ -1764,7 +1763,7 @@ nm_device_ethernet_class_init (NMDeviceEthernetClass *klass) parent_class->deactivate = deactivate; parent_class->get_s390_subchannels = get_s390_subchannels; parent_class->update_connection = update_connection; - parent_class->carrier_changed = carrier_changed; + parent_class->carrier_changed_notify = carrier_changed_notify; parent_class->link_changed = link_changed; parent_class->is_available = is_available; parent_class->can_reapply_change = can_reapply_change; diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c index f7875d09..7e041270 100644 --- a/src/devices/nm-device-infiniband.c +++ b/src/devices/nm-device-infiniband.c @@ -139,7 +139,7 @@ get_configured_mtu (NMDevice *device, gboolean *out_is_user_config) } } *out_is_user_config = (mtu != 0); - return mtu ?: NM_DEVICE_DEFAULT_MTU_INFINIBAND; + return mtu; } static gboolean diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c index 53b7cf4e..2f505ef4 100644 --- a/src/devices/nm-device-ip-tunnel.c +++ b/src/devices/nm-device-ip-tunnel.c @@ -767,7 +767,7 @@ get_configured_mtu (NMDevice *self, gboolean *out_is_user_config) } } *out_is_user_config = (mtu != 0); - return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRED; + return mtu; } static NMDeviceCapabilities diff --git a/src/devices/nm-device-logging.h b/src/devices/nm-device-logging.h index 419a4a51..f0c7e591 100644 --- a/src/devices/nm-device-logging.h +++ b/src/devices/nm-device-logging.h @@ -34,11 +34,21 @@ _nm_device_log_self_to_device (t *self) \ #undef _NMLOG_ENABLED #define _NMLOG_ENABLED(level, domain) ( nm_logging_enabled ((level), (domain)) ) #define _NMLOG(level, domain, ...) \ - nm_log_obj ((level), (domain), \ - (self) ? nm_device_get_iface (_nm_device_log_self_to_device (self)) : NULL, \ - NULL, (self), "device", \ - "(%s): " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - (self) ? (nm_device_get_iface (_nm_device_log_self_to_device (self)) ?: "(null)") : "(none)" \ - _NM_UTILS_MACRO_REST(__VA_ARGS__)) + G_STMT_START { \ + const NMLogLevel _level = (level); \ + const NMLogDomain _domain = (domain); \ + \ + if (nm_logging_enabled (_level, _domain)) { \ + typeof (*self) *const _self = (self); \ + const char *const _ifname = _nm_device_get_iface (_nm_device_log_self_to_device (_self)); \ + \ + nm_log_obj (_level, _domain, \ + _ifname, NULL, \ + _self, "device", \ + "%s%s%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + NM_PRINT_FMT_QUOTED (_ifname, "(", _ifname, ")", "[null]") \ + _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + } G_STMT_END #endif /* __NETWORKMANAGER_DEVICE_LOGGING_H__ */ diff --git a/src/devices/nm-device-private.h b/src/devices/nm-device-private.h index a4067f9c..9eccafdc 100644 --- a/src/devices/nm-device-private.h +++ b/src/devices/nm-device-private.h @@ -116,10 +116,6 @@ gboolean nm_device_ipv6_sysctl_set (NMDevice *self, const char *property, const /*****************************************************************************/ -#define NM_DEVICE_DEFAULT_MTU_WIRED ((guint32) 1500) -#define NM_DEVICE_DEFAULT_MTU_WIRELESS ((guint32) 1500) -#define NM_DEVICE_DEFAULT_MTU_INFINIBAND ((guint32) 0) - gint64 nm_device_get_configured_mtu_from_connection_default (NMDevice *self, const char *property_name); diff --git a/src/devices/nm-device-vlan.c b/src/devices/nm-device-vlan.c index 06db6446..a74da8f2 100644 --- a/src/devices/nm-device-vlan.c +++ b/src/devices/nm-device-vlan.c @@ -586,7 +586,7 @@ get_configured_mtu (NMDevice *self, gboolean *out_is_user_config) if (ifindex > 0) mtu = nm_platform_link_get_mtu (nm_device_get_platform (NM_DEVICE (self)), ifindex); - return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRED; + return mtu; } /*****************************************************************************/ diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index da581a0d..fbf315ed 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -262,7 +262,10 @@ typedef struct _NMDevicePrivate { NMUtilsStableType current_stable_id_type:3; - bool is_nm_owned:1; /* whether the device is a device owned and created by NM */ + bool nm_owned:1; /* whether the device is a device owned and created by NM */ + + bool assume_state_guess_assume:1; + char * assume_state_connection_uuid; GHashTable * available_connections; char * hw_addr; @@ -527,6 +530,9 @@ static gboolean dhcp6_start (NMDevice *self, gboolean wait_for_ll); static void nm_device_start_ip_check (NMDevice *self); static void realize_start_setup (NMDevice *self, const NMPlatformLink *plink, + gboolean assume_state_guess_assume, + const char *assume_state_connection_uuid, + gboolean set_nm_owned, NMUnmanFlagOp unmanaged_user_explicit); static void _commit_mtu (NMDevice *self, const NMIP4Config *config); static void dhcp_schedule_restart (NMDevice *self, int family, const char *reason); @@ -551,8 +557,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (queued_state_to_string, NMDeviceState, NM_UTILS_LOOKUP_STR_ITEM (NM_DEVICE_STATE_FAILED, NM_PENDING_ACTIONPREFIX_QUEUED_STATE_CHANGE "failed"), ); -static const char * -state_to_string (NMDeviceState state) +const char * +nm_device_state_to_str (NMDeviceState state) { return queued_state_to_string (state) + NM_STRLEN (NM_PENDING_ACTIONPREFIX_QUEUED_STATE_CHANGE); } @@ -710,6 +716,52 @@ nm_device_sys_iface_state_set (NMDevice *self, /*****************************************************************************/ +void +nm_device_assume_state_get (NMDevice *self, + gboolean *out_assume_state_guess_assume, + const char **out_assume_state_connection_uuid) +{ + NMDevicePrivate *priv; + + g_return_if_fail (NM_IS_DEVICE (self)); + + priv = NM_DEVICE_GET_PRIVATE (self); + NM_SET_OUT (out_assume_state_guess_assume, priv->assume_state_guess_assume); + NM_SET_OUT (out_assume_state_connection_uuid, priv->assume_state_connection_uuid); +} + +static void +_assume_state_set (NMDevice *self, + gboolean assume_state_guess_assume, + const char *assume_state_connection_uuid) +{ + NMDevicePrivate *priv; + + nm_assert (NM_IS_DEVICE (self)); + + priv = NM_DEVICE_GET_PRIVATE (self); + if ( priv->assume_state_guess_assume == !!assume_state_guess_assume + && nm_streq0 (priv->assume_state_connection_uuid, assume_state_connection_uuid)) + return; + + _LOGD (LOGD_DEVICE, "assume-state: set guess-assume=%c, connection=%s%s%s", + assume_state_guess_assume ? '1' : '0', + NM_PRINT_FMT_QUOTE_STRING (assume_state_connection_uuid)); + priv->assume_state_guess_assume = assume_state_guess_assume; + g_free (priv->assume_state_connection_uuid); + priv->assume_state_connection_uuid = g_strdup (assume_state_connection_uuid); +} + +void +nm_device_assume_state_reset (NMDevice *self) +{ + g_return_if_fail (NM_IS_DEVICE (self)); + + _assume_state_set (self, FALSE, NULL); +} + +/*****************************************************************************/ + static void init_ip4_config_dns_priority (NMDevice *self, NMIP4Config *config) { @@ -1775,10 +1827,13 @@ update_connectivity_state (NMDevice *self, NMConnectivityState state) priv->connectivity_state = state; _notify (self, PROP_CONNECTIVITY); - if (nm_device_get_state (self) == NM_DEVICE_STATE_ACTIVATED) { - if (!ip4_config_merge_and_apply (self, NULL, TRUE)) + if ( priv->state == NM_DEVICE_STATE_ACTIVATED + && !nm_device_sys_iface_state_is_external (self)) { + if ( priv->default_route.v4_has + && !ip4_config_merge_and_apply (self, NULL, TRUE)) _LOGW (LOGD_IP4, "Failed to update IPv4 default route metric"); - if (!ip6_config_merge_and_apply (self, TRUE)) + if ( priv->default_route.v6_has + && !ip6_config_merge_and_apply (self, TRUE)) _LOGW (LOGD_IP6, "Failed to update IPv6 default route metric"); } } @@ -1858,7 +1913,7 @@ nm_device_check_connectivity (NMDevice *self, /* Kick off a real connectivity check. */ nm_connectivity_check_async (nm_connectivity_get (), - nm_device_get_iface (self), + nm_device_get_ip_iface (self), concheck_cb, data); return; @@ -2069,7 +2124,7 @@ nm_device_master_release_one_slave (NMDevice *self, NMDevice *slave, gboolean co static gboolean can_unmanaged_external_down (NMDevice *self) { - return !NM_DEVICE_GET_PRIVATE (self)->is_nm_owned + return !NM_DEVICE_GET_PRIVATE (self)->nm_owned && nm_device_is_software (self); } @@ -2167,11 +2222,21 @@ nm_device_update_dynamic_ip_setup (NMDevice *self) } } +/*****************************************************************************/ + +static void +carrier_changed_notify (NMDevice *self, gboolean carrier) +{ + /* stub */ +} + static void carrier_changed (NMDevice *self, gboolean carrier) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + NM_DEVICE_GET_CLASS (self)->carrier_changed_notify (self, carrier); + if (priv->state <= NM_DEVICE_STATE_UNMANAGED) return; @@ -2236,7 +2301,7 @@ carrier_changed (NMDevice *self, gboolean carrier) #define LINK_DISCONNECT_DELAY 4 static gboolean -link_disconnect_action_cb (gpointer user_data) +carrier_disconnected_action_cb (gpointer user_data) { NMDevice *self = NM_DEVICE (user_data); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); @@ -2244,21 +2309,19 @@ link_disconnect_action_cb (gpointer user_data) _LOGD (LOGD_DEVICE, "link disconnected (calling deferred action) (id=%u)", priv->carrier_defer_id); priv->carrier_defer_id = 0; - - NM_DEVICE_GET_CLASS (self)->carrier_changed (self, FALSE); - + carrier_changed (self, FALSE); return FALSE; } static void -link_disconnect_action_cancel (NMDevice *self) +carrier_disconnected_action_cancel (NMDevice *self) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + guint id = priv->carrier_defer_id; - if (priv->carrier_defer_id) { - g_source_remove (priv->carrier_defer_id); - _LOGD (LOGD_DEVICE, "link disconnected (canceling deferred action) (id=%u)", priv->carrier_defer_id); - priv->carrier_defer_id = 0; + if (nm_clear_g_source (&priv->carrier_defer_id)) { + _LOGD (LOGD_DEVICE, "link disconnected (canceling deferred action) (id=%u)", + id); } } @@ -2266,7 +2329,6 @@ void nm_device_set_carrier (NMDevice *self, gboolean carrier) { NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); - NMDeviceClass *klass = NM_DEVICE_GET_CLASS (self); NMDeviceState state = nm_device_get_state (self); if (priv->carrier == carrier) @@ -2277,25 +2339,51 @@ nm_device_set_carrier (NMDevice *self, gboolean carrier) if (priv->carrier) { _LOGI (LOGD_DEVICE, "link connected"); - link_disconnect_action_cancel (self); - klass->carrier_changed (self, TRUE); + carrier_disconnected_action_cancel (self); + carrier_changed (self, TRUE); - if (nm_clear_g_source (&priv->carrier_wait_id)) { - nm_device_remove_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, TRUE); + if (priv->carrier_wait_id) { + nm_device_remove_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, FALSE); _carrier_wait_check_queued_act_request (self); } - } else if ( state <= NM_DEVICE_STATE_DISCONNECTED - && !priv->queued_act_request) { - _LOGD (LOGD_DEVICE, "link disconnected"); - klass->carrier_changed (self, FALSE); } else { - priv->carrier_defer_id = g_timeout_add_seconds (LINK_DISCONNECT_DELAY, - link_disconnect_action_cb, self); - _LOGD (LOGD_DEVICE, "link disconnected (deferring action for %d seconds) (id=%u)", - LINK_DISCONNECT_DELAY, priv->carrier_defer_id); + if (priv->carrier_wait_id) + nm_device_add_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, FALSE); + if ( state <= NM_DEVICE_STATE_DISCONNECTED + && !priv->queued_act_request) { + _LOGD (LOGD_DEVICE, "link disconnected"); + carrier_changed (self, FALSE); + } else { + priv->carrier_defer_id = g_timeout_add_seconds (LINK_DISCONNECT_DELAY, + carrier_disconnected_action_cb, self); + _LOGD (LOGD_DEVICE, "link disconnected (deferring action for %d seconds) (id=%u)", + LINK_DISCONNECT_DELAY, priv->carrier_defer_id); + } + } +} + +static void +nm_device_set_carrier_from_platform (NMDevice *self) +{ + if (nm_device_has_capability (self, NM_DEVICE_CAP_CARRIER_DETECT)) { + if (!nm_device_has_capability (self, NM_DEVICE_CAP_NONSTANDARD_CARRIER)) { + nm_device_set_carrier (self, + nm_platform_link_is_connected (nm_device_get_platform (self), + nm_device_get_ip_ifindex (self))); + } + } else { + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + + /* Fake online link when carrier detection is not available. */ + if (!priv->carrier) { + priv->carrier = TRUE; + _notify (self, PROP_CARRIER); + } } } +/*****************************************************************************/ + static void device_recheck_slave_status (NMDevice *self, const NMPlatformLink *plink) { @@ -2427,7 +2515,7 @@ device_link_changed (NMDevice *self) info = *pllink; udi = nm_platform_link_get_udi (nm_device_get_platform (self), info.ifindex); - if (udi && g_strcmp0 (udi, priv->udi)) { + if (udi && !nm_streq0 (udi, priv->udi)) { /* Update UDI to what udev gives us */ g_free (priv->udi); priv->udi = g_strdup (udi); @@ -2707,6 +2795,9 @@ link_type_compatible (NMDevice *self, * nm_device_realize_start(): * @self: the #NMDevice * @plink: an existing platform link or %NULL + * @assume_state_guess_assume: set the guess_assume state. + * @assume_state_connection_uuid: set the connection uuid to assume. + * @set_nm_owned: for software device, if TRUE set nm-owned. * @unmanaged_user_explicit: the user-explicit unmanaged flag to apply * on the device initially. * @out_compatible: %TRUE on return if @self is compatible with @plink @@ -2724,6 +2815,9 @@ link_type_compatible (NMDevice *self, gboolean nm_device_realize_start (NMDevice *self, const NMPlatformLink *plink, + gboolean assume_state_guess_assume, + const char *assume_state_connection_uuid, + gboolean set_nm_owned, NMUnmanFlagOp unmanaged_user_explicit, gboolean *out_compatible, GError **error) @@ -2748,8 +2842,11 @@ nm_device_realize_start (NMDevice *self, plink_copy = *plink; plink = &plink_copy; } - realize_start_setup (self, plink, unmanaged_user_explicit); - + realize_start_setup (self, plink, + assume_state_guess_assume, + assume_state_connection_uuid, + set_nm_owned, + unmanaged_user_explicit); return TRUE; } @@ -2776,9 +2873,9 @@ nm_device_create_and_realize (NMDevice *self, const NMPlatformLink *plink = NULL; /* Must be set before device is realized */ - priv->is_nm_owned = !nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface); + priv->nm_owned = !nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface); - _LOGD (LOGD_DEVICE, "create (is %snm-owned)", priv->is_nm_owned ? "" : "not "); + _LOGD (LOGD_DEVICE, "create (is %snm-owned)", priv->nm_owned ? "" : "not "); /* Create any resources the device needs */ if (NM_DEVICE_GET_CLASS (self)->create_and_realize) { @@ -2788,7 +2885,10 @@ nm_device_create_and_realize (NMDevice *self, plink = &plink_copy; } - realize_start_setup (self, plink, NM_UNMAN_FLAG_OP_FORGET); + realize_start_setup (self, plink, + FALSE, /* assume_state_guess_assume */ + NULL, /* assume_state_connection_uuid */ + FALSE, NM_UNMAN_FLAG_OP_FORGET); nm_device_realize_finish (self, plink); if (nm_device_get_managed (self, FALSE)) { @@ -2808,7 +2908,7 @@ update_device_from_platform_link (NMDevice *self, const NMPlatformLink *plink) g_return_if_fail (plink != NULL); udi = nm_platform_link_get_udi (nm_device_get_platform (self), plink->ifindex); - if (udi && !g_strcmp0 (udi, priv->udi)) { + if (udi && !nm_streq0 (udi, priv->udi)) { g_free (priv->udi); priv->udi = g_strdup (udi); _notify (self, PROP_UDI); @@ -2871,15 +2971,6 @@ config_changed (NMConfig *config, device_init_sriov_num_vfs (self); } -static void -check_carrier (NMDevice *self) -{ - int ifindex = nm_device_get_ip_ifindex (self); - - if (!nm_device_has_capability (self, NM_DEVICE_CAP_NONSTANDARD_CARRIER)) - nm_device_set_carrier (self, nm_platform_link_is_connected (nm_device_get_platform (self), ifindex)); -} - static void realize_start_notify (NMDevice *self, const NMPlatformLink *pllink) @@ -2893,6 +2984,10 @@ realize_start_notify (NMDevice *self, * realize_start_setup(): * @self: the #NMDevice * @plink: the #NMPlatformLink if backed by a kernel netdevice + * @assume_state_guess_assume: set the guess_assume state. + * @assume_state_connection_uuid: set the connection uuid to assume. + * @set_nm_owned: if TRUE and device is a software-device, set nm-owned. + * TRUE. * @unmanaged_user_explicit: the user-explict unmanaged flag to set. * * Update the device from backing resource properties (like hardware @@ -2904,6 +2999,9 @@ realize_start_notify (NMDevice *self, static void realize_start_setup (NMDevice *self, const NMPlatformLink *plink, + gboolean assume_state_guess_assume, + const char *assume_state_connection_uuid, + gboolean set_nm_owned, NMUnmanFlagOp unmanaged_user_explicit) { NMDevicePrivate *priv; @@ -2942,6 +3040,8 @@ realize_start_setup (NMDevice *self, _notify (self, PROP_MTU); } + _assume_state_set (self, assume_state_guess_assume, assume_state_connection_uuid); + nm_device_sys_iface_state_set (self, NM_DEVICE_SYS_IFACE_STATE_EXTERNAL); if (plink) { @@ -2987,6 +3087,13 @@ realize_start_setup (NMDevice *self, _add_capabilities (self, capabilities); + if ( !priv->nm_owned + && set_nm_owned + && nm_device_is_software (self)) { + priv->nm_owned = TRUE; + _LOGD (LOGD_DEVICE, "set nm-owned from state file"); + } + if (!priv->udi) { /* Use a placeholder UDI until we get a real one */ priv->udi = g_strdup_printf ("/virtual/device/placeholder/%d", id++); @@ -3010,16 +3117,7 @@ realize_start_setup (NMDevice *self, self); } - if (nm_device_has_capability (self, NM_DEVICE_CAP_CARRIER_DETECT)) { - check_carrier (self); - _LOGD (LOGD_PLATFORM, - "carrier is %s%s", - priv->carrier ? "ON" : "OFF", - priv->ignore_carrier ? " (but ignored)" : ""); - } else { - /* Fake online link when carrier detection is not available. */ - priv->carrier = TRUE; - } + nm_device_set_carrier_from_platform (self); device_init_sriov_num_vfs (self); @@ -3165,6 +3263,8 @@ nm_device_unrealize (NMDevice *self, gboolean remove_resources, GError **error) _LOGD (LOGD_DEVICE, "unrealize (ifindex %d)", ifindex > 0 ? ifindex : 0); + nm_device_assume_state_reset (self); + if (remove_resources) { if (NM_DEVICE_GET_CLASS (self)->unrealize) { if (!NM_DEVICE_GET_CLASS (self)->unrealize (self, error)) @@ -3326,9 +3426,9 @@ slave_state_changed (NMDevice *slave, _LOGD (LOGD_DEVICE, "slave %s state change %d (%s) -> %d (%s)", nm_device_get_iface (slave), slave_old_state, - state_to_string (slave_old_state), + nm_device_state_to_str (slave_old_state), slave_new_state, - state_to_string (slave_new_state)); + nm_device_state_to_str (slave_new_state)); /* Don't try to enslave slaves until the master is ready */ if (priv->state < NM_DEVICE_STATE_CONFIG) @@ -4014,27 +4114,37 @@ nm_device_master_update_slave_connection (NMDevice *self, } NMConnection * -nm_device_generate_connection (NMDevice *self, NMDevice *master) +nm_device_generate_connection (NMDevice *self, + NMDevice *master, + gboolean *out_maybe_later, + GError **error) { NMDeviceClass *klass = NM_DEVICE_GET_CLASS (self); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); const char *ifname = nm_device_get_iface (self); - NMConnection *connection; + gs_unref_object NMConnection *connection = NULL; NMSetting *s_con; NMSetting *s_ip4; NMSetting *s_ip6; char uuid[37]; const char *ip4_method, *ip6_method; - GError *error = NULL; + GError *local = NULL; const NMPlatformLink *pllink; + NM_SET_OUT (out_maybe_later, FALSE); + /* If update_connection() is not implemented, just fail. */ - if (!klass->update_connection) + if (!klass->update_connection) { + g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "device class %s does not support generating a connection", + G_OBJECT_TYPE_NAME (self)); return NULL; + } /* Return NULL if device is unconfigured. */ if (!device_has_config (self)) { - _LOGD (LOGD_DEVICE, "device has no existing configuration"); + g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "device has no existing configuration"); return NULL; } @@ -4057,12 +4167,11 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master) if (!nm_device_master_update_slave_connection (master, self, connection, - &error)) - { - _LOGE (LOGD_DEVICE, "master device '%s' failed to update slave connection: %s", - nm_device_get_iface (master), error->message); - g_error_free (error); - g_object_unref (connection); + &local)) { + g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "master device '%s' failed to update slave connection: %s", + nm_device_get_iface (master), local->message); + g_error_free (local); return NULL; } } else { @@ -4075,7 +4184,6 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master) pllink = nm_platform_link_get (nm_device_get_platform (self), priv->ifindex); if (pllink && pllink->inet6_token.id) { - _LOGD (LOGD_IP6, "IPv6 tokenized identifier present"); g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE, NM_IN6_ADDR_GEN_MODE_EUI64, NM_SETTING_IP6_CONFIG_TOKEN, nm_utils_inet6_interface_identifier_to_token (pllink->inet6_token, NULL), @@ -4085,11 +4193,11 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master) klass->update_connection (self, connection); - /* Check the connection in case of update_connection() bug. */ - if (!nm_connection_verify (connection, &error)) { - _LOGE (LOGD_DEVICE, "Generated connection does not verify: %s", error->message); - g_clear_error (&error); - g_object_unref (connection); + if (!nm_connection_verify (connection, &local)) { + g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "generated connection does not verify: %s", + local->message); + g_error_free (local); return NULL; } @@ -4102,26 +4210,28 @@ nm_device_generate_connection (NMDevice *self, NMDevice *master) && g_strcmp0 (ip6_method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0 && !nm_setting_connection_get_master (NM_SETTING_CONNECTION (s_con)) && !priv->slaves) { - _LOGD (LOGD_DEVICE, "ignoring generated connection (no IP and not in master-slave relationship)"); - g_object_unref (connection); - connection = NULL; + NM_SET_OUT (out_maybe_later, TRUE); + g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "ignoring generated connection (no IP and not in master-slave relationship)"); + return NULL; } /* Ignore any IPv6LL-only, not master connections without slaves, * unless they are in the assume-ipv6ll-only list. */ - if ( connection - && g_strcmp0 (ip4_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0 + if ( g_strcmp0 (ip4_method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0 && g_strcmp0 (ip6_method, NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL) == 0 && !nm_setting_connection_get_master (NM_SETTING_CONNECTION (s_con)) && !priv->slaves && !nm_config_data_get_assume_ipv6ll_only (NM_CONFIG_GET_DATA, self)) { _LOGD (LOGD_DEVICE, "ignoring generated connection (IPv6LL-only and not in master-slave relationship)"); - g_object_unref (connection); - connection = NULL; + NM_SET_OUT (out_maybe_later, TRUE); + g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_FAILED, + "ignoring generated connection (IPv6LL-only and not in master-slave relationship)"); + return NULL; } - return connection; + return g_steal_pointer (&connection); } gboolean @@ -4291,10 +4401,9 @@ nm_device_emit_recheck_assume (gpointer user_data) priv = NM_DEVICE_GET_PRIVATE (self); priv->recheck_assume_id = 0; - if (!nm_device_get_act_request (self)) { - _LOGD (LOGD_DEVICE, "emit RECHECK_ASSUME signal"); + if (!nm_device_get_act_request (self)) g_signal_emit (self, signals[RECHECK_ASSUME], 0); - } + return G_SOURCE_REMOVE; } @@ -4333,7 +4442,7 @@ recheck_available (gpointer user_data) _LOGD (LOGD_DEVICE, "is %savailable, %s %s", now_available ? "" : "not ", new_state == NM_DEVICE_STATE_UNAVAILABLE ? "no change required for" : "will transition to", - state_to_string (new_state == NM_DEVICE_STATE_UNAVAILABLE ? state : new_state)); + nm_device_state_to_str (new_state == NM_DEVICE_STATE_UNAVAILABLE ? state : new_state)); priv->recheck_available.available_reason = NM_DEVICE_STATE_REASON_NONE; priv->recheck_available.unavailable_reason = NM_DEVICE_STATE_REASON_NONE; @@ -5472,8 +5581,15 @@ ip4_config_merge_and_apply (NMDevice *self, composite = nm_ip4_config_new (nm_device_get_ip_ifindex (self)); init_ip4_config_dns_priority (self, composite); - if (commit) + if (commit) { ensure_con_ip4_config (self); + if (priv->queued_ip4_config_id) { + g_clear_object (&priv->ext_ip4_config); + priv->ext_ip4_config = nm_ip4_config_capture (nm_device_get_platform (self), + nm_device_get_ip_ifindex (self), + FALSE); + } + } if (priv->dev_ip4_config) { nm_ip4_config_merge (composite, priv->dev_ip4_config, @@ -6200,7 +6316,6 @@ ip6_config_merge_and_apply (NMDevice *self, } } - /* If no config was passed in, create a new one */ composite = nm_ip6_config_new (nm_device_get_ip_ifindex (self)); nm_ip6_config_set_privacy (composite, priv->ndisc ? @@ -6208,8 +6323,19 @@ ip6_config_merge_and_apply (NMDevice *self, NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN); init_ip6_config_dns_priority (self, composite); - if (commit) + if (commit) { ensure_con_ip6_config (self); + if (priv->queued_ip6_config_id) { + g_clear_object (&priv->ext_ip6_config); + g_clear_object (&priv->ext_ip6_config_captured); + priv->ext_ip6_config_captured = nm_ip6_config_capture (nm_device_get_platform (self), + nm_device_get_ip_ifindex (self), + FALSE, + NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN); + if (priv->ext_ip6_config_captured) + priv->ext_ip6_config = nm_ip6_config_new_cloned (priv->ext_ip6_config_captured); + } + } /* Merge all the IP configs into the composite config */ if (priv->ac_ip6_config) { @@ -7023,7 +7149,7 @@ nm_device_get_configured_mtu_for_wired (NMDevice *self, gboolean *out_is_user_co } *out_is_user_config = FALSE; - return NM_DEVICE_DEFAULT_MTU_WIRED; + return 0; } /*****************************************************************************/ @@ -7725,7 +7851,7 @@ act_stage3_ip6_config_start (NMDevice *self, nm_platform_process_events (nm_device_get_platform (self)); g_clear_object (&priv->ext_ip6_config_captured); priv->ext_ip6_config_captured = nm_ip6_config_capture (nm_device_get_platform (self), - nm_device_get_ifindex (self), + nm_device_get_ip_ifindex (self), FALSE, NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN); @@ -8649,9 +8775,9 @@ _update_ip4_address (NMDevice *self) } gboolean -nm_device_get_is_nm_owned (NMDevice *self) +nm_device_is_nm_owned (NMDevice *self) { - return NM_DEVICE_GET_PRIVATE (self)->is_nm_owned; + return NM_DEVICE_GET_PRIVATE (self)->nm_owned; } /* @@ -8712,7 +8838,7 @@ delete_on_deactivate_check_and_schedule (NMDevice *self, int ifindex) if (ifindex <= 0) return; - if (!priv->is_nm_owned) + if (!priv->nm_owned) return; if (priv->queued_act_request) return; @@ -9035,10 +9161,12 @@ check_and_reapply_connection (NMDevice *self, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, &diffs); - if (diffs && nm_audit_manager_audit_enabled (nm_audit_manager_get ())) - *audit_args = nm_utils_format_con_diff_for_audit (diffs); - else - *audit_args = NULL; + if (audit_args) { + if (diffs && nm_audit_manager_audit_enabled (nm_audit_manager_get ())) + *audit_args = nm_utils_format_con_diff_for_audit (diffs); + else + *audit_args = NULL; + } /************************************************************************** * check for unsupported changes and reject to reapply @@ -9140,6 +9268,20 @@ check_and_reapply_connection (NMDevice *self, return TRUE; } +gboolean +nm_device_reapply (NMDevice *self, + NMConnection *connection, + GError **error) +{ + g_return_val_if_fail (NM_IS_DEVICE (self), FALSE); + + return check_and_reapply_connection (self, + connection, + 0, + NULL, + error); +} + typedef struct { NMConnection *connection; guint64 version_id; @@ -10286,12 +10428,12 @@ static gboolean carrier_wait_timeout (gpointer user_data) { NMDevice *self = NM_DEVICE (user_data); + NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); - NM_DEVICE_GET_PRIVATE (self)->carrier_wait_id = 0; - nm_device_remove_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, TRUE); - - _carrier_wait_check_queued_act_request (self); - + priv->carrier_wait_id = 0; + nm_device_remove_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, FALSE); + if (!priv->carrier) + _carrier_wait_check_queued_act_request (self); return G_SOURCE_REMOVE; } @@ -10333,8 +10475,7 @@ nm_device_bring_up (NMDevice *self, gboolean block, gboolean *no_firmware) } /* Store carrier immediately. */ - if (nm_device_has_capability (self, NM_DEVICE_CAP_CARRIER_DETECT)) - check_carrier (self); + nm_device_set_carrier_from_platform (self); device_is_up = nm_device_is_up (self); if (block && !device_is_up) { @@ -10369,8 +10510,14 @@ nm_device_bring_up (NMDevice *self, gboolean block, gboolean *no_firmware) * a timeout is reached. */ if (nm_device_has_capability (self, NM_DEVICE_CAP_CARRIER_DETECT)) { - if (!nm_clear_g_source (&priv->carrier_wait_id)) - nm_device_add_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, TRUE); + /* we start a grace period of 5 seconds during which we will schedule + * a pending action whenever we have no carrier. + * + * If during that time carrier goes away, we declare the interface + * as not ready. */ + nm_clear_g_source (&priv->carrier_wait_id); + if (!priv->carrier) + nm_device_add_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, FALSE); priv->carrier_wait_id = g_timeout_add_seconds (5, carrier_wait_timeout, self); } @@ -11812,7 +11959,7 @@ nm_device_add_pending_action (NMDevice *self, const char *action, gboolean asser count + g_slist_length (iter), action); g_return_val_if_reached (FALSE); } else { - _LOGD (LOGD_DEVICE, "add_pending_action (%d): '%s' already pending (expected)", + _LOGT (LOGD_DEVICE, "add_pending_action (%d): '%s' already pending (expected)", count + g_slist_length (iter), action); } return FALSE; @@ -11873,7 +12020,7 @@ nm_device_remove_pending_action (NMDevice *self, const char *action, gboolean as _LOGW (LOGD_DEVICE, "remove_pending_action (%d): '%s' not pending", count, action); g_return_val_if_reached (FALSE); } else - _LOGD (LOGD_DEVICE, "remove_pending_action (%d): '%s' not pending (expected)", count, action); + _LOGT (LOGD_DEVICE, "remove_pending_action (%d): '%s' not pending (expected)", count, action); return FALSE; } @@ -12058,11 +12205,6 @@ nm_device_cleanup (NMDevice *self, NMDeviceStateReason reason, CleanupType clean /* master: release slaves */ nm_device_master_release_slaves (self); - /* slave: mark no longer enslaved */ - if ( priv->master - && nm_platform_link_get_master (nm_device_get_platform (self), priv->ifindex) <= 0) - nm_device_master_release_one_slave (priv->master, self, FALSE, NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED); - /* Take out any entries in the routing table and any IP address the device had. */ ifindex = nm_device_get_ip_ifindex (self); if (ifindex > 0) { @@ -12071,6 +12213,11 @@ nm_device_cleanup (NMDevice *self, NMDeviceStateReason reason, CleanupType clean } } + /* slave: mark no longer enslaved */ + if ( priv->master + && nm_platform_link_get_master (nm_device_get_platform (self), priv->ifindex) <= 0) + nm_device_master_release_one_slave (priv->master, self, FALSE, NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED); + if (priv->lldp_listener) nm_lldp_listener_stop (priv->lldp_listener); @@ -12411,24 +12558,20 @@ _set_state_full (NMDevice *self, if ( (priv->state == state) && ( state != NM_DEVICE_STATE_UNAVAILABLE || !priv->firmware_missing)) { - _LOGD (LOGD_DEVICE, "state change: %s -> %s (reason '%s') [%d %d %d]%s", - state_to_string (old_state), - state_to_string (state), + _LOGD (LOGD_DEVICE, "state change: %s -> %s (reason '%s', internal state '%s'%s)", + nm_device_state_to_str (old_state), + nm_device_state_to_str (state), reason_to_string (reason), - old_state, - state, - reason, - priv->firmware_missing ? " (missing firmware)" : ""); + _sys_iface_state_to_str (priv->sys_iface_state), + priv->firmware_missing ? ", missing firmware" : ""); return; } - _LOGI (LOGD_DEVICE, "state change: %s -> %s (reason '%s') [%d %d %d]", - state_to_string (old_state), - state_to_string (state), + _LOGI (LOGD_DEVICE, "state change: %s -> %s (reason '%s', internal state '%s')", + nm_device_state_to_str (old_state), + nm_device_state_to_str (state), reason_to_string (reason), - old_state, - state, - reason); + _sys_iface_state_to_str (priv->sys_iface_state)); priv->in_state_changed = TRUE; @@ -12453,6 +12596,9 @@ _set_state_full (NMDevice *self, NM_DEVICE_SYS_IFACE_STATE_ASSUME)) nm_device_sys_iface_state_set (self, NM_DEVICE_SYS_IFACE_STATE_MANAGED); + if (state > NM_DEVICE_STATE_DISCONNECTED) + nm_device_assume_state_reset (self); + if (state <= NM_DEVICE_STATE_UNAVAILABLE) { if (available_connections_del_all (self)) _notify (self, PROP_AVAILABLE_CONNECTIONS); @@ -12745,7 +12891,7 @@ queued_state_set (gpointer user_data) nm_assert (priv->queued_state.id); _LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s", - state_to_string (priv->queued_state.state), + nm_device_state_to_str (priv->queued_state.state), reason_to_string (priv->queued_state.reason), priv->queued_state.id, "change state"); @@ -12776,7 +12922,7 @@ nm_device_queue_state (NMDevice *self, if (priv->queued_state.id && priv->queued_state.state == state) { _LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s%s%s%s", - state_to_string (priv->queued_state.state), + nm_device_state_to_str (priv->queued_state.state), reason_to_string (priv->queued_state.reason), priv->queued_state.id, "ignore queuing same state change", @@ -12792,7 +12938,7 @@ nm_device_queue_state (NMDevice *self, /* We should only ever have one delayed state transition at a time */ if (priv->queued_state.id) { _LOGW (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s", - state_to_string (priv->queued_state.state), + nm_device_state_to_str (priv->queued_state.state), reason_to_string (priv->queued_state.reason), priv->queued_state.id, "replace previously queued state change"); @@ -12805,7 +12951,7 @@ nm_device_queue_state (NMDevice *self, priv->queued_state.id = g_idle_add (queued_state_set, self); _LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s", - state_to_string (state), + nm_device_state_to_str (state), reason_to_string (reason), priv->queued_state.id, "queue state change"); @@ -12820,7 +12966,7 @@ queued_state_clear (NMDevice *self) return; _LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s", - state_to_string (priv->queued_state.state), + nm_device_state_to_str (priv->queued_state.state), reason_to_string (priv->queued_state.reason), priv->queued_state.id, "clear queued state change"); @@ -13726,6 +13872,8 @@ dispose (GObject *object) nm_clear_g_cancellable (&priv->deactivating_cancellable); + nm_device_assume_state_reset (self); + _parent_set_ifindex (self, 0, FALSE); platform = nm_device_get_platform (self); @@ -13767,7 +13915,7 @@ dispose (GObject *object) nm_clear_g_source (&priv->stats.timeout_id); - link_disconnect_action_cancel (self); + carrier_disconnected_action_cancel (self); if (priv->ifindex > 0) { priv->ifindex = 0; @@ -13782,7 +13930,8 @@ dispose (GObject *object) available_connections_del_all (self); - nm_clear_g_source (&priv->carrier_wait_id); + if (nm_clear_g_source (&priv->carrier_wait_id)) + nm_device_remove_pending_action (self, NM_PENDING_ACTION_CARRIER_WAIT, FALSE); _clear_queued_act_request (priv); @@ -13854,14 +14003,11 @@ set_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_UDI: - if (g_value_get_string (value)) { - g_free (priv->udi); - priv->udi = g_value_dup_string (value); - } + /* construct-only */ + priv->udi = g_value_dup_string (value); break; case PROP_IFACE: /* construct-only */ - g_return_if_fail (!priv->iface); priv->iface = g_value_dup_string (value); break; case PROP_DRIVER: @@ -13885,9 +14031,14 @@ set_property (GObject *object, guint prop_id, NMDeviceStateReason reason; managed = g_value_get_boolean (value); - if (managed) + if (managed) { reason = NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED; - else { + if (NM_IN_SET_TYPED (NMDeviceSysIfaceState, + priv->sys_iface_state, + NM_DEVICE_SYS_IFACE_STATE_EXTERNAL, + NM_DEVICE_SYS_IFACE_STATE_REMOVED)) + nm_device_sys_iface_state_set (self, NM_DEVICE_SYS_IFACE_STATE_ASSUME); + } else { reason = NM_DEVICE_STATE_REASON_REMOVED; nm_device_sys_iface_state_set (self, NM_DEVICE_SYS_IFACE_STATE_REMOVED); } @@ -13956,28 +14107,43 @@ get_property (GObject *object, guint prop_id, switch (prop_id) { case PROP_UDI: - g_value_set_string (value, priv->udi); + /* UDI is (depending on the device type) a path to sysfs and can contain + * non-UTF-8. + * ip link add name $'d\xccf\\c' type dummy */ + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (priv->udi, + NM_UTILS_STR_UTF8_SAFE_FLAG_NONE)); break; case PROP_IFACE: - g_value_set_string (value, priv->iface); + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (priv->iface, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL)); break; case PROP_IP_IFACE: - if (ip_config_valid (priv->state)) - g_value_set_string (value, nm_device_get_ip_iface (self)); - else + if (ip_config_valid (priv->state)) { + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (nm_device_get_ip_iface (self), + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL)); + } else g_value_set_string (value, NULL); break; case PROP_IFINDEX: g_value_set_int (value, priv->ifindex); break; case PROP_DRIVER: - g_value_set_string (value, priv->driver); + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (priv->driver, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL)); break; case PROP_DRIVER_VERSION: - g_value_set_string (value, priv->driver_version); + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (priv->driver_version, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL)); break; case PROP_FIRMWARE_VERSION: - g_value_set_string (value, priv->firmware_version); + g_value_take_string (value, + nm_utils_str_utf8safe_escape_cp (priv->firmware_version, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL)); break; case PROP_CAPABILITIES: g_value_set_uint (value, (priv->capabilities & ~NM_DEVICE_CAP_INTERNAL_MASK)); @@ -14161,7 +14327,7 @@ nm_device_class_init (NMDeviceClass *klass) klass->can_unmanaged_external_down = can_unmanaged_external_down; klass->realize_start_notify = realize_start_notify; klass->unrealize_notify = unrealize_notify; - klass->carrier_changed = carrier_changed; + klass->carrier_changed_notify = carrier_changed_notify; klass->get_ip_iface_identifier = get_ip_iface_identifier; klass->unmanaged_on_quit = unmanaged_on_quit; klass->deactivate_reset_hw_addr = deactivate_reset_hw_addr; @@ -14172,7 +14338,7 @@ nm_device_class_init (NMDeviceClass *klass) obj_properties[PROP_UDI] = g_param_spec_string (NM_DEVICE_UDI, "", "", NULL, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT | + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); obj_properties[PROP_IFACE] = g_param_spec_string (NM_DEVICE_IFACE, "", "", diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h index be328eb6..6d17d7c9 100644 --- a/src/devices/nm-device.h +++ b/src/devices/nm-device.h @@ -261,7 +261,7 @@ typedef struct { gboolean (*can_unmanaged_external_down) (NMDevice *self); /* Carrier state (IFF_LOWER_UP) */ - void (*carrier_changed) (NMDevice *, gboolean carrier); + void (*carrier_changed_notify) (NMDevice *, gboolean carrier); gboolean (* get_ip_iface_identifier) (NMDevice *self, NMUtilsIPv6IfaceId *out_iid); @@ -421,6 +421,15 @@ NMPlatform *nm_device_get_platform (NMDevice *self); const char * nm_device_get_udi (NMDevice *dev); const char * nm_device_get_iface (NMDevice *dev); + +static inline const char * +_nm_device_get_iface (NMDevice *device) +{ + /* like nm_device_get_iface(), but gracefully accept NULL without + * asserting. */ + return device ? nm_device_get_iface (device) : NULL; +} + int nm_device_get_ifindex (NMDevice *dev); gboolean nm_device_is_software (NMDevice *dev); gboolean nm_device_is_real (NMDevice *dev); @@ -487,7 +496,10 @@ void nm_device_removed (NMDevice *self, gboolean unconf gboolean nm_device_is_available (NMDevice *dev, NMDeviceCheckDevAvailableFlags flags); gboolean nm_device_has_carrier (NMDevice *dev); -NMConnection * nm_device_generate_connection (NMDevice *self, NMDevice *master); +NMConnection * nm_device_generate_connection (NMDevice *self, + NMDevice *master, + gboolean *out_maybe_later, + GError **error); gboolean nm_device_master_update_slave_connection (NMDevice *master, NMDevice *slave, @@ -605,12 +617,24 @@ void nm_device_set_unmanaged_by_user_settings (NMDevice *self); void nm_device_set_unmanaged_by_user_udev (NMDevice *self); void nm_device_set_unmanaged_by_quitting (NMDevice *device); -gboolean nm_device_get_is_nm_owned (NMDevice *device); +gboolean nm_device_is_nm_owned (NMDevice *device); gboolean nm_device_has_capability (NMDevice *self, NMDeviceCapabilities caps); +/*****************************************************************************/ + +void nm_device_assume_state_get (NMDevice *self, + gboolean *out_assume_state_guess_assume, + const char **out_assume_state_connection_uuid); +void nm_device_assume_state_reset (NMDevice *self); + +/*****************************************************************************/ + gboolean nm_device_realize_start (NMDevice *device, const NMPlatformLink *plink, + gboolean assume_state_guess_assume, + const char *assume_state_connection_uuid, + gboolean set_nm_owned, NMUnmanFlagOp unmanaged_user_explicit, gboolean *out_compatible, GError **error); @@ -675,6 +699,9 @@ const NMPlatformIP6Route *nm_device_get_ip6_default_route (NMDevice *self, gbool void nm_device_spawn_iface_helper (NMDevice *self); +gboolean nm_device_reapply (NMDevice *self, + NMConnection *connection, + GError **error); void nm_device_reapply_settings_immediately (NMDevice *self); void nm_device_update_firewall_zone (NMDevice *self); @@ -708,4 +735,7 @@ void nm_device_check_connectivity (NMDevice *self, gpointer user_data); NMConnectivityState nm_device_get_connectivity_state (NMDevice *self); + +const char *nm_device_state_to_str (NMDeviceState state); + #endif /* __NETWORKMANAGER_DEVICE_H__ */ diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c index 7359be96..20692ed9 100644 --- a/src/devices/wifi/nm-device-wifi.c +++ b/src/devices/wifi/nm-device-wifi.c @@ -2742,7 +2742,7 @@ get_configured_mtu (NMDevice *device, gboolean *out_is_user_config) } } *out_is_user_config = (mtu != 0); - return mtu ?: NM_DEVICE_DEFAULT_MTU_WIRELESS; + return mtu; } static gboolean diff --git a/src/dhcp/nm-dhcp-utils.c b/src/dhcp/nm-dhcp-utils.c index e020ca33..e55a21b4 100644 --- a/src/dhcp/nm-dhcp-utils.c +++ b/src/dhcp/nm-dhcp-utils.c @@ -450,43 +450,6 @@ nm_dhcp_utils_ip4_config_from_options (int ifindex, } } - /* - * RFC 2132, section 9.7 - * DHCP clients use the contents of the 'server identifier' field - * as the destination address for any DHCP messages unicast to - * the DHCP server. - * - * Some ISP's provide leases from central servers that are on - * different subnets that the address offered. If the host - * does not configure the interface as the default route, the - * dhcp server may not be reachable via unicast, and a host - * specific route is needed. - **/ - str = g_hash_table_lookup (options, "dhcp_server_identifier"); - if (str) { - if (inet_pton (AF_INET, str, &tmp_addr) > 0) { - - _LOG2I (LOGD_DHCP4, iface, " server identifier %s", str); - if ( nm_utils_ip4_address_clear_host_address(tmp_addr, address.plen) != nm_utils_ip4_address_clear_host_address(address.address, address.plen) - && !nm_ip4_config_get_direct_route_for_host (ip4_config, tmp_addr)) { - /* DHCP server not on assigned subnet and the no direct route was returned. Add route */ - NMPlatformIP4Route route = { 0 }; - - route.network = tmp_addr; - route.plen = 32; - /* this will be a device route if gwaddr is 0 */ - route.gateway = gwaddr; - route.rt_source = NM_IP_CONFIG_SOURCE_DHCP; - route.metric = priority; - nm_ip4_config_add_route (ip4_config, &route); - _LOG2D (LOGD_IP, iface, "adding route for server identifier: %s", - nm_platform_ip4_route_to_string (&route, NULL, 0)); - } - } - else - _LOG2W (LOGD_DHCP4, iface, "ignoring invalid server identifier '%s'", str); - } - str = g_hash_table_lookup (options, "dhcp_lease_time"); if (str) { address.lifetime = address.preferred = strtoul (str, NULL, 10); diff --git a/src/dns/nm-dns-dnsmasq.c b/src/dns/nm-dns-dnsmasq.c index 5223638e..a6204ae4 100644 --- a/src/dns/nm-dns-dnsmasq.c +++ b/src/dns/nm-dns-dnsmasq.c @@ -554,13 +554,15 @@ start_dnsmasq (NMDnsDnsmasq *self) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { NMDnsDnsmasq *self = NM_DNS_DNSMASQ (plugin); NMDnsDnsmasqPrivate *priv = NM_DNS_DNSMASQ_GET_PRIVATE (self); GVariantBuilder servers; + guint i; + int prio, first_prio; start_dnsmasq (self); @@ -569,9 +571,13 @@ update (NMDnsPlugin *plugin, if (global_config) add_global_config (self, &servers, global_config); else { - while (*configs) { - add_ip_config_data (self, &servers, *configs); - configs++; + for (i = 0; i < configs->len; i++) { + prio = nm_dns_ip_config_data_get_dns_priority (configs->pdata[i]); + if (i == 0) + first_prio = prio; + else if (first_prio < 0 && first_prio != prio) + break; + add_ip_config_data (self, &servers, configs->pdata[i]); } } diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 1f7eb964..f443f340 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -197,6 +197,19 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_config_type_to_string, NMDnsIPConfigType, NM_UTILS_LOOKUP_STR_ITEM (NM_DNS_IP_CONFIG_TYPE_VPN, "vpn"), ); +int +nm_dns_ip_config_data_get_dns_priority (const NMDnsIPConfigData *config) +{ + g_return_val_if_fail (config, 0); + + if (NM_IS_IP4_CONFIG (config->config)) + return nm_ip4_config_get_dns_priority (config->config); + else if (NM_IS_IP6_CONFIG (config->config)) + return nm_ip6_config_get_dns_priority (config->config); + else + g_return_val_if_reached (0); +} + static NMDnsIPConfigData * ip_config_data_new (gpointer config, NMDnsIPConfigType type, const char *iface) { @@ -226,19 +239,10 @@ ip_config_data_destroy (gpointer ptr) static gint ip_config_data_compare (const NMDnsIPConfigData *a, const NMDnsIPConfigData *b) { - gboolean a_v4, b_v4; - gint a_prio, b_prio; - - a_v4 = NM_IS_IP4_CONFIG (a->config); - b_v4 = NM_IS_IP4_CONFIG (b->config); + int a_prio, b_prio; - a_prio = a_v4 ? - nm_ip4_config_get_dns_priority ((NMIP4Config *) a->config) : - nm_ip6_config_get_dns_priority ((NMIP6Config *) a->config); - - b_prio = b_v4 ? - nm_ip4_config_get_dns_priority ((NMIP4Config *) b->config) : - nm_ip6_config_get_dns_priority ((NMIP6Config *) b->config); + a_prio = nm_dns_ip_config_data_get_dns_priority (a); + b_prio = nm_dns_ip_config_data_get_dns_priority (b); /* Configurations with lower priority value first */ if (a_prio < b_prio) @@ -990,11 +994,9 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o char ***out_options, char ***out_nameservers, char ***out_nis_servers, - const char **out_nis_domain, - NMDnsIPConfigData ***out_plugin_confs) + const char **out_nis_domain) { - NMDnsIPConfigData **plugin_confs = NULL; - guint i, num, len; + guint i, j, num, len; NMResolvConfData rc = { .nameservers = g_ptr_array_new (), .searches = g_ptr_array_new (), @@ -1007,27 +1009,23 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o merge_global_dns_config (&rc, global_config); else { nm_auto_free_gstring GString *tmp_gstring = NULL; - int prio, prev_prio = 0; + int prio, first_prio = 0; NMDnsIPConfigData *current; - gboolean skip = FALSE, v4; + gboolean v4; - plugin_confs = g_new (NMDnsIPConfigData *, configs->len + 1); + for (i = 0, j = 0; i < configs->len; i++) { + gboolean skip = FALSE; - for (i = 0; i < configs->len; i++) { current = configs->pdata[i]; - v4 = NM_IS_IP4_CONFIG (current->config); - prio = v4 ? - nm_ip4_config_get_dns_priority ((NMIP4Config *) current->config) : - nm_ip6_config_get_dns_priority ((NMIP6Config *) current->config); + prio = nm_dns_ip_config_data_get_dns_priority (current); - if (prev_prio < 0 && prio != prev_prio) { + if (i == 0) + first_prio = prio; + else if (first_prio < 0 && first_prio != prio) skip = TRUE; - plugin_confs[i] = NULL; - } - - prev_prio = prio; + v4 = NM_IS_IP4_CONFIG (current->config); if ( ( v4 && nm_ip4_config_get_num_nameservers ((NMIP4Config *) current->config)) || (!v4 && nm_ip6_config_get_num_nameservers ((NMIP6Config *) current->config))) { _LOGT ("config: %8d %-7s v%c %-16s %s: %s", @@ -1039,12 +1037,9 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o get_nameserver_list (current->config, &tmp_gstring)); } - if (!skip) { + if (!skip) merge_one_ip_config_data (&rc, current); - plugin_confs[i] = current; - } } - plugin_confs[i] = NULL; } /* If the hostname is a FQDN ("dcbw.example.com"), then add the domain part of it @@ -1078,7 +1073,6 @@ _collect_resolv_conf_data (NMDnsManager *self, /* only for logging context, no o } g_ptr_array_set_size (rc.searches, i); - *out_plugin_confs = plugin_confs; *out_searches = _ptrarray_to_strv (rc.searches); *out_options = _ptrarray_to_strv (rc.options); *out_nameservers = _ptrarray_to_strv (rc.nameservers); @@ -1102,7 +1096,6 @@ update_dns (NMDnsManager *self, SpawnResult result = SR_ERROR; NMConfigData *data; NMGlobalDnsConfig *global_config; - gs_free NMDnsIPConfigData **plugin_confs = NULL; g_return_val_if_fail (!error || !*error, FALSE); @@ -1136,8 +1129,7 @@ update_dns (NMDnsManager *self, compute_hash (self, global_config, priv->hash); _collect_resolv_conf_data (self, global_config, priv->configs, priv->hostname, - &searches, &options, &nameservers, &nis_servers, &nis_domain, - &plugin_confs); + &searches, &options, &nameservers, &nis_servers, &nis_domain); /* Let any plugins do their thing first */ if (priv->plugin) { @@ -1155,7 +1147,7 @@ update_dns (NMDnsManager *self, _LOGD ("update-dns: updating plugin %s", plugin_name); if (!nm_dns_plugin_update (plugin, - (const NMDnsIPConfigData **) plugin_confs, + priv->configs, global_config, priv->hostname)) { _LOGW ("update-dns: plugin %s update failed", plugin_name); diff --git a/src/dns/nm-dns-manager.h b/src/dns/nm-dns-manager.h index 899e4bb8..ee835927 100644 --- a/src/dns/nm-dns-manager.h +++ b/src/dns/nm-dns-manager.h @@ -44,6 +44,8 @@ typedef struct { char *iface; } NMDnsIPConfigData; +int nm_dns_ip_config_data_get_dns_priority (const NMDnsIPConfigData *config); + #define NM_TYPE_DNS_MANAGER (nm_dns_manager_get_type ()) #define NM_DNS_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NM_TYPE_DNS_MANAGER, NMDnsManager)) #define NM_DNS_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), NM_TYPE_DNS_MANAGER, NMDnsManagerClass)) diff --git a/src/dns/nm-dns-plugin.c b/src/dns/nm-dns-plugin.c index 00729c93..5805b7d8 100644 --- a/src/dns/nm-dns-plugin.c +++ b/src/dns/nm-dns-plugin.c @@ -77,7 +77,7 @@ G_DEFINE_TYPE_EXTENDED (NMDnsPlugin, nm_dns_plugin, G_TYPE_OBJECT, G_TYPE_FLAG_A gboolean nm_dns_plugin_update (NMDnsPlugin *self, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { diff --git a/src/dns/nm-dns-plugin.h b/src/dns/nm-dns-plugin.h index 12109441..996695c0 100644 --- a/src/dns/nm-dns-plugin.h +++ b/src/dns/nm-dns-plugin.h @@ -50,7 +50,7 @@ typedef struct { * configuration. */ gboolean (*update) (NMDnsPlugin *self, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname); @@ -80,7 +80,7 @@ gboolean nm_dns_plugin_is_caching (NMDnsPlugin *self); const char *nm_dns_plugin_get_name (NMDnsPlugin *self); gboolean nm_dns_plugin_update (NMDnsPlugin *self, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname); diff --git a/src/dns/nm-dns-systemd-resolved.c b/src/dns/nm-dns-systemd-resolved.c index ed165618..fce1fef1 100644 --- a/src/dns/nm-dns-systemd-resolved.c +++ b/src/dns/nm-dns-systemd-resolved.c @@ -102,12 +102,12 @@ call_done (GObject *source, GAsyncResult *r, gpointer user_data) static void add_interface_configuration (NMDnsSystemdResolved *self, GArray *interfaces, - const NMDnsIPConfigData *data) + const NMDnsIPConfigData *data, + gboolean skip) { int i; InterfaceConfig *ic = NULL; int ifindex; - NMDevice *device; if (NM_IS_IP4_CONFIG (data->config)) ifindex = nm_ip4_config_get_ifindex (data->config); @@ -116,8 +116,6 @@ add_interface_configuration (NMDnsSystemdResolved *self, else g_return_if_reached (); - device = nm_manager_get_device_by_ifindex (nm_manager_get (), ifindex); - for (i = 0; i < interfaces->len; i++) { InterfaceConfig *tic = &g_array_index (interfaces, InterfaceConfig, i); if (ifindex == tic->ifindex) { @@ -133,7 +131,8 @@ add_interface_configuration (NMDnsSystemdResolved *self, ic->ifindex = ifindex; } - ic->configs = g_list_append (ic->configs, data->config); + if (!skip) + ic->configs = g_list_append (ic->configs, data->config); } static void @@ -291,17 +290,25 @@ send_updates (NMDnsSystemdResolved *self) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { NMDnsSystemdResolved *self = NM_DNS_SYSTEMD_RESOLVED (plugin); GArray *interfaces = g_array_new (TRUE, TRUE, sizeof (InterfaceConfig)); - const NMDnsIPConfigData **c; - int i; - - for (c = configs; *c != NULL; c++) - add_interface_configuration (self, interfaces, *c); + guint i; + int prio, first_prio = 0; + + for (i = 0; i < configs->len; i++) { + gboolean skip = FALSE; + + prio = nm_dns_ip_config_data_get_dns_priority (configs->pdata[i]); + if (i == 0) + first_prio = prio; + else if (first_prio < 0 && first_prio != prio) + skip = TRUE; + add_interface_configuration (self, interfaces, configs->pdata[i], skip); + } free_pending_updates (self); diff --git a/src/dns/nm-dns-unbound.c b/src/dns/nm-dns-unbound.c index 6af4bad8..0b80055f 100644 --- a/src/dns/nm-dns-unbound.c +++ b/src/dns/nm-dns-unbound.c @@ -39,7 +39,7 @@ G_DEFINE_TYPE (NMDnsUnbound, nm_dns_unbound, NM_TYPE_DNS_PLUGIN) static gboolean update (NMDnsPlugin *plugin, - const NMDnsIPConfigData **configs, + const GPtrArray *configs, const NMGlobalDnsConfig *global_config, const char *hostname) { diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c index 19c0343f..862754f9 100644 --- a/src/nm-active-connection.c +++ b/src/nm-active-connection.c @@ -111,8 +111,7 @@ static void _device_cleanup (NMActiveConnection *self); static void _settings_connection_notify_flags (NMSettingsConnection *settings_connection, GParamSpec *param, NMActiveConnection *self); -static void _set_activation_type (NMActiveConnection *self, - NMActivationType activation_type); +static void _set_activation_type_managed (NMActiveConnection *self); /*****************************************************************************/ @@ -236,7 +235,7 @@ nm_active_connection_set_state (NMActiveConnection *self, /* assuming connections mean to gracefully take over an externally * configured device. Once activation is complete, an assumed * activation *is* the same as a full activation. */ - _set_activation_type (self, NM_ACTIVATION_TYPE_MANAGED); + _set_activation_type_managed (self); } old_state = priv->state; @@ -755,13 +754,31 @@ _set_activation_type (NMActiveConnection *self, if (priv->activation_type == activation_type) return; + priv->activation_type = activation_type; + + if (priv->settings_connection) { + if (activation_type == NM_ACTIVATION_TYPE_EXTERNAL) + g_signal_connect (priv->settings_connection, "notify::"NM_SETTINGS_CONNECTION_FLAGS, (GCallback) _settings_connection_notify_flags, self); + else + g_signal_handlers_disconnect_by_func (priv->settings_connection, _settings_connection_notify_flags, self); + } +} + +static void +_set_activation_type_managed (NMActiveConnection *self) +{ + NMActiveConnectionPrivate *priv = NM_ACTIVE_CONNECTION_GET_PRIVATE (self); + + if (priv->activation_type == NM_ACTIVATION_TYPE_MANAGED) + return; + _LOGD ("update activation type from %s to %s", nm_activation_type_to_string (priv->activation_type), - nm_activation_type_to_string (activation_type)); - priv->activation_type = activation_type; + nm_activation_type_to_string (NM_ACTIVATION_TYPE_MANAGED)); - if ( priv->activation_type == NM_ACTIVATION_TYPE_MANAGED - && priv->device + _set_activation_type (self, NM_ACTIVATION_TYPE_MANAGED); + + if ( priv->device && self == NM_ACTIVE_CONNECTION (nm_device_get_act_request (priv->device)) && NM_IN_SET (nm_device_sys_iface_state_get (priv->device), NM_DEVICE_SYS_IFACE_STATE_EXTERNAL, @@ -776,6 +793,8 @@ _settings_connection_notify_flags (NMSettingsConnection *settings_connection, GParamSpec *param, NMActiveConnection *self) { + GError *error = NULL; + nm_assert (NM_IS_ACTIVE_CONNECTION (self)); nm_assert (NM_IS_SETTINGS_CONNECTION (settings_connection)); nm_assert (nm_active_connection_get_activation_type (self) == NM_ACTIVATION_TYPE_EXTERNAL); @@ -784,9 +803,14 @@ _settings_connection_notify_flags (NMSettingsConnection *settings_connection, if (nm_settings_connection_get_nm_generated (settings_connection)) return; - g_signal_handlers_disconnect_by_func (settings_connection, _settings_connection_notify_flags, self); - _set_activation_type (self, NM_ACTIVATION_TYPE_MANAGED); - nm_device_reapply_settings_immediately (nm_active_connection_get_device (self)); + _set_activation_type_managed (self); + if (!nm_device_reapply (nm_active_connection_get_device (self), + NM_CONNECTION (nm_active_connection_get_settings_connection (self)), + &error)) { + _LOGW ("failed to reapply new device settings on previously externally managed device: %s", + error->message); + g_error_free (error); + } } /*****************************************************************************/ @@ -1147,7 +1171,7 @@ set_property (GObject *object, guint prop_id, NM_ACTIVATION_TYPE_ASSUME, NM_ACTIVATION_TYPE_EXTERNAL)) g_return_if_reached (); - priv->activation_type = (NMActivationType) i; + _set_activation_type (self, (NMActivationType) i); break; case PROP_SPECIFIC_OBJECT: tmp = g_value_get_string (value); diff --git a/src/nm-checkpoint.c b/src/nm-checkpoint.c index 3f2f0eaa..d59bc574 100644 --- a/src/nm-checkpoint.c +++ b/src/nm-checkpoint.c @@ -275,6 +275,17 @@ activate: _LOGD ("rollback: reactivating connection %s", nm_settings_connection_get_uuid (connection)); subject = nm_auth_subject_new_internal (); + + /* Disconnect the device if needed. This necessary because now + * the manager prevents the reactivation of the same connection by + * an internal subject. */ + if ( nm_device_get_state (device) > NM_DEVICE_STATE_DISCONNECTED + && nm_device_get_state (device) < NM_DEVICE_STATE_DEACTIVATING) { + nm_device_state_changed (device, + NM_DEVICE_STATE_DEACTIVATING, + NM_DEVICE_STATE_REASON_NEW_ACTIVATION); + } + if (!nm_manager_activate_connection (priv->manager, connection, dev_checkpoint->applied_connection, diff --git a/src/nm-config.c b/src/nm-config.c index 2cdf8556..91c21de7 100644 --- a/src/nm-config.c +++ b/src/nm-config.c @@ -1872,6 +1872,14 @@ _nm_config_state_set (NMConfig *self, #define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_MANAGED "managed" #define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_PERM_HW_ADDR_FAKE "perm-hw-addr-fake" #define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_CONNECTION_UUID "connection-uuid" +#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_NM_OWNED "nm-owned" + +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_device_state_managed_type_to_str, NMConfigDeviceStateManagedType, + NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"), + NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNKNOWN, "unknown"), + NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED, "unmanaged"), + NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED, "managed"), +); static NMConfigDeviceStateData * _config_device_state_data_new (int ifindex, GKeyFile *kf) @@ -1882,26 +1890,29 @@ _config_device_state_data_new (int ifindex, GKeyFile *kf) gs_free char *perm_hw_addr_fake = NULL; gsize connection_uuid_len; gsize perm_hw_addr_fake_len; + gint nm_owned = -1; char *p; nm_assert (ifindex > 0); if (kf) { - gboolean managed; - - managed = nm_config_keyfile_get_boolean (kf, - DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE, - DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_MANAGED, - FALSE); - managed_type = managed - ? NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED - : NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED; - - if (managed) { + switch (nm_config_keyfile_get_boolean (kf, + DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE, + DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_MANAGED, + -1)) { + case TRUE: + managed_type = NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED; connection_uuid = nm_config_keyfile_get_value (kf, DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE, DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_CONNECTION_UUID, NM_CONFIG_GET_VALUE_STRIP | NM_CONFIG_GET_VALUE_NO_EMPTY); + break; + case FALSE: + managed_type = NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED; + break; + case -1: + /* missing property in keyfile. */ + break; } perm_hw_addr_fake = nm_config_keyfile_get_value (kf, @@ -1915,6 +1926,11 @@ _config_device_state_data_new (int ifindex, GKeyFile *kf) g_free (perm_hw_addr_fake); perm_hw_addr_fake = normalized; } + + nm_owned = nm_config_keyfile_get_boolean (kf, + DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE, + DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_NM_OWNED, + -1); } connection_uuid_len = connection_uuid ? strlen (connection_uuid) + 1 : 0; @@ -1928,6 +1944,7 @@ _config_device_state_data_new (int ifindex, GKeyFile *kf) device_state->managed = managed_type; device_state->connection_uuid = NULL; device_state->perm_hw_addr_fake = NULL; + device_state->nm_owned = nm_owned; p = (char *) (&device_state[1]); if (connection_uuid) { @@ -1957,6 +1974,7 @@ nm_config_device_state_load (int ifindex) NMConfigDeviceStateData *device_state; char path[NM_STRLEN (NM_CONFIG_DEVICE_STATE_DIR) + 60]; gs_unref_keyfile GKeyFile *kf = NULL; + const char *nm_owned_str; g_return_val_if_fail (ifindex > 0, NULL); @@ -1967,33 +1985,28 @@ nm_config_device_state_load (int ifindex) g_clear_pointer (&kf, g_key_file_unref); device_state = _config_device_state_data_new (ifindex, kf); + nm_owned_str = device_state->nm_owned == TRUE ? + ", nm-owned=1" : + (device_state->nm_owned == FALSE ? ", nm-owned=0" : ""); - if (kf) { - _LOGT ("device-state: read #%d (%s); managed=%d%s%s%s%s%s%s", - ifindex, path, - device_state->managed, - NM_PRINT_FMT_QUOTED (device_state->connection_uuid, ", connection-uuid=", device_state->connection_uuid, "", ""), - NM_PRINT_FMT_QUOTED (device_state->perm_hw_addr_fake, ", perm-hw-addr-fake=", device_state->perm_hw_addr_fake, "", "")); - } else { - _LOGT ("device-state: read #%d (%s); no persistent state", - ifindex, path); - } + + _LOGT ("device-state: %s #%d (%s); managed=%s%s%s%s%s%s%s%s", + kf ? "read" : "miss", + ifindex, path, + _device_state_managed_type_to_str (device_state->managed), + NM_PRINT_FMT_QUOTED (device_state->connection_uuid, ", connection-uuid=", device_state->connection_uuid, "", ""), + NM_PRINT_FMT_QUOTED (device_state->perm_hw_addr_fake, ", perm-hw-addr-fake=", device_state->perm_hw_addr_fake, "", ""), + nm_owned_str); return device_state; } -NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_device_state_managed_type_to_str, NMConfigDeviceStateManagedType, - NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"), - NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNKNOWN, "unknown"), - NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED, "unmanaged"), - NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED, "managed"), -); - gboolean nm_config_device_state_write (int ifindex, NMConfigDeviceStateManagedType managed, const char *perm_hw_addr_fake, - const char *connection_uuid) + const char *connection_uuid, + gint nm_owned) { char path[NM_STRLEN (NM_CONFIG_DEVICE_STATE_DIR) + 60]; GError *local = NULL; @@ -2028,6 +2041,13 @@ nm_config_device_state_write (int ifindex, DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_CONNECTION_UUID, connection_uuid); } + if (nm_owned >= 0) { + g_key_file_set_boolean (kf, + DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE, + DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_NM_OWNED, + nm_owned); + } + if (!g_key_file_save_to_file (kf, path, &local)) { _LOGW ("device-state: write #%d (%s) failed: %s", ifindex, path, local->message); diff --git a/src/nm-config.h b/src/nm-config.h index 283d6a1b..c5ff7c67 100644 --- a/src/nm-config.h +++ b/src/nm-config.h @@ -63,6 +63,7 @@ #define NM_CONFIG_KEYFILE_KEY_MAIN_DHCP "dhcp" #define NM_CONFIG_KEYFILE_KEY_MAIN_DEBUG "debug" #define NM_CONFIG_KEYFILE_KEY_MAIN_HOSTNAME_MODE "hostname-mode" +#define NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER "slaves-order" #define NM_CONFIG_KEYFILE_KEY_LOGGING_BACKEND "backend" #define NM_CONFIG_KEYFILE_KEY_CONFIG_ENABLE "enable" #define NM_CONFIG_KEYFILE_KEY_ATOMIC_SECTION_WAS ".was" @@ -204,13 +205,18 @@ struct _NMConfigDeviceStateData { const char *connection_uuid; const char *perm_hw_addr_fake; + + /* whether the device was nm-owned (0/1) or -1 for + * non-software devices. */ + gint nm_owned; }; NMConfigDeviceStateData *nm_config_device_state_load (int ifindex); gboolean nm_config_device_state_write (int ifindex, NMConfigDeviceStateManagedType managed, const char *perm_hw_addr_fake, - const char *connection_uuid); + const char *connection_uuid, + gint nm_owned); void nm_config_device_state_prune_unseen (GHashTable *seen_ifindexes); /*****************************************************************************/ diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c index 75bb7b63..6f16b28e 100644 --- a/src/nm-connectivity.c +++ b/src/nm-connectivity.c @@ -144,7 +144,7 @@ curl_check_connectivity (CURLM *mhandle, CURLMcode ret) continue; /* Here we have completed a session. Check easy session result. */ - eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, &cb_data); + eret = curl_easy_getinfo (msg->easy_handle, CURLINFO_PRIVATE, (char **) &cb_data); if (eret != CURLE_OK) { _LOG2E ("curl cannot extract cb_data for easy handle %p, skipping msg", msg->easy_handle); continue; @@ -486,27 +486,28 @@ nm_connectivity_init (NMConnectivity *self) NMConnectivityPrivate *priv = NM_CONNECTIVITY_GET_PRIVATE (self); CURLcode retv; + retv = curl_global_init (CURL_GLOBAL_ALL); + if (retv == CURLE_OK) + priv->curl_mhandle = curl_multi_init (); + + if (!priv->curl_mhandle) + _LOGE ("unable to init cURL, connectivity check will not work"); + else { + curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb); + curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self); + curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb); + curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self); + curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1); + } + priv->config = g_object_ref (nm_config_get ()); + update_config (self, nm_config_get_data (priv->config)); g_signal_connect (G_OBJECT (priv->config), NM_CONFIG_SIGNAL_CONFIG_CHANGED, G_CALLBACK (config_changed_cb), self); - retv = curl_global_init (CURL_GLOBAL_ALL); - if (retv == CURLE_OK) - priv->curl_mhandle = curl_multi_init (); - - if (priv->curl_mhandle == NULL) { - _LOGE ("cnable to init cURL, connectivity check will not work"); - return; - } - - curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETFUNCTION, multi_socket_cb); - curl_multi_setopt (priv->curl_mhandle, CURLMOPT_SOCKETDATA, self); - curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERFUNCTION, multi_timer_cb); - curl_multi_setopt (priv->curl_mhandle, CURLMOPT_TIMERDATA, self); - curl_multi_setopt (priv->curl_mhandle, CURLOPT_VERBOSE, 1); } static void diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c index 20532e86..ae6af9c3 100644 --- a/src/nm-ip4-config.c +++ b/src/nm-ip4-config.c @@ -248,6 +248,16 @@ notify_addresses (NMIP4Config *self) _notify (self, PROP_ADDRESSES); } +static gint +sort_captured_addresses (gconstpointer a, gconstpointer b) +{ + const NMPlatformIP4Address *addr_a = a, *addr_b = b; + + /* Primary addresses first */ + return NM_FLAGS_HAS (addr_a->n_ifa_flags, IFA_F_SECONDARY) - + NM_FLAGS_HAS (addr_b->n_ifa_flags, IFA_F_SECONDARY); +} + NMIP4Config * nm_ip4_config_capture (NMPlatform *platform, int ifindex, gboolean capture_resolv_conf) { @@ -269,6 +279,8 @@ nm_ip4_config_capture (NMPlatform *platform, int ifindex, gboolean capture_resol g_array_unref (priv->routes); priv->addresses = nm_platform_ip4_address_get_all (platform, ifindex); + g_array_sort (priv->addresses, sort_captured_addresses); + priv->routes = nm_platform_ip4_route_get_all (platform, ifindex, NM_PLATFORM_GET_ROUTE_FLAGS_WITH_DEFAULT | NM_PLATFORM_GET_ROUTE_FLAGS_WITH_NON_DEFAULT); /* Extract gateway from default route */ diff --git a/src/nm-logging.h b/src/nm-logging.h index ff1fac79..91a41412 100644 --- a/src/nm-logging.h +++ b/src/nm-logging.h @@ -306,6 +306,37 @@ gboolean nm_logging_syslog_enabled (void); #define _LOG2t_err(errsv, ...) G_STMT_START { if (FALSE) { _NMLOG2_err (errsv, LOGL_TRACE, __VA_ARGS__); } } G_STMT_END #endif +#define _NMLOG3_ENABLED(level) ( nm_logging_enabled ((level), (_NMLOG3_DOMAIN)) ) + +#define _LOG3T(...) _NMLOG3 (LOGL_TRACE, __VA_ARGS__) +#define _LOG3D(...) _NMLOG3 (LOGL_DEBUG, __VA_ARGS__) +#define _LOG3I(...) _NMLOG3 (LOGL_INFO , __VA_ARGS__) +#define _LOG3W(...) _NMLOG3 (LOGL_WARN , __VA_ARGS__) +#define _LOG3E(...) _NMLOG3 (LOGL_ERR , __VA_ARGS__) + +#define _LOG3T_ENABLED(...) _NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__) +#define _LOG3D_ENABLED(...) _NMLOG3_ENABLED (LOGL_DEBUG, ##__VA_ARGS__) +#define _LOG3I_ENABLED(...) _NMLOG3_ENABLED (LOGL_INFO , ##__VA_ARGS__) +#define _LOG3W_ENABLED(...) _NMLOG3_ENABLED (LOGL_WARN , ##__VA_ARGS__) +#define _LOG3E_ENABLED(...) _NMLOG3_ENABLED (LOGL_ERR , ##__VA_ARGS__) + +#define _LOG3T_err(errsv, ...) _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__) +#define _LOG3D_err(errsv, ...) _NMLOG3_err (errsv, LOGL_DEBUG, __VA_ARGS__) +#define _LOG3I_err(errsv, ...) _NMLOG3_err (errsv, LOGL_INFO , __VA_ARGS__) +#define _LOG3W_err(errsv, ...) _NMLOG3_err (errsv, LOGL_WARN , __VA_ARGS__) +#define _LOG3E_err(errsv, ...) _NMLOG3_err (errsv, LOGL_ERR , __VA_ARGS__) + +#ifdef NM_MORE_LOGGING +#define _LOG3t_ENABLED(...) _NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__) +#define _LOG3t(...) _NMLOG3 (LOGL_TRACE, __VA_ARGS__) +#define _LOG3t_err(errsv, ...) _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__) +#else +/* still call the logging macros to get compile time checks, but they will be optimized out. */ +#define _LOG3t_ENABLED(...) ( FALSE && (_NMLOG3_ENABLED (LOGL_TRACE, ##__VA_ARGS__)) ) +#define _LOG3t(...) G_STMT_START { if (FALSE) { _NMLOG3 (LOGL_TRACE, __VA_ARGS__); } } G_STMT_END +#define _LOG3t_err(errsv, ...) G_STMT_START { if (FALSE) { _NMLOG3_err (errsv, LOGL_TRACE, __VA_ARGS__); } } G_STMT_END +#endif + extern void (*_nm_logging_clear_platform_logging_cache) (void); /*****************************************************************************/ diff --git a/src/nm-manager.c b/src/nm-manager.c index a7402195..7662c2e3 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -222,19 +222,64 @@ NM_DEFINE_SINGLETON_INSTANCE (NMManager); #define _NMLOG_PREFIX_NAME "manager" #define _NMLOG(level, domain, ...) \ G_STMT_START { \ - const NMLogLevel __level = (level); \ - const NMLogDomain __domain = (domain); \ + const NMLogLevel _level = (level); \ + const NMLogDomain _domain = (domain); \ \ - if (nm_logging_enabled (__level, __domain)) { \ - const NMManager *const __self = (self); \ - char __sbuf[32]; \ + if (nm_logging_enabled (_level, _domain)) { \ + const NMManager *const _self = (self); \ + char _sbuf[32]; \ \ - _nm_log (__level, __domain, 0, NULL, NULL, \ + _nm_log (_level, _domain, 0, NULL, NULL, \ "%s%s: " _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ _NMLOG_PREFIX_NAME, \ - (__self && __self != singleton_instance) \ - ? nm_sprintf_buf (__sbuf, "[%p]", __self) \ - : "" \ + ((_self && _self != singleton_instance) \ + ? nm_sprintf_buf (_sbuf, "[%p]", _self) \ + : "") \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +#define _NMLOG2(level, domain, device, ...) \ + G_STMT_START { \ + const NMLogLevel _level = (level); \ + const NMLogDomain _domain = (domain); \ + \ + if (nm_logging_enabled (_level, _domain)) { \ + const NMManager *const _self = (self); \ + const char *const _ifname = _nm_device_get_iface (device); \ + char _sbuf[32]; \ + \ + _nm_log (_level, _domain, 0, \ + _ifname, NULL, \ + "%s%s: %s%s%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME, \ + ((_self && _self != singleton_instance) \ + ? nm_sprintf_buf (_sbuf, "[%p]", _self) \ + : ""), \ + NM_PRINT_FMT_QUOTED (_ifname, "(", _ifname, "): ", "") \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +#define _NMLOG3(level, domain, connection, ...) \ + G_STMT_START { \ + const NMLogLevel _level = (level); \ + const NMLogDomain _domain = (domain); \ + \ + if (nm_logging_enabled (_level, _domain)) { \ + const NMManager *const _self = (self); \ + NMConnection *const _connection = (connection); \ + const char *const _con_id = _nm_connection_get_id (_connection); \ + char _sbuf[32]; \ + \ + _nm_log (_level, _domain, 0, \ + NULL, _nm_connection_get_uuid (_connection), \ + "%s%s: %s%s%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME, \ + ((_self && _self != singleton_instance) \ + ? nm_sprintf_buf (_sbuf, "[%p]", _self) \ + : ""), \ + NM_PRINT_FMT_QUOTED (_con_id, "(", _con_id, ") ", "") \ _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ } \ } G_STMT_END @@ -983,8 +1028,8 @@ remove_device (NMManager *self, NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); gboolean unmanage = FALSE; - _LOGD (LOGD_DEVICE, "(%s): removing device (allow_unmanage %d, managed %d)", - nm_device_get_iface (device), allow_unmanage, nm_device_get_managed (device, FALSE)); + _LOG2D (LOGD_DEVICE, device, "removing device (allow_unmanage %d, managed %d)", + allow_unmanage, nm_device_get_managed (device, FALSE)); if (allow_unmanage && nm_device_get_managed (device, FALSE)) { @@ -1238,8 +1283,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection) iface = nm_manager_get_connection_iface (self, connection, &parent, &error); if (!iface) { - _LOGD (LOGD_DEVICE, "(%s) can't get a name of a virtual device: %s", - nm_connection_get_id (connection), error->message); + _LOG3D (LOGD_DEVICE, connection, "can't get a name of a virtual device: %s", + error->message); g_error_free (error); return NULL; } @@ -1250,8 +1295,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection) if (nm_device_check_connection_compatible (candidate, connection)) { if (nm_device_is_real (candidate)) { - _LOGD (LOGD_DEVICE, "(%s) already created virtual interface name %s", - nm_connection_get_id (connection), iface); + _LOG3D (LOGD_DEVICE, connection, "already created virtual interface name %s", + iface); return NULL; } @@ -1265,27 +1310,26 @@ system_create_virtual_device (NMManager *self, NMConnection *connection) factory = nm_device_factory_manager_find_factory_for_connection (connection); if (!factory) { - _LOGE (LOGD_DEVICE, "(%s:%s) NetworkManager plugin for '%s' unavailable", - nm_connection_get_id (connection), iface, + _LOG3E (LOGD_DEVICE, connection, "(%s) NetworkManager plugin for '%s' unavailable", + iface, nm_connection_get_connection_type (connection)); return NULL; } device = nm_device_factory_create_device (factory, iface, NULL, connection, NULL, &error); if (!device) { - _LOGW (LOGD_DEVICE, "(%s) factory can't create the device: %s", - nm_connection_get_id (connection), error->message); + _LOG3W (LOGD_DEVICE, connection, "factory can't create the device: %s", + error->message); g_error_free (error); return NULL; } - _LOGD (LOGD_DEVICE, "(%s) create virtual device %s", - nm_connection_get_id (connection), + _LOG3D (LOGD_DEVICE, connection, "create virtual device %s", nm_device_get_iface (device)); if (!add_device (self, device, &error)) { - _LOGW (LOGD_DEVICE, "(%s) can't register the device with manager: %s", - nm_connection_get_id (connection), error->message); + _LOG3W (LOGD_DEVICE, connection, "can't register the device with manager: %s", + error->message); g_error_free (error); g_object_unref (device); return NULL; @@ -1313,8 +1357,8 @@ system_create_virtual_device (NMManager *self, NMConnection *connection) /* Create any backing resources the device needs */ if (!nm_device_create_and_realize (device, connection, parent, &error)) { - _LOGW (LOGD_DEVICE, "(%s) couldn't create the device: %s", - nm_connection_get_id (connection), error->message); + _LOG3W (LOGD_DEVICE, connection, "couldn't create the device: %s", + error->message); g_error_free (error); remove_device (self, device, FALSE, TRUE); return NULL; @@ -1481,9 +1525,7 @@ manager_update_radio_enabled (NMManager *self, NMDevice *device = NM_DEVICE (iter->data); if (nm_device_get_rfkill_type (device) == rstate->rtype) { - _LOGD (LOGD_RFKILL, "(%s): setting radio %s", - nm_device_get_iface (device), - enabled ? "enabled" : "disabled"); + _LOG2D (LOGD_RFKILL, device, "rfkill: setting radio %s", enabled ? "enabled" : "disabled"); nm_device_set_enabled (device, enabled); } } @@ -1528,14 +1570,14 @@ manager_rfkill_update_one_type (NMManager *self, /* Print out all states affecting device enablement */ if (rstate->desc) { - _LOGD (LOGD_RFKILL, "%s hw-enabled %d sw-enabled %d", + _LOGD (LOGD_RFKILL, "rfkill: %s hw-enabled %d sw-enabled %d", rstate->desc, rstate->hw_enabled, rstate->sw_enabled); } /* Log new killswitch state */ new_rfkilled = rstate->hw_enabled && rstate->sw_enabled; if (old_rfkilled != new_rfkilled) { - _LOGI (LOGD_RFKILL, "%s now %s by radio killswitch", + _LOGI (LOGD_RFKILL, "rfkill: %s now %s by radio killswitch", rstate->desc, new_rfkilled ? "enabled" : "disabled"); } @@ -1691,11 +1733,6 @@ done: * get_existing_connection: * @manager: #NMManager instance * @device: #NMDevice instance - * @guess_assume: whether to employ a heuristic to search for a matching - * connection to assume. - * @assume_connection_uuid: if present, try to assume a connection with this - * UUID. If no uuid is given or no matching connection is found, we - * only do external activation. * @out_generated: (allow-none): return TRUE, if the connection was generated. * * Returns: a #NMSettingsConnection to be assumed by the device, or %NULL if @@ -1704,18 +1741,19 @@ done: static NMSettingsConnection * get_existing_connection (NMManager *self, NMDevice *device, - gboolean guess_assume, - const char *assume_connection_uuid, gboolean *out_generated) { NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - NMConnection *connection = NULL; + gs_unref_object NMConnection *connection = NULL; NMSettingsConnection *added = NULL; GError *error = NULL; NMDevice *master = NULL; int ifindex = nm_device_get_ifindex (device); NMSettingsConnection *matched; NMSettingsConnection *connection_checked = NULL; + gboolean assume_state_guess_assume = FALSE; + const char *assume_state_connection_uuid = NULL; + gboolean maybe_later; if (out_generated) *out_generated = FALSE; @@ -1728,13 +1766,15 @@ get_existing_connection (NMManager *self, if (master_ifindex) { master = nm_manager_get_device_by_ifindex (self, master_ifindex); if (!master) { - _LOGD (LOGD_DEVICE, "(%s): cannot generate connection for slave before its master (%s/%d)", - nm_device_get_iface (device), nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex); + _LOG2D (LOGD_DEVICE, device, "assume: don't assume because " + "cannot generate connection for slave before its master (%s/%d)", + nm_platform_link_get_name (NM_PLATFORM_GET, master_ifindex), master_ifindex); return NULL; } if (!nm_device_get_act_request (master)) { - _LOGD (LOGD_DEVICE, "(%s): cannot generate connection for slave before master %s activates", - nm_device_get_iface (device), nm_device_get_iface (master)); + _LOG2D (LOGD_DEVICE, device, "assume: don't assume because " + "cannot generate connection for slave before master %s activates", + nm_device_get_iface (master)); return NULL; } } @@ -1746,9 +1786,19 @@ get_existing_connection (NMManager *self, * update_connection() implemented, otherwise nm_device_generate_connection() * returns NULL. */ - connection = nm_device_generate_connection (device, master); - if (!connection) + connection = nm_device_generate_connection (device, master, &maybe_later, &error); + if (!connection) { + if (!maybe_later) + nm_device_assume_state_reset (device); + _LOG2D (LOGD_DEVICE, device, "assume: cannot generate connection: %s", + error->message); + g_error_free (error); return NULL; + } + + nm_device_assume_state_get (device, + &assume_state_guess_assume, + &assume_state_connection_uuid); /* Now we need to compare the generated connection to each configured * connection. The comparison function is the heart of the connection @@ -1759,8 +1809,8 @@ get_existing_connection (NMManager *self, * When no configured connection matches the generated connection, we keep * the generated connection instead. */ - if ( assume_connection_uuid - && (connection_checked = nm_settings_get_connection_by_uuid (priv->settings, assume_connection_uuid)) + if ( assume_state_connection_uuid + && (connection_checked = nm_settings_get_connection_by_uuid (priv->settings, assume_state_connection_uuid)) && !active_connection_find_first (self, connection_checked, NULL, NM_ACTIVE_CONNECTION_STATE_DEACTIVATING) && nm_device_check_connection_compatible (device, NM_CONNECTION (connection_checked))) { @@ -1778,7 +1828,7 @@ get_existing_connection (NMManager *self, } else matched = NULL; - if (!matched && guess_assume) { + if (!matched && assume_state_guess_assume) { gs_free NMSettingsConnection **connections = NULL; guint len, i, j; @@ -1808,84 +1858,73 @@ get_existing_connection (NMManager *self, } if (matched) { - _LOGI (LOGD_DEVICE, "(%s): found matching connection '%s' (%s)%s", - nm_device_get_iface (device), - nm_settings_connection_get_id (matched), - nm_settings_connection_get_uuid (matched), - assume_connection_uuid && nm_streq (assume_connection_uuid, nm_settings_connection_get_uuid (matched)) - ? " (indicated)" : " (guessed)"); - g_object_unref (connection); + _LOG2I (LOGD_DEVICE, device, "assume: will attempt to assume matching connection '%s' (%s)%s", + nm_settings_connection_get_id (matched), + nm_settings_connection_get_uuid (matched), + assume_state_connection_uuid && nm_streq (assume_state_connection_uuid, nm_settings_connection_get_uuid (matched)) + ? " (indicated)" : " (guessed)"); + nm_device_assume_state_reset (device); return matched; } - _LOGD (LOGD_DEVICE, "(%s): generated connection '%s'", - nm_device_get_iface (device), - nm_connection_get_id (connection)); + _LOG2D (LOGD_DEVICE, device, "assume: generated connection '%s' (%s)", + nm_connection_get_id (connection), + nm_connection_get_uuid (connection)); + + nm_device_assume_state_reset (device); added = nm_settings_add_connection (priv->settings, connection, FALSE, &error); - if (added) { - nm_settings_connection_set_flags (NM_SETTINGS_CONNECTION (added), - NM_SETTINGS_CONNECTION_FLAGS_NM_GENERATED | - NM_SETTINGS_CONNECTION_FLAGS_VOLATILE, - TRUE); - if (out_generated) - *out_generated = TRUE; - } else { - _LOGW (LOGD_SETTINGS, "(%s) Couldn't save generated connection '%s': %s", - nm_device_get_iface (device), + if (!added) { + _LOG2W (LOGD_SETTINGS, device, "assume: failure to save generated connection '%s': %s", nm_connection_get_id (connection), error->message); - g_clear_error (&error); + g_error_free (error); + return NULL; } - g_object_unref (connection); - return added ? added : NULL; + nm_settings_connection_set_flags (NM_SETTINGS_CONNECTION (added), + NM_SETTINGS_CONNECTION_FLAGS_NM_GENERATED | + NM_SETTINGS_CONNECTION_FLAGS_VOLATILE, + TRUE); + NM_SET_OUT (out_generated, TRUE); + return added; } static gboolean recheck_assume_connection (NMManager *self, - NMDevice *device, - gboolean guess_assume, - const char *assume_connection_uuid) + NMDevice *device) { NMSettingsConnection *connection; gboolean was_unmanaged = FALSE; gboolean generated = FALSE; NMDeviceState state; - NMDeviceSysIfaceState if_state; - NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); g_return_val_if_fail (NM_IS_MANAGER (self), FALSE); g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); - if (nm_device_get_is_nm_owned (device)) - return FALSE; - - if (!nm_device_get_managed (device, FALSE)) + if (!nm_device_get_managed (device, FALSE)) { + nm_device_assume_state_reset (device); + _LOG2D (LOGD_DEVICE, device, "assume: don't assume because %s", "not managed"); return FALSE; + } state = nm_device_get_state (device); - if (state > NM_DEVICE_STATE_DISCONNECTED) - return FALSE; - - if_state = nm_device_sys_iface_state_get (device); - if (!priv->startup && (if_state == NM_DEVICE_SYS_IFACE_STATE_MANAGED)) - nm_assert (!guess_assume && (assume_connection_uuid == NULL)); - else if (if_state != NM_DEVICE_SYS_IFACE_STATE_EXTERNAL) - return FALSE; - - connection = get_existing_connection (self, device, guess_assume, assume_connection_uuid, &generated); - if (!connection) { - _LOGD (LOGD_DEVICE, "(%s): can't assume; no connection", - nm_device_get_iface (device)); + if (state > NM_DEVICE_STATE_DISCONNECTED) { + nm_device_assume_state_reset (device); + _LOG2D (LOGD_DEVICE, device, "assume: don't assume due to device state %s", + nm_device_state_to_str (state)); return FALSE; } - _LOGD (LOGD_DEVICE, "(%s): will attempt to assume connection", - nm_device_get_iface (device)); + connection = get_existing_connection (self, device, &generated); + /* log no reason. get_existing_connection() already does it. */ + if (!connection) + return FALSE; - if (!generated) - nm_device_sys_iface_state_set (device, NM_DEVICE_SYS_IFACE_STATE_ASSUME); + nm_device_sys_iface_state_set (device, + generated + ? NM_DEVICE_SYS_IFACE_STATE_EXTERNAL + : NM_DEVICE_SYS_IFACE_STATE_ASSUME); /* Move device to DISCONNECTED to activate the connection */ if (state == NM_DEVICE_STATE_UNMANAGED) { @@ -1915,7 +1954,7 @@ recheck_assume_connection (NMManager *self, &error); if (!active) { - _LOGW (LOGD_DEVICE, "assumed connection %s failed to activate: %s", + _LOGW (LOGD_DEVICE, "assume: assumed connection %s failed to activate: %s", nm_connection_get_path (NM_CONNECTION (connection)), error->message); g_error_free (error); @@ -1927,9 +1966,7 @@ recheck_assume_connection (NMManager *self, } if (generated) { - _LOGD (LOGD_DEVICE, "(%s): connection assumption failed. Deleting generated connection", - nm_device_get_iface (device)); - + _LOG2D (LOGD_DEVICE, device, "assume: deleting generated connection after assuming failed"); nm_settings_connection_delete (connection, NULL, NULL); } else { if (nm_device_sys_iface_state_get (device) == NM_DEVICE_SYS_IFACE_STATE_ASSUME) @@ -1952,9 +1989,9 @@ recheck_assume_connection (NMManager *self, } static void -recheck_assume_connection_cb (NMDevice *device, gpointer user_data) +recheck_assume_connection_cb (NMManager *self, NMDevice *device) { - recheck_assume_connection (user_data, device, FALSE, NULL); + recheck_assume_connection (self, device); } static void @@ -2047,19 +2084,19 @@ device_connectivity_changed (NMDevice *device, static void _device_realize_finish (NMManager *self, NMDevice *device, - const NMPlatformLink *plink, - gboolean guess_assume, - const char *connection_uuid_to_assume) + const NMPlatformLink *plink) { g_return_if_fail (NM_IS_MANAGER (self)); g_return_if_fail (NM_IS_DEVICE (device)); nm_device_realize_finish (device, plink); - if (!nm_device_get_managed (device, FALSE)) + if (!nm_device_get_managed (device, FALSE)) { + nm_device_assume_state_reset (device); return; + } - if (recheck_assume_connection (self, device, guess_assume, connection_uuid_to_assume)) + if (recheck_assume_connection (self, device)) return; /* if we failed to assume a connection for the managed device, but the device @@ -2129,9 +2166,9 @@ add_device (NMManager *self, NMDevice *device, GError **error) G_CALLBACK (device_removed_cb), self); - g_signal_connect (device, NM_DEVICE_RECHECK_ASSUME, - G_CALLBACK (recheck_assume_connection_cb), - self); + g_signal_connect_data (device, NM_DEVICE_RECHECK_ASSUME, + G_CALLBACK (recheck_assume_connection_cb), + self, NULL, G_CONNECT_SWAPPED); g_signal_connect (device, "notify::" NM_DEVICE_IP_IFACE, G_CALLBACK (device_ip_iface_changed), @@ -2183,7 +2220,7 @@ add_device (NMManager *self, NMDevice *device, GError **error) manager_sleeping (self)); dbus_path = nm_exported_object_export (NM_EXPORTED_OBJECT (device)); - _LOGI (LOGD_DEVICE, "(%s): new %s device (%s)", iface, type_desc, dbus_path); + _LOG2I (LOGD_DEVICE, device, "new %s device (%s)", type_desc, dbus_path); nm_settings_device_added (priv->settings, device); g_signal_emit (self, signals[INTERNAL_DEVICE_ADDED], 0, device); @@ -2213,14 +2250,16 @@ factory_device_added_cb (NMDeviceFactory *factory, if (nm_device_realize_start (device, NULL, + FALSE, /* assume_state_guess_assume */ + NULL, /* assume_state_connection_uuid */ + FALSE, /* set_nm_owned */ NM_UNMAN_FLAG_OP_FORGET, NULL, &error)) { add_device (self, device, NULL); - _device_realize_finish (self, device, NULL, FALSE, NULL); + _device_realize_finish (self, device, NULL); } else { - _LOGW (LOGD_DEVICE, "(%s): failed to realize device: %s", - nm_device_get_iface (device), error->message); + _LOG2W (LOGD_DEVICE, device, "failed to realize device: %s", error->message); g_error_free (error); } } @@ -2291,11 +2330,13 @@ platform_link_added (NMManager *self, return; } else if (nm_device_realize_start (candidate, plink, + FALSE, /* assume_state_guess_assume */ + NULL, /* assume_state_connection_uuid */ + FALSE, /* set_nm_owned */ NM_UNMAN_FLAG_OP_FORGET, &compatible, &error)) { - /* Success */ - _device_realize_finish (self, candidate, plink, FALSE, NULL); + _device_realize_finish (self, candidate, plink); return; } @@ -2362,13 +2403,14 @@ platform_link_added (NMManager *self, if (nm_device_realize_start (device, plink, + guess_assume, + dev_state ? dev_state->connection_uuid : NULL, + dev_state ? (dev_state->nm_owned == 1) : FALSE, unmanaged_user_explicit, NULL, &error)) { add_device (self, device, NULL); - _device_realize_finish (self, device, plink, - guess_assume, - dev_state ? dev_state->connection_uuid : NULL); + _device_realize_finish (self, device, plink); } else { _LOGW (LOGD_DEVICE, "%s: failed to realize device: %s", plink->name, error->message); @@ -2409,9 +2451,7 @@ _platform_link_cb_idle (PlatformLinkCbData *data) nm_device_sys_iface_state_set (device, NM_DEVICE_SYS_IFACE_STATE_REMOVED); /* Our software devices stick around until their connection is removed */ if (!nm_device_unrealize (device, FALSE, &error)) { - _LOGW (LOGD_DEVICE, "(%s): failed to unrealize: %s", - nm_device_get_iface (device), - error->message); + _LOG2W (LOGD_DEVICE, device, "failed to unrealize: %s", error->message); g_clear_error (&error); remove_device (self, device, FALSE, TRUE); } @@ -2459,10 +2499,14 @@ platform_query_devices (NMManager *self) NMPlatformLink *links; int i; gboolean guess_assume; + const char *order; guess_assume = nm_config_get_first_start (nm_config_get ()); - - links_array = nm_platform_link_get_all (NM_PLATFORM_GET); + order = nm_config_data_get_value_cached (NM_CONFIG_GET_DATA, + NM_CONFIG_KEYFILE_GROUP_MAIN, + NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER, + NM_CONFIG_GET_VALUE_STRIP); + links_array = nm_platform_link_get_all (NM_PLATFORM_GET, !nm_streq0 (order, "index")); links = (NMPlatformLink *) links_array->data; for (i = 0; i < links_array->len; i++) { gs_free NMConfigDeviceStateData *dev_state = NULL; @@ -3016,7 +3060,7 @@ out: } static gint -compare_slaves (gconstpointer a, gconstpointer b, gpointer _unused) +compare_slaves (gconstpointer a, gconstpointer b, gpointer sort_by_name) { const SlaveConnectionInfo *a_info = a; const SlaveConnectionInfo *b_info = b; @@ -3027,8 +3071,12 @@ compare_slaves (gconstpointer a, gconstpointer b, gpointer _unused) if (!b_info->device) return -1; - return g_strcmp0 (nm_device_get_iface (a_info->device), - nm_device_get_iface (b_info->device)); + if (GPOINTER_TO_INT (sort_by_name)) { + return g_strcmp0 (nm_device_get_iface (a_info->device), + nm_device_get_iface (b_info->device)); + } + + return nm_device_get_ifindex (a_info->device) - nm_device_get_ifindex (b_info->device); } static void @@ -3042,11 +3090,17 @@ autoconnect_slaves (NMManager *self, if (should_connect_slaves (NM_CONNECTION (master_connection), master_device)) { gs_free SlaveConnectionInfo *slaves = NULL; guint i, n_slaves = 0; + const char *value; slaves = find_slaves (self, master_connection, master_device, &n_slaves); if (n_slaves > 1) { + value = nm_config_data_get_value_cached (NM_CONFIG_GET_DATA, + NM_CONFIG_KEYFILE_GROUP_MAIN, + NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER, + NM_CONFIG_GET_VALUE_STRIP); g_qsort_with_data (slaves, n_slaves, sizeof (slaves[0]), - compare_slaves, NULL); + compare_slaves, + GINT_TO_POINTER (!nm_streq0 (value, "index"))); } for (i = 0; i < n_slaves; i++) { @@ -3505,6 +3559,9 @@ _new_active_connection (NMManager *self, error); } + if (device && (activation_type == NM_ACTIVATION_TYPE_MANAGED)) + nm_device_sys_iface_state_set (device, NM_DEVICE_SYS_IFACE_STATE_MANAGED); + return (NMActiveConnection *) nm_act_request_new (settings_connection, applied, specific_object, @@ -3541,10 +3598,36 @@ _internal_activation_auth_done (NMActiveConnection *active, { NMManager *self = user_data1; NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); + NMActiveConnection *candidate; GError *error = NULL; + GSList *iter; priv->authorizing_connections = g_slist_remove (priv->authorizing_connections, active); + /* Don't continue with the activation if an equivalent active connection + * already exists. We also check this earlier, but there we may fail to + * detect a duplicate if the existing active connection is undergoing + * authorization in impl_manager_activate_connection(). + */ + if (success && nm_auth_subject_is_internal (nm_active_connection_get_subject (active))) { + for (iter = priv->active_connections; iter; iter = iter->next) { + candidate = iter->data; + if ( nm_active_connection_get_device (candidate) == nm_active_connection_get_device (active) + && nm_active_connection_get_settings_connection (candidate) == nm_active_connection_get_settings_connection (active) + && NM_IN_SET (nm_active_connection_get_state (candidate), + NM_ACTIVE_CONNECTION_STATE_ACTIVATING, + NM_ACTIVE_CONNECTION_STATE_ACTIVATED)) { + g_set_error (&error, + NM_MANAGER_ERROR, + NM_MANAGER_ERROR_CONNECTION_ALREADY_ACTIVE, + "Connection '%s' is already active", + nm_active_connection_get_settings_connection_id (active)); + success = FALSE; + break; + } + } + } + if (success) { if (_internal_activate_generic (self, active, &error)) { g_object_unref (active); @@ -4480,7 +4563,7 @@ do_sleep_wake (NMManager *self, gboolean sleeping_changed) gboolean enabled = radio_enabled_for_rstate (rstate, TRUE); if (rstate->desc) { - _LOGD (LOGD_RFKILL, "%s %s devices (hw_enabled %d, sw_enabled %d, user_enabled %d)", + _LOGD (LOGD_RFKILL, "rfkill: %s %s devices (hw_enabled %d, sw_enabled %d, user_enabled %d)", enabled ? "enabling" : "disabling", rstate->desc, rstate->hw_enabled, rstate->sw_enabled, rstate->user_enabled); } @@ -4990,6 +5073,7 @@ nm_manager_write_device_state (NMManager *self) const GSList *devices; NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); gs_unref_hashtable GHashTable *seen_ifindexes = NULL; + gint nm_owned; seen_ifindexes = g_hash_table_new (NULL, NULL); @@ -5029,10 +5113,13 @@ nm_manager_write_device_state (NMManager *self) if (perm_hw_addr_fake && !perm_hw_addr_is_fake) perm_hw_addr_fake = NULL; + nm_owned = nm_device_is_software (device) ? nm_device_is_nm_owned (device) : -1; + if (nm_config_device_state_write (ifindex, managed_type, perm_hw_addr_fake, - uuid)) + uuid, + nm_owned)) g_hash_table_add (seen_ifindexes, GINT_TO_POINTER (ifindex)); } @@ -5073,7 +5160,7 @@ nm_manager_start (NMManager *self, GError **error) update_rstate_from_rfkill (priv->rfkill_mgr, rstate); if (rstate->desc) { - _LOGI (LOGD_RFKILL, "%s %s by radio killswitch; %s by state file", + _LOGI (LOGD_RFKILL, "rfkill: %s %s by radio killswitch; %s by state file", rstate->desc, (rstate->hw_enabled && rstate->sw_enabled) ? "enabled" : "disabled", rstate->user_enabled ? "enabled" : "disabled"); @@ -5149,8 +5236,7 @@ handle_firmware_changed (gpointer user_data) if ( nm_device_get_firmware_missing (candidate) && (state == NM_DEVICE_STATE_UNAVAILABLE)) { - _LOGI (LOGD_CORE, "(%s): firmware may now be available", - nm_device_get_iface (candidate)); + _LOG2I (LOGD_CORE, candidate, "firmware may now be available"); /* Re-set unavailable state to try bringing the device up again */ nm_device_state_changed (candidate, @@ -5782,12 +5868,12 @@ rfkill_change (NMManager *self, const char *desc, RfKillType rtype, gboolean ena fd = open ("/dev/rfkill", O_RDWR | O_CLOEXEC); if (fd < 0) { if (errno == EACCES) - _LOGW (LOGD_RFKILL, "(%s): failed to open killswitch device", desc); + _LOGW (LOGD_RFKILL, "rfkill: (%s): failed to open killswitch device", desc); return; } if (fcntl (fd, F_SETFL, O_NONBLOCK) < 0) { - _LOGW (LOGD_RFKILL, "(%s): failed to set killswitch device for " + _LOGW (LOGD_RFKILL, "rfkill: (%s): failed to set killswitch device for " "non-blocking operation", desc); close (fd); return; @@ -5809,14 +5895,14 @@ rfkill_change (NMManager *self, const char *desc, RfKillType rtype, gboolean ena len = write (fd, &event, sizeof (event)); if (len < 0) { - _LOGW (LOGD_RFKILL, "(%s): failed to change WiFi killswitch state: (%d) %s", + _LOGW (LOGD_RFKILL, "rfkill: (%s): failed to change WiFi killswitch state: (%d) %s", desc, errno, g_strerror (errno)); } else if (len == sizeof (event)) { - _LOGI (LOGD_RFKILL, "%s hardware radio set %s", + _LOGI (LOGD_RFKILL, "rfkill: %s hardware radio set %s", desc, enabled ? "enabled" : "disabled"); } else { /* Failed to write full structure */ - _LOGW (LOGD_RFKILL, "(%s): failed to change WiFi killswitch state", desc); + _LOGW (LOGD_RFKILL, "rfkill: (%s): failed to change WiFi killswitch state", desc); } close (fd); @@ -5835,7 +5921,7 @@ manager_radio_user_toggled (NMManager *self, return; if (rstate->desc) { - _LOGD (LOGD_RFKILL, "(%s): setting radio %s by user", + _LOGD (LOGD_RFKILL, "rfkill: (%s): setting radio %s by user", rstate->desc, enabled ? "enabled" : "disabled"); } diff --git a/src/nm-pacrunner-manager.c b/src/nm-pacrunner-manager.c index cfc028c2..87e0a364 100644 --- a/src/nm-pacrunner-manager.c +++ b/src/nm-pacrunner-manager.c @@ -250,6 +250,7 @@ pacrunner_send_done (GDBusProxy *proxy, GAsyncResult *res, gpointer user_data) _LOG2D (config, "sent"); if (config->removed) { + config_ref (config); g_dbus_proxy_call (priv->pacrunner, "DestroyProxyConfiguration", g_variant_new ("(o)", config->path), @@ -329,7 +330,6 @@ pacrunner_proxy_cb (GObject *source, GAsyncResult *res, gpointer user_data) priv = NM_PACRUNNER_MANAGER_GET_PRIVATE (self); priv->pacrunner = proxy; - nm_clear_g_cancellable (&priv->pacrunner_cancellable); g_signal_connect (priv->pacrunner, "notify::g-name-owner", G_CALLBACK (name_owner_changed_cb), self); diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index 252f054d..487725e4 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -1529,6 +1529,23 @@ _new_from_nl_link (NMPlatform *platform, const NMPCache *cache, struct nlmsghdr if (!obj->link.name[0]) goto errout; + if (!tb[IFLA_MTU]) { + /* Kernel has two places that send RTM_GETLINK messages: + * net/core/rtnetlink.c and net/wireless/ext-core.c. + * Unfotunatelly ext-core.c sets only IFLA_WIRELESS and + * IFLA_IFNAME. This confuses code in this function, because + * it cannot get complete set of data for the interface and + * later incomplete object this function creates is used to + * overwrite existing data in NM's cache. + * Since ext-core.c doesn't set IFLA_MTU we can use it as a + * signal to ignore incoming message. + * To some extent this is a hack and correct approach is to + * merge objects per-field. + */ + goto errout; + } + obj->link.mtu = nla_get_u32 (tb[IFLA_MTU]); + if (tb[IFLA_LINKINFO]) { err = nla_parse_nested (li, IFLA_INFO_MAX, tb[IFLA_LINKINFO], policy_link_info); if (err < 0) @@ -1609,9 +1626,6 @@ _new_from_nl_link (NMPlatform *platform, const NMPCache *cache, struct nlmsghdr } } - if (tb[IFLA_MTU]) - obj->link.mtu = nla_get_u32 (tb[IFLA_MTU]); - switch (obj->link.type) { case NM_LINK_TYPE_GRE: lnk_data = _parse_lnk_gre (nl_info_kind, nl_info_data); diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index 767187d9..a244ff39 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -437,7 +437,8 @@ nm_platform_sysctl_get_int_checked (NMPlatform *self, const char *pathid, int di static int _link_get_all_presort (gconstpointer p_a, - gconstpointer p_b) + gconstpointer p_b, + gpointer sort_by_name) { const NMPlatformLink *a = p_a; const NMPlatformLink *b = p_b; @@ -448,13 +449,16 @@ _link_get_all_presort (gconstpointer p_a, if (b->ifindex == 1) return 1; - /* Initialized links first */ - if (a->initialized > b->initialized) - return -1; - if (a->initialized < b->initialized) - return 1; + if (GPOINTER_TO_INT (sort_by_name)) { + /* Initialized links first */ + if (a->initialized > b->initialized) + return -1; + if (a->initialized < b->initialized) + return 1; - return strcmp (a->name, b->name); + return strcmp (a->name, b->name); + } else + return a->ifindex - b->ifindex; } /** @@ -465,7 +469,7 @@ _link_get_all_presort (gconstpointer p_a, * owned by the caller and should be freed with g_array_unref(). */ GArray * -nm_platform_link_get_all (NMPlatform *self) +nm_platform_link_get_all (NMPlatform *self, gboolean sort_by_name) { GArray *links, *result; guint i, j, nresult; @@ -479,9 +483,9 @@ nm_platform_link_get_all (NMPlatform *self) if (!links || links->len == 0) return links; - /* first sort the links by their ifindex. Below we will sort further by moving - * children/slaves to the end. */ - g_array_sort (links, _link_get_all_presort); + /* first sort the links by their ifindex or name. Below we will sort + * further by moving children/slaves to the end. */ + g_array_sort_with_data (links, _link_get_all_presort, GINT_TO_POINTER (sort_by_name)); unseen = g_hash_table_new (g_direct_hash, g_direct_equal); for (i = 0; i < links->len; i++) { diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index 43be17fa..1b8fa133 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -763,7 +763,7 @@ const NMPlatformLink *nm_platform_link_get (NMPlatform *self, int ifindex); const NMPlatformLink *nm_platform_link_get_by_ifname (NMPlatform *self, const char *ifname); const NMPlatformLink *nm_platform_link_get_by_address (NMPlatform *self, gconstpointer address, size_t length); -GArray *nm_platform_link_get_all (NMPlatform *self); +GArray *nm_platform_link_get_all (NMPlatform *self, gboolean sort_by_name); NMPlatformError nm_platform_link_dummy_add (NMPlatform *self, const char *name, const NMPlatformLink **out_link); NMPlatformError nm_platform_link_bridge_add (NMPlatform *self, const char *name, const void *address, size_t address_len, const NMPlatformLink **out_link); NMPlatformError nm_platform_link_bond_add (NMPlatform *self, const char *name, const NMPlatformLink **out_link); diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c index 04db862d..a9d0694d 100644 --- a/src/platform/tests/test-common.c +++ b/src/platform/tests/test-common.c @@ -185,7 +185,7 @@ link_callback (NMPlatform *platform, int obj_type_i, int ifindex, NMPlatformLink /* Check the data */ g_assert (received->ifindex > 0); - links = nm_platform_link_get_all (NM_PLATFORM_GET); + links = nm_platform_link_get_all (NM_PLATFORM_GET, TRUE); for (i = 0; i < links->len; i++) { cached = &g_array_index (links, NMPlatformLink, i); if (cached->ifindex == received->ifindex) { diff --git a/src/platform/tests/test-general.c b/src/platform/tests/test-general.c index 2ccfac7d..e772662c 100644 --- a/src/platform/tests/test-general.c +++ b/src/platform/tests/test-general.c @@ -48,7 +48,7 @@ test_link_get_all (void) platform = nm_linux_platform_new (TRUE, NM_PLATFORM_NETNS_SUPPORT_DEFAULT); - links = nm_platform_link_get_all (platform); + links = nm_platform_link_get_all (platform, TRUE); } /*****************************************************************************/ diff --git a/src/ppp/nm-ppp-manager.c b/src/ppp/nm-ppp-manager.c index c7836a8f..6343df8b 100644 --- a/src/ppp/nm-ppp-manager.c +++ b/src/ppp/nm-ppp-manager.c @@ -178,14 +178,6 @@ monitor_stats (NMPPPManager *manager) /*****************************************************************************/ -static void -remove_timeout_handler (NMPPPManager *manager) -{ - NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); - - nm_clear_g_source (&priv->ppp_timeout_handler); -} - static void cancel_get_secrets (NMPPPManager *self) { @@ -365,7 +357,7 @@ impl_ppp_manager_set_state (NMPPPManager *manager, GDBusMethodInvocation *context, guint32 state) { - g_signal_emit (manager, signals[STATE_CHANGED], 0, state); + g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) state); g_dbus_method_invocation_return_value (context, NULL); } @@ -415,7 +407,7 @@ impl_ppp_manager_set_ip4_config (NMPPPManager *manager, _LOGI ("(IPv4 Config Get) reply received."); - remove_timeout_handler (manager); + nm_clear_g_source (&priv->ppp_timeout_handler); config = nm_ip4_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, priv->ip_iface)); @@ -511,7 +503,7 @@ impl_ppp_manager_set_ip6_config (NMPPPManager *manager, _LOGI ("(IPv6 Config Get) reply received."); - remove_timeout_handler (manager); + nm_clear_g_source (&priv->ppp_timeout_handler); config = nm_ip6_config_new (nm_platform_link_get_ifindex (NM_PLATFORM_GET, priv->ip_iface)); @@ -597,102 +589,62 @@ nm_cmd_line_add_int (NMCmdLine *cmd, int i) /*****************************************************************************/ -static void -ppp_exit_code (guint pppd_exit_status, GPid pid) -{ - const char *msg; - - switch (pppd_exit_status) { - case 1: - msg = "Fatal pppd error"; - break; - case 2: - msg = "pppd options error"; - break; - case 3: - msg = "No root priv error"; - break; - case 4: - msg = "No ppp module error"; - break; - case 5: - msg = "pppd received a signal"; - break; - case 6: - msg = "Serial port lock failed"; - break; - case 7: - msg = "Serial port open failed"; - break; - case 8: - msg = "Connect script failed"; - break; - case 9: - msg = "Pty program error"; - break; - case 10: - msg = "PPP negotiation failed"; - break; - case 11: - msg = "Peer didn't authenticatie itself"; - break; - case 12: - msg = "Link idle: Idle Seconds reached."; - break; - case 13: - msg = "Connect time limit reached."; - break; - case 14: - msg = "Callback negotiated, call should come back."; - break; - case 15: - msg = "Lack of LCP echo responses"; - break; - case 16: - msg = "A modem hung up the phone"; - break; - case 17: - msg = "Loopback detected"; - break; - case 18: - msg = "The init script failed"; - break; - case 19: - msg = "Authentication error.\n" - "We failed to authenticate ourselves to the peer.\n" - "Maybe bad account or password?"; - break; - default: - msg = "Unknown error"; - } - - _LOGW ("pppd pid %d exited with error: %s", pid, msg); -} +NM_UTILS_LOOKUP_STR_DEFINE_STATIC (pppd_exit_code_to_str, int, + NM_UTILS_LOOKUP_DEFAULT ("Unknown error"), + NM_UTILS_LOOKUP_STR_ITEM ( 1, "Fatal pppd error"); + NM_UTILS_LOOKUP_STR_ITEM ( 2, "pppd options error"), + NM_UTILS_LOOKUP_STR_ITEM ( 3, "No root priv error"), + NM_UTILS_LOOKUP_STR_ITEM ( 4, "No ppp module error"), + NM_UTILS_LOOKUP_STR_ITEM ( 5, "pppd received a signal"), + NM_UTILS_LOOKUP_STR_ITEM ( 6, "Serial port lock failed"), + NM_UTILS_LOOKUP_STR_ITEM ( 7, "Serial port open failed"), + NM_UTILS_LOOKUP_STR_ITEM ( 8, "Connect script failed"), + NM_UTILS_LOOKUP_STR_ITEM ( 9, "Pty program error"), + NM_UTILS_LOOKUP_STR_ITEM (10, "PPP negotiation failed"), + NM_UTILS_LOOKUP_STR_ITEM (11, "Peer didn't authenticatie itself"), + NM_UTILS_LOOKUP_STR_ITEM (12, "Link idle: Idle Seconds reached."), + NM_UTILS_LOOKUP_STR_ITEM (13, "Connect time limit reached."), + NM_UTILS_LOOKUP_STR_ITEM (14, "Callback negotiated, call should come back."), + NM_UTILS_LOOKUP_STR_ITEM (15, "Lack of LCP echo responses"), + NM_UTILS_LOOKUP_STR_ITEM (16, "A modem hung up the phone"), + NM_UTILS_LOOKUP_STR_ITEM (17, "Loopback detected"), + NM_UTILS_LOOKUP_STR_ITEM (18, "The init script failed"), + NM_UTILS_LOOKUP_STR_ITEM (19, "Authentication error. " + "We failed to authenticate ourselves to the peer. " + "Maybe bad account or password?"), +); static void -ppp_watch_cb (GPid pid, gint status, gpointer user_data) +ppp_watch_cb (GPid pid, int status, gpointer user_data) { NMPPPManager *manager = NM_PPP_MANAGER (user_data); NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); - guint err; + int err; + const long long lpid = (long long) pid; - g_assert (pid == priv->pid); + g_return_if_fail (pid == priv->pid); if (WIFEXITED (status)) { err = WEXITSTATUS (status); - if (err != 0) - ppp_exit_code (err, priv->pid); + if (err) { + _LOGW ("pppd pid %lld exited with error %d: %s", + lpid, err, + pppd_exit_code_to_str (err)); + } else + _LOGD ("pppd pid %lld exited with success", lpid); } else if (WIFSTOPPED (status)) { - _LOGI ("pppd pid %d stopped unexpectedly with signal %d", priv->pid, WSTOPSIG (status)); + _LOGW ("pppd pid %lld stopped unexpectedly with signal %d", + lpid, WSTOPSIG (status)); } else if (WIFSIGNALED (status)) { - _LOGI ("pppd pid %d died with signal %d", priv->pid, WTERMSIG (status)); + _LOGW ("pppd pid %lld died with signal %d", + lpid, WTERMSIG (status)); } else - _LOGI ("pppd pid %d died from an unknown cause", priv->pid); + _LOGW ("pppd pid %lld died from an unknown cause", lpid); - _LOGD ("pppd pid %d cleaned up", priv->pid); priv->pid = 0; priv->ppp_watch_id = 0; - g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); + _ppp_cleanup (manager); + g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); } static gboolean @@ -704,7 +656,7 @@ pppd_timed_out (gpointer data) _ppp_cleanup (manager); _ppp_kill (manager); - g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); + g_signal_emit (manager, signals[STATE_CHANGED], 0, (guint) NM_PPP_STATUS_DEAD); return FALSE; } @@ -1016,7 +968,7 @@ _ppp_manager_start (NMPPPManager *manager, goto out; } - _LOGI ("pppd started with pid %d", priv->pid); + _LOGI ("pppd started with pid %lld", (long long) priv->pid); priv->ppp_watch_id = g_child_watch_add (priv->pid, (GChildWatchFunc) ppp_watch_cb, manager); priv->ppp_timeout_handler = g_timeout_add_seconds (timeout_secs, pppd_timed_out, manager); @@ -1234,8 +1186,12 @@ static void dispose (GObject *object) { NMPPPManager *self = (NMPPPManager *) object; + NMExportedObject *exported = NM_EXPORTED_OBJECT (self); NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (self); + if (nm_exported_object_is_exported (exported)) + nm_exported_object_unexport (exported); + _ppp_cleanup (self); _ppp_kill (self); diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 0cb2920c..45a1b664 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -2129,6 +2129,7 @@ nm_settings_connection_set_flags_all (NMSettingsConnection *self, NMSettingsConn old_flags = priv->flags; if (old_flags != flags) { + _LOGT ("update settings-connection flags to 0x%x (was 0x%x)", (guint) flags, (guint) priv->flags); priv->flags = flags; _notify (self, PROP_FLAGS); if (NM_FLAGS_HAS (old_flags, NM_SETTINGS_CONNECTION_FLAGS_UNSAVED) != NM_FLAGS_HAS (flags, NM_SETTINGS_CONNECTION_FLAGS_UNSAVED)) @@ -2316,33 +2317,35 @@ void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *self) { NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (self); + gs_unref_keyfile GKeyFile *timestamps_file = NULL; + gs_free_error GError *error = NULL; + gs_free char *tmp_str = NULL; const char *connection_uuid; - guint64 timestamp = 0; - GKeyFile *timestamps_file; - GError *err = NULL; - char *tmp_str; + gint64 timestamp; g_return_if_fail (NM_IS_SETTINGS_CONNECTION (self)); - /* Get timestamp from database file */ timestamps_file = g_key_file_new (); - g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL); + if (!g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) { + _LOGD ("failed to read connection timestamp: %s", error->message); + return; + } + connection_uuid = nm_settings_connection_get_uuid (self); - tmp_str = g_key_file_get_value (timestamps_file, "timestamps", connection_uuid, &err); - if (tmp_str) { - timestamp = g_ascii_strtoull (tmp_str, NULL, 10); - g_free (tmp_str); + tmp_str = g_key_file_get_value (timestamps_file, "timestamps", connection_uuid, &error); + if (!tmp_str) { + _LOGD ("failed to read connection timestamp: %s", error->message); + return; } - /* Update connection's timestamp */ - if (!err) { - priv->timestamp = timestamp; - priv->timestamp_set = TRUE; - } else { - _LOGD ("failed to read connection timestamp: %s", err->message); - g_clear_error (&err); + timestamp = _nm_utils_ascii_str_to_int64 (tmp_str, 10, 0, G_MAXINT64, -1); + if (timestamp < 0) { + _LOGD ("failed to read connection timestamp: %s", "invalid number"); + return; } - g_key_file_free (timestamps_file); + + priv->timestamp = timestamp; + priv->timestamp_set = TRUE; } /** 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 d6f33c49..d2b7ff67 100644 --- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c +++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c @@ -1926,12 +1926,8 @@ get_route_attributes_string (NMIPRoute *route, int family) static gboolean write_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError **error) { - const char *dest, *next_hop; - char **route_items; - gs_free char *route_contents = NULL; + nm_auto_free_gstring GString *contents = NULL; NMIPRoute *route; - guint32 prefix; - gint64 metric; guint32 i, num; g_return_val_if_fail (filename != NULL, FALSE); @@ -1945,36 +1941,34 @@ write_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError return TRUE; } - route_items = g_malloc0 (sizeof (char *) * (num + 1)); + contents = g_string_new (""); + for (i = 0; i < num; i++) { + const char *next_hop; gs_free char *options = NULL; + gint64 metric; route = nm_setting_ip_config_get_route (s_ip4, i); - - dest = nm_ip_route_get_dest (route); - prefix = nm_ip_route_get_prefix (route); next_hop = nm_ip_route_get_next_hop (route); metric = nm_ip_route_get_metric (route); - options = get_route_attributes_string (route, AF_INET); - if (metric == -1) { - route_items[i] = g_strdup_printf ("%s/%u via %s%s%s\n", - dest, prefix, next_hop, - options ? " " : "", - options ?: ""); - } else { - route_items[i] = g_strdup_printf ("%s/%u via %s metric %u%s%s\n", - dest, prefix, next_hop, (guint32) metric, - options ? " " : "", - options ?: ""); + g_string_append_printf (contents, "%s/%u", + nm_ip_route_get_dest (route), + nm_ip_route_get_prefix (route)); + if (next_hop) + g_string_append_printf (contents, " via %s", next_hop); + if (metric >= 0) + g_string_append_printf (contents, " metric %u", (guint) metric); + if (options) { + g_string_append_c (contents, ' '); + g_string_append (contents, options); } + + g_string_append_c (contents, '\n'); } - route_items[num] = NULL; - route_contents = g_strjoinv (NULL, route_items); - g_strfreev (route_items); - if (!g_file_set_contents (filename, route_contents, -1, NULL)) { + if (!g_file_set_contents (filename, contents->str, contents->len, NULL)) { g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_FAILED, "Writing route file '%s' failed", filename); return FALSE; @@ -2073,6 +2067,7 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error) int timeout; GString *searches; const char *method = NULL; + gboolean has_netmask; s_ip4 = nm_connection_get_setting_ip4_config (connection); if (!s_ip4) { @@ -2145,16 +2140,7 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error) else if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED)) svSetValueStr (ifcfg, "BOOTPROTO", "shared"); - /* Clear out un-numbered IP address fields */ - svUnsetValue (ifcfg, "IPADDR"); - svUnsetValue (ifcfg, "PREFIX"); - svUnsetValue (ifcfg, "NETMASK"); - svUnsetValue (ifcfg, "GATEWAY"); - /* Clear out zero-indexed IP address fields */ - svUnsetValue (ifcfg, "IPADDR0"); - svUnsetValue (ifcfg, "PREFIX0"); - svUnsetValue (ifcfg, "NETMASK0"); - svUnsetValue (ifcfg, "GATEWAY0"); + has_netmask = !!svFindFirstKeyWithPrefix (ifcfg, "NETMASK"); /* Write out IPADDR, PREFIX, GATEWAY for current IP addresses * without labels. Unset obsolete NETMASK. @@ -2198,19 +2184,30 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error) g_free (tmp); /* If the legacy "NETMASK" is present, keep it. */ - if (svGetValue (ifcfg, netmask_key, &tmp)) { + if (has_netmask) { char buf[INET_ADDRSTRLEN]; - g_free (tmp); - svSetValueStr (ifcfg, netmask_key, nm_utils_inet4_ntop (prefix, buf)); - } + svSetValueStr (ifcfg, netmask_key, + nm_utils_inet4_ntop (nm_utils_ip4_prefix_to_netmask (prefix), buf)); + } else + svUnsetValue (ifcfg, netmask_key); svUnsetValue (ifcfg, gw_key); n++; } - /* Clear remaining IPADDR, etc */ - for (i = n; i < 256; i++) { + svUnsetValue (ifcfg, "IPADDR0"); + svUnsetValue (ifcfg, "PREFIX0"); + svUnsetValue (ifcfg, "NETMASK0"); + svUnsetValue (ifcfg, "GATEWAY0"); + if (n == 0) { + svUnsetValue (ifcfg, "IPADDR"); + svUnsetValue (ifcfg, "PREFIX"); + svUnsetValue (ifcfg, "NETMASK"); + i = 1; + } else + i = n; + for (; i < 256; i++) { nm_sprintf_buf (addr_key, "IPADDR%u", i); nm_sprintf_buf (prefix_key, "PREFIX%u", i); nm_sprintf_buf (netmask_key, "NETMASK%u", i); @@ -2492,32 +2489,33 @@ write_route6_file (const char *filename, NMSettingIPConfig *s_ip6, GError **erro } contents = g_string_new (""); + for (i = 0; i < num; i++) { gs_free char *options = NULL; + const char *next_hop; + gint64 metric; route = nm_setting_ip_config_get_route (s_ip6, i); + next_hop = nm_ip_route_get_next_hop (route); + metric = nm_ip_route_get_metric (route); options = get_route_attributes_string (route, AF_INET6); - if (nm_ip_route_get_metric (route) == -1) { - g_string_append_printf (contents, "%s/%u via %s%s%s", - nm_ip_route_get_dest (route), - nm_ip_route_get_prefix (route), - nm_ip_route_get_next_hop (route), - options ? " " : "", - options ?: ""); - } else { - g_string_append_printf (contents, "%s/%u via %s metric %u%s%s", - nm_ip_route_get_dest (route), - nm_ip_route_get_prefix (route), - nm_ip_route_get_next_hop (route), - (unsigned) nm_ip_route_get_metric (route), - options ? " " : "", - options ?: ""); + g_string_append_printf (contents, "%s/%u", + nm_ip_route_get_dest (route), + nm_ip_route_get_prefix (route)); + if (next_hop) + g_string_append_printf (contents, " via %s", next_hop); + if (metric >= 0) + g_string_append_printf (contents, " metric %u", (guint) metric); + if (options) { + g_string_append_c (contents, ' '); + g_string_append (contents, options); } - g_string_append (contents, "\n"); + + g_string_append_c (contents, '\n'); } - if (!g_file_set_contents (filename, contents->str, -1, NULL)) { + if (!g_file_set_contents (filename, contents->str, contents->len, NULL)) { g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_FAILED, "Writing route6 file '%s' failed", filename); return FALSE; diff --git a/src/settings/plugins/ifcfg-rh/shvar.c b/src/settings/plugins/ifcfg-rh/shvar.c index 9fce5aa1..47ad5a23 100644 --- a/src/settings/plugins/ifcfg-rh/shvar.c +++ b/src/settings/plugins/ifcfg-rh/shvar.c @@ -905,6 +905,28 @@ svGetKeys (shvarFile *s) /*****************************************************************************/ +const char * +svFindFirstKeyWithPrefix (shvarFile *s, const char *key_prefix) +{ + const GList *current; + const shvarLine *l; + + g_return_val_if_fail (s, NULL); + g_return_val_if_fail (key_prefix, NULL); + + for (current = s->lineList; current; current = current->next) { + l = current->data; + if ( l->key + && l->line + && g_str_has_prefix (l->key, key_prefix)) + return l->key; + } + + return NULL; +} + +/*****************************************************************************/ + static const char * _svGetValue (shvarFile *s, const char *key, char **to_free) { diff --git a/src/settings/plugins/ifcfg-rh/shvar.h b/src/settings/plugins/ifcfg-rh/shvar.h index 9d8c2364..a13920a1 100644 --- a/src/settings/plugins/ifcfg-rh/shvar.h +++ b/src/settings/plugins/ifcfg-rh/shvar.h @@ -44,6 +44,8 @@ shvarFile *svCreateFile (const char *name); /* Open the file , return shvarFile on success, NULL on failure */ shvarFile *svOpenFile (const char *name, GError **error); +const char *svFindFirstKeyWithPrefix (shvarFile *s, const char *key_prefix); + /* Get the value associated with the key, and leave the current pointer * pointing at the line containing the value. The char* returned MUST * be freed by the caller. diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 new file mode 100644 index 00000000..ecb36c37 --- /dev/null +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1 @@ -0,0 +1,14 @@ +DNS1="192.0.2.1" +IPADDR="102.0.2.2" +GATEWAY="192.0.2.1" +NETMASK="255.254.0.0" +BOOTPROTO="static" +DEVICE="eth1" +ONBOOT="yes" +IPV6INIT="yes" + +#bogus +PREFIX1=25 +NETMASK0=255.255.0.0 + +#end diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected new file mode 100644 index 00000000..5dfdce4d --- /dev/null +++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-netmask-1.cexpected @@ -0,0 +1,23 @@ +DNS1=192.0.2.1 +IPADDR=102.0.2.2 +GATEWAY=192.0.2.1 +NETMASK=255.254.0.0 +BOOTPROTO="static" +DEVICE=eth1 +ONBOOT=yes +IPV6INIT=yes + +#bogus + +#end +TYPE=Ethernet +PROXY_METHOD=none +BROWSER_ONLY=no +PREFIX=15 +DEFROUTE=yes +IPV4_FAILURE_FATAL=no +IPV6_AUTOCONF=yes +IPV6_DEFROUTE=yes +IPV6_FAILURE_FATAL=no +NAME="System netmask-1" +UUID=${UUID} diff --git a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c index babb068d..496a164b 100644 --- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c +++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c @@ -399,6 +399,47 @@ _writer_new_connection_fail (NMConnection *connection, /*****************************************************************************/ +static void +test_read_netmask_1 (void) +{ + nmtst_auto_unlinkfile char *testfile = NULL; + gs_unref_object NMConnection *connection = NULL; + gs_free char *content = NULL; + NMSettingConnection *s_con; + NMSettingIPConfig *s_ip4; + NMIPAddress *ip4_addr; + const char *FILENAME = TEST_IFCFG_DIR "/network-scripts/ifcfg-netmask-1"; + + connection = _connection_from_file (FILENAME, NULL, TYPE_ETHERNET, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "System netmask-1"); + + s_ip4 = nm_connection_get_setting_ip4_config (connection); + g_assert (s_ip4); + g_assert_cmpuint (nm_setting_ip_config_get_num_dns (s_ip4), ==, 1); + ip4_addr = nm_setting_ip_config_get_address (s_ip4, 0); + g_assert (ip4_addr); + g_assert_cmpstr (nm_ip_address_get_address (ip4_addr), ==, "102.0.2.2"); + g_assert_cmpint (nm_ip_address_get_prefix (ip4_addr), ==, 15); + + nmtst_assert_connection_verifies_without_normalization (connection); + + content = nmtst_file_get_contents (FILENAME); + + testfile = g_strdup (TEST_SCRATCH_DIR "/network-scripts/ifcfg-netmask-1.copy"); + + nmtst_file_set_contents (testfile, content); + + _writer_update_connection (connection, + TEST_SCRATCH_DIR "/network-scripts/", + testfile, + TEST_IFCFG_DIR "/network-scripts/ifcfg-netmask-1.cexpected"); +} + +/*****************************************************************************/ + static gboolean verify_cert_or_key (NMSetting8021x *s_compare, const char *file, @@ -4928,15 +4969,16 @@ test_write_wired_aliases (void) if (!g_strcmp0 (addrstr, ip[j])) break; } - g_assert (j < num_addresses); - - g_assert_cmpint (nm_ip_address_get_prefix (addr), ==, 24); - if (label[j]) - g_assert_cmpstr (g_variant_get_string (nm_ip_address_get_attribute (addr, "label"), NULL), ==, label[j]); - else - g_assert (nm_ip_address_get_attribute (addr, "label") == NULL); - - ip[j] = NULL; + if (j >= num_addresses) + g_assert_not_reached (); + else { + g_assert_cmpint (nm_ip_address_get_prefix (addr), ==, 24); + if (label[j]) + g_assert_cmpstr (g_variant_get_string (nm_ip_address_get_attribute (addr, "label"), NULL), ==, label[j]); + else + g_assert (nm_ip_address_get_attribute (addr, "label") == NULL); + ip[j] = NULL; + } } for (i = 0; i < num_addresses; i++) @@ -9348,6 +9390,8 @@ int main (int argc, char **argv) nmtst_add_test_func (TPATH "read-static", test_read_wired_static, TEST_IFCFG_DIR"/network-scripts/ifcfg-test-wired-static", "System test-wired-static", GINT_TO_POINTER (TRUE)); nmtst_add_test_func (TPATH "read-static-bootproto", test_read_wired_static, TEST_IFCFG_DIR"/network-scripts/ifcfg-test-wired-static-bootproto", "System test-wired-static-bootproto", GINT_TO_POINTER (FALSE)); + g_test_add_func (TPATH "read-netmask-1", test_read_netmask_1); + g_test_add_func (TPATH "read-dhcp", test_read_wired_dhcp); g_test_add_func (TPATH "read-dhcp-plus-ip", test_read_wired_dhcp_plus_ip); g_test_add_func (TPATH "read-shared-plus-ip", test_read_wired_shared_plus_ip); diff --git a/src/supplicant/nm-supplicant-interface.c b/src/supplicant/nm-supplicant-interface.c index 71f1f9aa..ab8a0670 100644 --- a/src/supplicant/nm-supplicant-interface.c +++ b/src/supplicant/nm-supplicant-interface.c @@ -228,15 +228,17 @@ bss_proxy_acquired_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_da GVariant *props = NULL; const char *object_path; BssData *bss_data; + gboolean success; - g_async_initable_init_finish (G_ASYNC_INITABLE (proxy), result, &error); - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + success = g_async_initable_init_finish (G_ASYNC_INITABLE (proxy), result, &error); + if ( !success + && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; self = NM_SUPPLICANT_INTERFACE (user_data); priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); - if (error) { + if (!success) { _LOGD ("failed to acquire BSS proxy: (%s)", error->message); g_hash_table_remove (priv->bss_proxies, g_dbus_proxy_get_object_path (proxy)); @@ -1120,7 +1122,7 @@ nm_supplicant_interface_disconnect (NMSupplicantInterface * self) /* Cancel all pending calls related to a prior connection attempt */ if (priv->assoc_data) { - gs_free GError *error = NULL; + gs_free_error GError *error = NULL; nm_utils_error_set_cancelled (&error, FALSE, "NMSupplicantInterface"); assoc_return (self, error, "abort due to disconnect"); @@ -1597,7 +1599,7 @@ dispose (GObject *object) NMSupplicantInterfacePrivate *priv = NM_SUPPLICANT_INTERFACE_GET_PRIVATE (self); if (priv->assoc_data) { - gs_free GError *error = NULL; + gs_free_error GError *error = NULL; nm_utils_error_set_cancelled (&error, TRUE, "NMSupplicantInterface"); assoc_return (self, error, "cancelled due to dispose of supplicant interface"); diff --git a/src/supplicant/tests/test-supplicant-config.c b/src/supplicant/tests/test-supplicant-config.c index fd91e921..ef6f2c64 100644 --- a/src/supplicant/tests/test-supplicant-config.c +++ b/src/supplicant/tests/test-supplicant-config.c @@ -525,7 +525,7 @@ test_wifi_eap (void) nm_connection_add_setting (connection, NM_SETTING (s_8021x)); nm_setting_802_1x_add_eap_method (s_8021x, "tls"); nm_setting_802_1x_set_client_cert (s_8021x, TEST_CERT_DIR "/test-cert.p12", NM_SETTING_802_1X_CK_SCHEME_PATH, NULL, NULL); - nm_setting_802_1x_set_ca_cert (s_8021x, TEST_CERT_DIR "/test-ca-cert.pem", NM_SETTING_802_1X_CK_SCHEME_PATH, NULL, NULL); + g_assert (nm_setting_802_1x_set_ca_cert (s_8021x, TEST_CERT_DIR "/test-ca-cert.pem", NM_SETTING_802_1X_CK_SCHEME_PATH, NULL, NULL)); nm_setting_802_1x_set_private_key (s_8021x, TEST_CERT_DIR "/test-cert.p12", NULL, NM_SETTING_802_1X_CK_SCHEME_PATH, NULL, NULL); /* IP4 setting */ -- cgit 1.3.0-6-gf8a5