summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-08-23 19:16:47 +0200
committerMichael Biebl <biebl@debian.org>2011-08-23 19:16:47 +0200
commit263bf4c0c89bb88dc995acd9a6a2de9095fbd461 (patch)
tree7224326afe367409e7150e49fad9029f81fe24b8
parentd465e5fac63f36bcf4069e36827f4b62c494556d (diff)
Imported Upstream version 0.9.0upstream/0.9.0
-rw-r--r--TODO154
-rw-r--r--cli/src/Makefile.am2
-rw-r--r--cli/src/Makefile.in3
-rw-r--r--cli/src/connections.c24
-rwxr-xr-xconfigure54
-rw-r--r--configure.ac11
-rw-r--r--data/NetworkManager-wait-online.service.in3
-rw-r--r--docs/api/Makefile.am4
-rw-r--r--docs/api/Makefile.in4
-rw-r--r--docs/api/generate-settings-spec.c1
-rw-r--r--docs/api/html/NetworkManager.devhelp28
-rw-r--r--docs/api/html/NetworkManager.devhelp228
-rw-r--r--docs/api/html/index.html32
-rw-r--r--docs/api/html/ix01.html2
-rw-r--r--docs/api/html/ref-migrating.html58
-rw-r--r--docs/api/html/ref-settings.html86
-rw-r--r--docs/api/html/spec.html4
-rw-r--r--docs/api/settings-spec.xml50
-rw-r--r--docs/api/spec.html4
-rw-r--r--docs/api/version.xml2
-rw-r--r--docs/libnm-glib/html/NMClient.html32
-rw-r--r--docs/libnm-glib/html/NMDevice.html11
-rw-r--r--docs/libnm-glib/html/NMDeviceWifi.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceWimax.html4
-rw-r--r--docs/libnm-glib/html/NMRemoteConnection.html2
-rw-r--r--docs/libnm-glib/html/NMRemoteSettings.html2
-rw-r--r--docs/libnm-glib/html/api-index-full.html8
-rw-r--r--docs/libnm-glib/html/ch02.html5
-rw-r--r--docs/libnm-glib/html/index.html5
-rw-r--r--docs/libnm-glib/html/index.sgml7
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html16
-rw-r--r--docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html137
-rw-r--r--docs/libnm-glib/html/libnm-glib.devhelp4
-rw-r--r--docs/libnm-glib/html/libnm-glib.devhelp24
-rw-r--r--docs/libnm-glib/html/object-tree.html4
-rw-r--r--docs/libnm-glib/libnm-glib-docs.xml1
-rw-r--r--docs/libnm-glib/libnm-glib-sections.txt1
-rw-r--r--docs/libnm-util/html/NMConnection.html37
-rw-r--r--docs/libnm-util/html/NMSetting.html150
-rw-r--r--docs/libnm-util/html/NMSetting8021x.html457
-rw-r--r--docs/libnm-util/html/NMSettingBluetooth.html102
-rw-r--r--docs/libnm-util/html/NMSettingCdma.html32
-rw-r--r--docs/libnm-util/html/NMSettingConnection.html2
-rw-r--r--docs/libnm-util/html/NMSettingGsm.html342
-rw-r--r--docs/libnm-util/html/NMSettingIP4Config.html885
-rw-r--r--docs/libnm-util/html/NMSettingIP6Config.html843
-rw-r--r--docs/libnm-util/html/NMSettingOlpcMesh.html4
-rw-r--r--docs/libnm-util/html/NMSettingPPP.html60
-rw-r--r--docs/libnm-util/html/NMSettingPPPOE.html75
-rw-r--r--docs/libnm-util/html/NMSettingSerial.html140
-rw-r--r--docs/libnm-util/html/NMSettingVPN.html229
-rw-r--r--docs/libnm-util/html/NMSettingWimax.html288
-rw-r--r--docs/libnm-util/html/NMSettingWired.html225
-rw-r--r--docs/libnm-util/html/NMSettingWireless.html401
-rw-r--r--docs/libnm-util/html/NMSettingWirelessSecurity.html549
-rw-r--r--docs/libnm-util/html/api-index-full.html549
-rw-r--r--docs/libnm-util/html/ch01.html30
-rw-r--r--docs/libnm-util/html/index.html28
-rw-r--r--docs/libnm-util/html/index.sgml151
-rw-r--r--docs/libnm-util/html/libnm-util-nm-utils.html75
-rw-r--r--docs/libnm-util/html/libnm-util.devhelp44
-rw-r--r--docs/libnm-util/html/libnm-util.devhelp2142
-rw-r--r--docs/libnm-util/html/object-tree.html4
-rw-r--r--docs/libnm-util/libnm-util-docs.sgml1
-rw-r--r--docs/libnm-util/libnm-util-sections.txt22
-rw-r--r--examples/C/qt/Makefile.am11
-rw-r--r--examples/C/qt/Makefile.in23
-rw-r--r--examples/C/qt/change-ipv4-addresses.cpp146
-rw-r--r--examples/python/Makefile.am3
-rw-r--r--examples/python/Makefile.in3
-rw-r--r--include/NetworkManager.h83
-rw-r--r--include/nm-settings-flags.h8
-rw-r--r--include/nm-version.h4
-rw-r--r--initscript/RedHat/Makefile.am3
-rw-r--r--initscript/RedHat/Makefile.in4
-rw-r--r--introspection/Makefile.am2
-rw-r--r--introspection/Makefile.in9
-rw-r--r--introspection/all.xml.in (renamed from introspection/all.xml)2
-rw-r--r--introspection/nm-agent-manager.xml2
-rw-r--r--introspection/nm-manager.xml9
-rw-r--r--introspection/nm-secret-agent.xml13
-rw-r--r--introspection/nm-settings.xml2
-rw-r--r--libnm-glib/Makefile.am2
-rw-r--r--libnm-glib/Makefile.in2
-rw-r--r--libnm-glib/libnm-glib-vpn.pc.in2
-rw-r--r--libnm-glib/libnm-glib.pc.in2
-rw-r--r--libnm-glib/libnm-glib.ver1
-rw-r--r--libnm-glib/nm-client.c36
-rw-r--r--libnm-glib/nm-client.h1
-rw-r--r--libnm-glib/nm-device-wifi.c10
-rw-r--r--libnm-glib/nm-device-wimax.c10
-rw-r--r--libnm-glib/nm-device.c43
-rw-r--r--libnm-glib/nm-object.c10
-rw-r--r--libnm-glib/nm-remote-settings.c9
-rw-r--r--libnm-glib/nm-vpn-plugin-ui-interface.c16
-rw-r--r--libnm-glib/nm-vpn-plugin-ui-interface.h14
-rw-r--r--libnm-util/libnm-util.ver14
-rw-r--r--libnm-util/nm-connection.c75
-rw-r--r--libnm-util/nm-connection.h7
-rw-r--r--libnm-util/nm-param-spec-specialized.c6
-rw-r--r--libnm-util/nm-setting-8021x.c405
-rw-r--r--libnm-util/nm-setting-8021x.h36
-rw-r--r--libnm-util/nm-setting-bluetooth.c47
-rw-r--r--libnm-util/nm-setting-bluetooth.h26
-rw-r--r--libnm-util/nm-setting-cdma.h12
-rw-r--r--libnm-util/nm-setting-connection.c16
-rw-r--r--libnm-util/nm-setting-gsm.c109
-rw-r--r--libnm-util/nm-setting-gsm.h49
-rw-r--r--libnm-util/nm-setting-ip4-config.c431
-rw-r--r--libnm-util/nm-setting-ip4-config.h52
-rw-r--r--libnm-util/nm-setting-ip6-config.c407
-rw-r--r--libnm-util/nm-setting-ip6-config.h63
-rw-r--r--libnm-util/nm-setting-ppp.c133
-rw-r--r--libnm-util/nm-setting-ppp.h12
-rw-r--r--libnm-util/nm-setting-pppoe.c42
-rw-r--r--libnm-util/nm-setting-pppoe.h12
-rw-r--r--libnm-util/nm-setting-serial.c55
-rw-r--r--libnm-util/nm-setting-serial.h12
-rw-r--r--libnm-util/nm-setting-vpn.c191
-rw-r--r--libnm-util/nm-setting-vpn.h17
-rw-r--r--libnm-util/nm-setting-wimax.c41
-rw-r--r--libnm-util/nm-setting-wimax.h10
-rw-r--r--libnm-util/nm-setting-wired.c137
-rw-r--r--libnm-util/nm-setting-wired.h14
-rw-r--r--libnm-util/nm-setting-wireless-security.c240
-rw-r--r--libnm-util/nm-setting-wireless-security.h42
-rw-r--r--libnm-util/nm-setting-wireless.c214
-rw-r--r--libnm-util/nm-setting-wireless.h30
-rw-r--r--libnm-util/nm-setting.c121
-rw-r--r--libnm-util/nm-setting.h65
-rw-r--r--libnm-util/nm-utils.c8
-rw-r--r--libnm-util/nm-utils.h30
-rw-r--r--libnm-util/tests/test-general.c122
-rw-r--r--libnm-util/tests/test-secrets.c86
-rw-r--r--libnm-util/tests/test-setting-8021x.c3
-rw-r--r--libnm-util/tests/test-settings-defaults.c5
-rw-r--r--m4/libnl-check.m411
-rw-r--r--man/NetworkManager.833
-rw-r--r--man/NetworkManager.8.in33
-rw-r--r--man/NetworkManager.conf.566
-rw-r--r--man/NetworkManager.conf.5.in66
-rw-r--r--po/es.po916
-rw-r--r--po/id.po1594
-rw-r--r--po/ko.po863
-rw-r--r--po/ru.po1517
-rw-r--r--po/uk.po2181
-rw-r--r--policy/org.freedesktop.NetworkManager.policy46
-rw-r--r--src/NetworkManager.conf13
-rw-r--r--src/NetworkManagerUtils.c30
-rw-r--r--src/NetworkManagerUtils.h1
-rw-r--r--src/dns-manager/nm-dns-manager.c19
-rw-r--r--src/modem-manager/nm-modem.c20
-rw-r--r--src/nm-device-ethernet.c42
-rw-r--r--src/nm-device-olpc-mesh.c75
-rw-r--r--src/nm-device-wifi.c317
-rw-r--r--src/nm-device.c46
-rw-r--r--src/nm-manager-auth.c111
-rw-r--r--src/nm-manager-auth.h6
-rw-r--r--src/nm-manager.c133
-rw-r--r--src/nm-policy.c160
-rw-r--r--src/nm-udev-manager.c3
-rw-r--r--src/settings/nm-agent-manager.c191
-rw-r--r--src/settings/nm-agent-manager.h7
-rw-r--r--src/settings/nm-secret-agent.c102
-rw-r--r--src/settings/nm-secret-agent.h9
-rw-r--r--src/settings/nm-settings-connection.c363
-rw-r--r--src/settings/nm-settings-connection.h12
-rw-r--r--src/settings/nm-settings.c28
-rw-r--r--src/settings/nm-settings.h6
-rw-r--r--src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c45
-rw-r--r--src/settings/plugins/ifcfg-rh/plugin.c24
-rw-r--r--src/settings/plugins/ifcfg-rh/reader.c167
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv22
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c129
-rw-r--r--src/settings/plugins/ifcfg-rh/writer.c41
-rw-r--r--src/settings/plugins/ifnet/plugin.c3
-rw-r--r--src/settings/plugins/keyfile/common.h3
-rw-r--r--src/settings/plugins/keyfile/plugin.c3
-rw-r--r--src/settings/plugins/keyfile/reader.c67
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Makefile.am5
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Makefile.in5
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID11
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Blob22
-rw-r--r--src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Path_Missing22
-rw-r--r--src/settings/plugins/keyfile/tests/test-keyfile.c299
-rw-r--r--src/settings/plugins/keyfile/utils.c7
-rw-r--r--src/settings/plugins/keyfile/writer.c10
-rw-r--r--src/supplicant-manager/nm-supplicant-config.c24
-rw-r--r--src/supplicant-manager/nm-supplicant-interface.c30
-rw-r--r--src/supplicant-manager/nm-supplicant-settings-verify.c4
-rw-r--r--src/supplicant-manager/tests/test-supplicant-config.c4
-rw-r--r--src/tests/test-dhcp-options.c4
-rw-r--r--src/vpn-manager/nm-vpn-connection.c170
-rw-r--r--test/nm-tool.c10
194 files changed, 16870 insertions, 3811 deletions
diff --git a/TODO b/TODO
index 1904f04d3..369be1e56 100644
--- a/TODO
+++ b/TODO
@@ -34,27 +34,11 @@ about ADSL configuration on Linux in general is here:
http://atm.eagle-usb.org/wakka.php?wiki=UeagleAtmDoc
-hicham started code for the configuration settings here:
-
-https://github.com/hicham-haouari/NetworkManager-ADSL-Support/commits/adsl
-
-After the libnm-util pieces, internally NM needs to be modified for ADSL
-support, of course. That involves adding a new NM_DEVICE_TYPE_ADSL in
-NetworkManager.h, and then creating a new NMDeviceAdsl subclass in src/. It's
-probably easiest to copy the nm-device-ethernet.c file and strip out stuff
-that's not required. Like the nm-device-ethernet.c file handles the 'carrier'
-state though, the ADSL code should periodically poll the sysfs 'carrier'
-attribute of the DSL modem to detect when the modem has a link with the remote
-DSL concentrator, and only activate connections when the link is present.
-
-Detection of ADSL modems should be handled in nm-udev-manager.c checking for
-the "atm" subsystem.
-
-Code to manage br2684ctl will likely be required to be written for the PPPoE
-case before PPPoE is started on the bridge-created link "nasX". There are
-quite a few examples of daemon management code in NetworkManager (dnsmasq,
-avahi-autoipd, ppp, dhclient, etc) so there should be a lot of code to
-copy and paste from.
+Big thanks to Pantelis Koukousoulas for getting ADSL working for PPPoA and PPPoE
+methods in the 'adsl' branch in NetworkManager git. We need more testing, IPv6
+PPP support, and also support for multiple ADSL devices (by reading the "atmindex"
+attribute from the sysfs directory for the ATM interface on 2.6.38.8 and later
+kernels).
* Convert WEXT code to nl80211
@@ -132,6 +116,38 @@ against the last scan timestamp, and if the last scan was 10 seconds or more
ago, a new scan should be requested.
+* Reconnect to WiFi Networks Only If They Succeeded Once
+
+Currently, NetworkManager will attempt to connect to a previously attempted
+WiFi network even if that network was never successfully connected to. This
+causes confusion because sometimes users will randomly try various WiFi networks
+hoping to find an open AP, and then wonder why NM tries to reconnect to any of
+those APs later when none of them worked originally due to AP-side MAC filtering
+or other failures. What should happen is that NetworkManager should set a flag
+on a connection when that connection is successfully connected at least once,
+and only autoconnect the wifi network if that flag is present *and* the
+NMSettingConnection's 'autoconnect' property is TRUE.
+
+This is a bit tricky because we want to consider all connections that don't have
+this flag as having succeeded so that we don't break users' existing connections,
+while holding all newly created connections to this policy. This flag should
+be determined and set for all connections, even if we only use it to determine
+WiFi behavior for now.
+
+This flag should be a new gboolean property on the NMSettingConnection object
+called "connect-success", with a default value of TRUE. It should default to
+TRUE to ensure that existing connections are assumed to have connected
+successfully in the past. New connections created via the AddConnection and
+AddAndActivateConnection D-Bus method calls should have the 'connect-success'
+property explicitly set to FALSE. Then, in nm-device.c's device_state_changed()
+function where the NM_DEVICE_STATE_ACTIVATED state is handled, the
+'connect-success' property should be set to TRUE.
+
+For WiFi then, in nm-device-wifi.c's get_best_auto_connection() method, the
+'connect-success' property should be checked and if it is FALSE, the connection
+is not considered for auto-activation.
+
+
* Implement NM_DEVICE_STATE_DISCONNECTING
To allow for "pre-down" scenarios, this state should be implemented before a
@@ -146,6 +162,64 @@ amount of time for each script to complete before allowing the device to
proceed to the NM_DEVICE_STATE_DISCONNECTED state, fully implementing pre-down.
+* Ethernet Network Auto-detection
+
+There are various methods we can use to autodetect which wired network connection
+to use if the user connects to more than one wired network on a frequent basis.
+First, 802.1x enterprise switches broadcast frames which can be used to indicate
+that the switch supports 802.1x and thus allow NetworkManager to select an
+802.1x connection instead of blindly trying DHCP. Second, NetworkManager could
+listen for traffic from a list of MAC addresses. Third, NetworkManager could
+integrate 'arping' functionality to determine if a given IP address matches a
+given MAC address, and thus automatically select that connection. All these
+methods can co-exist and be used in parallel.
+
+One small caveat is that MAC addresses are trivial to spoof, so just because
+NetworkManager has discovered a certain MAC address does not mean the network
+is authenticated; only 802.1x security can assure that a network is the network
+the user expects it to be.
+
+In any case, a new 'anchor-addresses' property of type string-array should be
+added to the NMSettingWired setting. Each string element of this property
+should be of the format "<ip>/<mac>" or simply "<mac>". The first format with
+an IP address would indicate that "arping"-type behavior should be used to
+actively detect the given MAC address; obviously if the given MAC address is
+used for passive discovery as well. The second format simply lists a MAC
+address to passively listen for.
+
+One drawback of listening or probing for known MAC addresses is an increase in
+latency during connections to ethernet networks. The probing/listening delay
+should be a reasonable amount of time, like 4 - 5 seconds or so, and should
+only be used when a visible connection has anchor addresses.
+
+Next a gboolean 'anchor-probing' variable should be added to the
+NMDeviceEthernetPrivate structure in src/nm-device-ethernet.c. This variable
+should be set to TRUE whenever the device's carrier turns on *and* there are
+visible NMConnections with anchor addresses (ie, connections which are system-
+wide or where one of the allowed users of that connection is logged in). Then
+probing and listening are started, which involves opening a low-level socket
+on the interface and starting the arping run or listening for MAC addresses.
+A timer is also started (don't forget to cache the timer's source ID in the
+NMDeviceEthernetPrivate data, and to cancel the timer whenever the device
+transitions to any state other than DISCONNECTED).
+
+If a known MAC address is discovered as a result of probing or listening, the
+probe/listen socket, timeout, and data are cleaned up, and NetworkManager
+would begin activation of the NMConnection that specified the found MAC address
+in the 'anchor-addresses' property. If two or more connections specify the
+same MAC address, the connection with the most recent timestamp should be
+preferred.
+
+Similarly, if the probing/listening process detects 802.1x frames the device
+should be marked as requring 802.1x authentication until the carrier drops.
+This would be accomplished by adding a new property to the NMDeviceEthernet
+object and exporting that property through the
+introspection/nm-device-ethernet.xml file. This would allow clients like
+applets to ensure that users are aware that the device will not allow
+un-authenticated connections and that additional credentials are required to
+successfully connect to this network.
+
+
* VPN re-connect
NM should remember whether a VPN was connected if a connection disconnects
@@ -230,6 +304,44 @@ failure of the VPN connection, just like DHCP timeouts and lease-renewal
failures do for other devices (see dhcp_state_changed() in nm-device.c).
+* VPN Service Daemon Secret Requests
+
+In addition to NM asking the service daemons whether more secrets are required,
+VPN service daemons (like nm-vpnc-service, nm-openvpn-service, etc) should be
+able to ask NetworkManager to provide secrets during the connection attempt. To
+do this, the plugin should advertise its ability to handle out-of-band secrets
+in its .service file via the key 'async-secrets=true'. NetworkManager would
+check that key and if present activate the VPN as normal, but skip the explicit
+NeedSecrets calls.
+
+Instead, a new "SecretsRequired" signal would be added to
+introspection/nm-vpn-plugin.xml (and corresponding helper code added to
+libnm-glib/nm-vpn-plugin.c) that would be emitted when the plugin determined
+that secrets were required. This signal would have D-Bus signature of "sas"
+for the arguments [ <s:uuid>, <as:secrets> ] with the <uuid> obviously being
+the connection UUID, and <secrets> being an array of strings of plugin-specific
+strings the plugin requires secrets for. This array of strings would then be
+passed as the "hints" parameter in nm-vpn-connection.c when secrets are
+requested from agents in a subsequent nm_settings_connection_get_secrets() call.
+At this time the agent code only allows one hint per request, so we may need to
+extend that to allow more than one hint.
+
+Thus when connecting if the plugin supported async secrets NetworkManager would
+still request existing secrets (without interactivity) and send them to the
+VPN service daemon in the Connect D-Bus method, then wait for the service daemon
+to either request secrets asynchronously via the SecretsRequired signal or to
+signal successful connection via the Ip4Config signal.
+
+The vpnc plugin would need to be reworked to open a pipe to vpnc's stdout and
+stdin file descriptors to capture any authentication messages, and to match
+these messages to known secrets request strings. When receiving one of these
+strings the plugin would determine which secret was being requested and then
+emit the SecretsRequired signal to NetworkManager. This would also imply that
+nm-vpnc-service exectutes vpnc with the "--xauth-inter" argument to enable
+challenge-response and does not use the "--non-inter" flag which suppresses that
+behavior.
+
+
* WPS
wpa_supplicant has support for WPS (Wifi Protected Setup, basically Bluetooth-
diff --git a/cli/src/Makefile.am b/cli/src/Makefile.am
index 572e122fb..f49d0127a 100644
--- a/cli/src/Makefile.am
+++ b/cli/src/Makefile.am
@@ -4,7 +4,6 @@ bin_PROGRAMS = \
INCLUDES = \
-I${top_srcdir} \
-I${top_srcdir}/include \
- -I${top_builddir}/marshallers \
-I${top_srcdir}/libnm-util \
-I${top_srcdir}/libnm-glib
@@ -31,7 +30,6 @@ nmcli_CPPFLAGS = \
nmcli_LDADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS) \
- $(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/libnm-util/libnm-util.la \
$(top_builddir)/libnm-glib/libnm-glib.la
diff --git a/cli/src/Makefile.in b/cli/src/Makefile.in
index e4708ad18..33aa3f2be 100644
--- a/cli/src/Makefile.in
+++ b/cli/src/Makefile.in
@@ -63,7 +63,6 @@ am_nmcli_OBJECTS = nmcli-connections.$(OBJEXT) nmcli-devices.$(OBJEXT) \
nmcli_OBJECTS = $(am_nmcli_OBJECTS)
am__DEPENDENCIES_1 =
nmcli_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/libnm-util/libnm-util.la \
$(top_builddir)/libnm-glib/libnm-glib.la
AM_V_lt = $(am__v_lt_$(V))
@@ -309,7 +308,6 @@ top_srcdir = @top_srcdir@
INCLUDES = \
-I${top_srcdir} \
-I${top_srcdir}/include \
- -I${top_builddir}/marshallers \
-I${top_srcdir}/libnm-util \
-I${top_srcdir}/libnm-glib
@@ -336,7 +334,6 @@ nmcli_CPPFLAGS = \
nmcli_LDADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS) \
- $(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/libnm-util/libnm-util.la \
$(top_builddir)/libnm-glib/libnm-glib.la
diff --git a/cli/src/connections.c b/cli/src/connections.c
index 2646aa9e9..5febc58ac 100644
--- a/cli/src/connections.c
+++ b/cli/src/connections.c
@@ -400,6 +400,7 @@ show_connection (NMConnection *data, gpointer user_data)
NmCli *nmc = (NmCli *) user_data;
NMSettingConnection *s_con;
guint64 timestamp;
+ time_t timestamp_real;
char *timestamp_str;
char timestamp_real_str[64];
@@ -408,7 +409,8 @@ show_connection (NMConnection *data, gpointer user_data)
/* Obtain field values */
timestamp = nm_setting_connection_get_timestamp (s_con);
timestamp_str = g_strdup_printf ("%" G_GUINT64_FORMAT, timestamp);
- strftime (timestamp_real_str, sizeof (timestamp_real_str), "%c", localtime ((time_t *) &timestamp));
+ timestamp_real = timestamp;
+ strftime (timestamp_real_str, sizeof (timestamp_real_str), "%c", localtime (&timestamp_real));
nmc->allowed_fields[0].value = nm_setting_connection_get_id (s_con);
nmc->allowed_fields[1].value = nm_setting_connection_get_uuid (s_con);
@@ -1075,22 +1077,10 @@ find_device_for_connection (NmCli *nmc,
/* VPN connections */
NMActiveConnection *active = NULL;
if (iface) {
- const GPtrArray *connections = nm_client_get_active_connections (nmc->client);
- for (i = 0; connections && (i < connections->len) && !active; i++) {
- NMActiveConnection *candidate = g_ptr_array_index (connections, i);
- const GPtrArray *devices = nm_active_connection_get_devices (candidate);
- if (!devices || !devices->len)
- continue;
-
- for (j = 0; devices && (j < devices->len); j++) {
- NMDevice *dev = g_ptr_array_index (devices, j);
- if (!strcmp (iface, nm_device_get_iface (dev))) {
- active = candidate;
- *device = dev;
- break;
- }
- }
- }
+ *device = nm_client_get_device_by_iface (nmc->client, iface);
+ if (*device)
+ active = nm_device_get_active_connection (*device);
+
if (!active) {
g_set_error (error, 0, 0, _("no active connection on device '%s'"), iface);
return FALSE;
diff --git a/configure b/configure
index 2f3e24415..637c085b8 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.68 for NetworkManager 0.8.9997.
+# Generated by GNU Autoconf 2.68 for NetworkManager 0.9.0.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>.
#
@@ -571,8 +571,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='NetworkManager'
PACKAGE_TARNAME='NetworkManager'
-PACKAGE_VERSION='0.8.9997'
-PACKAGE_STRING='NetworkManager 0.8.9997'
+PACKAGE_VERSION='0.9.0'
+PACKAGE_STRING='NetworkManager 0.9.0'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager'
PACKAGE_URL=''
@@ -1523,7 +1523,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 0.8.9997 to adapt to many kinds of systems.
+\`configure' configures NetworkManager 0.9.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1593,7 +1593,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of NetworkManager 0.8.9997:";;
+ short | recursive ) echo "Configuration of NetworkManager 0.9.0:";;
esac
cat <<\_ACEOF
@@ -1787,7 +1787,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-NetworkManager configure 0.8.9997
+NetworkManager configure 0.9.0
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2331,7 +2331,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 0.8.9997, which was
+It was created by NetworkManager $as_me 0.9.0, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -3152,7 +3152,7 @@ fi
# Define the identity of the package.
PACKAGE='NetworkManager'
- VERSION='0.8.9997'
+ VERSION='0.9.0'
cat >>confdefs.h <<_ACEOF
@@ -16278,9 +16278,9 @@ fi
NM_MAJOR_VERSION=0
-NM_MINOR_VERSION=8
-NM_MICRO_VERSION=9997
-NM_VERSION=0.8.9997
+NM_MINOR_VERSION=9
+NM_MICRO_VERSION=0
+NM_VERSION=0.9.0
@@ -19762,7 +19762,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_have_iwevgenie" >&5
$as_echo "$ac_have_iwevgenie" >&6; }
if test "$ac_have_iwevgenie" = no; then
- as_fn_error $? "wireless-tools library and development headers >= 28pre9 not installed or not functional" "$LINENO" 5
+ as_fn_error $? "wireless-tools or libiw development headers >= 28pre9 not installed or not functional" "$LINENO" 5
fi
LIBM=
@@ -20683,12 +20683,12 @@ if test -n "$QT_CFLAGS"; then
pkg_cv_QT_CFLAGS="$QT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt >= 4 QtCore QtDBus\""; } >&5
- ($PKG_CONFIG --exists --print-errors "Qt >= 4 QtCore QtDBus") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt >= 4 QtCore QtDBus QtNetwork\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "Qt >= 4 QtCore QtDBus QtNetwork") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "Qt >= 4 QtCore QtDBus" 2>/dev/null`
+ pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "Qt >= 4 QtCore QtDBus QtNetwork" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -20699,12 +20699,12 @@ if test -n "$QT_LIBS"; then
pkg_cv_QT_LIBS="$QT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt >= 4 QtCore QtDBus\""; } >&5
- ($PKG_CONFIG --exists --print-errors "Qt >= 4 QtCore QtDBus") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"Qt >= 4 QtCore QtDBus QtNetwork\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "Qt >= 4 QtCore QtDBus QtNetwork") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "Qt >= 4 QtCore QtDBus" 2>/dev/null`
+ pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "Qt >= 4 QtCore QtDBus QtNetwork" 2>/dev/null`
else
pkg_failed=yes
fi
@@ -20724,9 +20724,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "Qt >= 4 QtCore QtDBus" 2>&1`
+ QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "Qt >= 4 QtCore QtDBus QtNetwork" 2>&1`
else
- QT_PKG_ERRORS=`$PKG_CONFIG --print-errors "Qt >= 4 QtCore QtDBus" 2>&1`
+ QT_PKG_ERRORS=`$PKG_CONFIG --print-errors "Qt >= 4 QtCore QtDBus QtNetwork" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$QT_PKG_ERRORS" >&5
@@ -20939,8 +20939,9 @@ else
#include <netlink/object-api.h>
int
-main (int argc, char **argv)
+main ()
{
+
struct nl_handle *nlh;
struct nl_cache *cache;
struct nl_object *obj;
@@ -20966,8 +20967,10 @@ main (int argc, char **argv)
return 1;
else
return 2;
-}
+ ;
+ return 0;
+}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
libnl_bug=$?
@@ -22261,7 +22264,7 @@ case $with_tests in
esac
-ac_config_files="$ac_config_files Makefile include/Makefile include/nm-version.h src/Makefile src/tests/Makefile marshallers/Makefile src/logging/Makefile src/dns-manager/Makefile src/vpn-manager/Makefile src/dhcp-manager/Makefile src/dhcp-manager/tests/Makefile src/ip6-manager/Makefile src/supplicant-manager/Makefile src/supplicant-manager/tests/Makefile src/ppp-manager/Makefile src/dnsmasq-manager/Makefile src/modem-manager/Makefile src/bluez-manager/Makefile src/settings/Makefile src/settings/plugins/Makefile src/settings/plugins/ifupdown/Makefile src/settings/plugins/ifupdown/tests/Makefile src/settings/plugins/ifnet/Makefile src/settings/plugins/ifnet/tests/Makefile src/settings/plugins/ifcfg-rh/Makefile src/settings/plugins/ifcfg-rh/tests/Makefile src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile src/settings/plugins/ifcfg-suse/Makefile src/settings/plugins/keyfile/Makefile src/settings/plugins/keyfile/tests/Makefile src/settings/plugins/keyfile/tests/keyfiles/Makefile src/settings/tests/Makefile src/wimax/Makefile src/backends/Makefile libnm-util/libnm-util.pc libnm-util/Makefile libnm-util/tests/Makefile libnm-util/tests/certs/Makefile libnm-glib/libnm-glib.pc libnm-glib/libnm-glib-vpn.pc libnm-glib/Makefile libnm-glib/tests/Makefile callouts/Makefile callouts/tests/Makefile tools/Makefile cli/Makefile cli/src/Makefile test/Makefile initscript/Makefile initscript/RedHat/Makefile initscript/RedHat/NetworkManager initscript/Gentoo/Makefile initscript/Gentoo/NetworkManager initscript/Debian/Makefile initscript/Debian/NetworkManager initscript/Slackware/Makefile initscript/Slackware/rc.networkmanager initscript/SUSE/Makefile initscript/SUSE/networkmanager initscript/Arch/Makefile initscript/Arch/networkmanager initscript/paldo/Makefile initscript/paldo/NetworkManager initscript/Mandriva/Makefile initscript/Mandriva/networkmanager initscript/linexa/Makefile initscript/linexa/networkmanager introspection/Makefile man/Makefile man/NetworkManager.8 man/NetworkManager.conf.5 man/nm-system-settings.conf.5 man/nm-tool.1 man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile data/Makefile docs/Makefile docs/api/Makefile docs/api/version.xml docs/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/python/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile"
+ac_config_files="$ac_config_files Makefile include/Makefile include/nm-version.h src/Makefile src/tests/Makefile marshallers/Makefile src/logging/Makefile src/dns-manager/Makefile src/vpn-manager/Makefile src/dhcp-manager/Makefile src/dhcp-manager/tests/Makefile src/ip6-manager/Makefile src/supplicant-manager/Makefile src/supplicant-manager/tests/Makefile src/ppp-manager/Makefile src/dnsmasq-manager/Makefile src/modem-manager/Makefile src/bluez-manager/Makefile src/settings/Makefile src/settings/plugins/Makefile src/settings/plugins/ifupdown/Makefile src/settings/plugins/ifupdown/tests/Makefile src/settings/plugins/ifnet/Makefile src/settings/plugins/ifnet/tests/Makefile src/settings/plugins/ifcfg-rh/Makefile src/settings/plugins/ifcfg-rh/tests/Makefile src/settings/plugins/ifcfg-rh/tests/network-scripts/Makefile src/settings/plugins/ifcfg-suse/Makefile src/settings/plugins/keyfile/Makefile src/settings/plugins/keyfile/tests/Makefile src/settings/plugins/keyfile/tests/keyfiles/Makefile src/settings/tests/Makefile src/wimax/Makefile src/backends/Makefile libnm-util/libnm-util.pc libnm-util/Makefile libnm-util/tests/Makefile libnm-util/tests/certs/Makefile libnm-glib/libnm-glib.pc libnm-glib/libnm-glib-vpn.pc libnm-glib/Makefile libnm-glib/tests/Makefile callouts/Makefile callouts/tests/Makefile tools/Makefile cli/Makefile cli/src/Makefile test/Makefile initscript/Makefile initscript/RedHat/Makefile initscript/RedHat/NetworkManager initscript/Gentoo/Makefile initscript/Gentoo/NetworkManager initscript/Debian/Makefile initscript/Debian/NetworkManager initscript/Slackware/Makefile initscript/Slackware/rc.networkmanager initscript/SUSE/Makefile initscript/SUSE/networkmanager initscript/Arch/Makefile initscript/Arch/networkmanager initscript/paldo/Makefile initscript/paldo/NetworkManager initscript/Mandriva/Makefile initscript/Mandriva/networkmanager initscript/linexa/Makefile initscript/linexa/networkmanager introspection/Makefile introspection/all.xml man/Makefile man/NetworkManager.8 man/NetworkManager.conf.5 man/nm-system-settings.conf.5 man/nm-tool.1 man/nm-online.1 man/nmcli.1 po/Makefile.in policy/Makefile data/Makefile docs/Makefile docs/api/Makefile docs/api/version.xml docs/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/python/Makefile examples/C/Makefile examples/C/glib/Makefile examples/C/qt/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -22926,7 +22929,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 0.8.9997, which was
+This file was extended by NetworkManager $as_me 0.9.0, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -22992,7 +22995,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 0.8.9997
+NetworkManager config.status 0.9.0
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -23577,6 +23580,7 @@ do
"initscript/linexa/Makefile") CONFIG_FILES="$CONFIG_FILES initscript/linexa/Makefile" ;;
"initscript/linexa/networkmanager") CONFIG_FILES="$CONFIG_FILES initscript/linexa/networkmanager" ;;
"introspection/Makefile") CONFIG_FILES="$CONFIG_FILES introspection/Makefile" ;;
+ "introspection/all.xml") CONFIG_FILES="$CONFIG_FILES introspection/all.xml" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
"man/NetworkManager.8") CONFIG_FILES="$CONFIG_FILES man/NetworkManager.8" ;;
"man/NetworkManager.conf.5") CONFIG_FILES="$CONFIG_FILES man/NetworkManager.conf.5" ;;
diff --git a/configure.ac b/configure.ac
index 74765de35..c557c6be4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,8 +2,8 @@ AC_PREREQ([2.63])
dnl The NM version number
m4_define([nm_major_version], [0])
-m4_define([nm_minor_version], [8])
-m4_define([nm_micro_version], [9997])
+m4_define([nm_minor_version], [9])
+m4_define([nm_micro_version], [0])
m4_define([nm_version],
[nm_major_version.nm_minor_version.nm_micro_version])
@@ -15,7 +15,7 @@ AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([1.10 subdir-objects tar-ustar no-dist-gzip dist-bzip2])
+AM_INIT_AUTOMAKE([1.10 subdir-objects tar-ustar no-dist-gzip dist-bzip2 -Wno-portability])
AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
@@ -225,7 +225,7 @@ AC_COMPILE_IFELSE(
[ac_have_iwevgenie=no])
AC_MSG_RESULT($ac_have_iwevgenie)
if test "$ac_have_iwevgenie" = no; then
- AC_MSG_ERROR(wireless-tools library and development headers >= 28pre9 not installed or not functional)
+ AC_MSG_ERROR(wireless-tools or libiw development headers >= 28pre9 not installed or not functional)
fi
dnl
@@ -268,7 +268,7 @@ AC_SUBST(GIO_LIBS)
GOBJECT_INTROSPECTION_CHECK([0.9.6])
# Qt4
-PKG_CHECK_MODULES(QT, [Qt >= 4 QtCore QtDBus], [have_qt=yes],[have_qt=no])
+PKG_CHECK_MODULES(QT, [Qt >= 4 QtCore QtDBus QtNetwork], [have_qt=yes],[have_qt=no])
AC_ARG_ENABLE(qt, AS_HELP_STRING([--enable-qt], [enable Qt examples]),
[enable_qt=${enableval}], [enable_qt=${have_qt}])
if (test "${enable_qt}" = "yes"); then
@@ -664,6 +664,7 @@ initscript/Mandriva/networkmanager
initscript/linexa/Makefile
initscript/linexa/networkmanager
introspection/Makefile
+introspection/all.xml
man/Makefile
man/NetworkManager.8
man/NetworkManager.conf.5
diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in
index 0772568ff..fd9be418e 100644
--- a/data/NetworkManager-wait-online.service.in
+++ b/data/NetworkManager-wait-online.service.in
@@ -1,12 +1,13 @@
[Unit]
Description=Network Manager Wait Online
+Requisite=NetworkManager.service
After=NetworkManager.service
Wants=network.target
Before=network.target
[Service]
Type=oneshot
-ExecStart=@bindir@/nm-online -q -x --timeout=30
+ExecStart=@bindir@/nm-online -q --timeout=30
[Install]
WantedBy=network.target
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index 687d9cfb1..276b4aefe 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -27,7 +27,7 @@ XSLTPROC = xsltproc --xinclude --nonet
XMLS = $(wildcard $(top_srcdir)/introspection/nm-*.xml)
OTHER_FILES= \
- $(top_srcdir)/introspection/all.xml \
+ $(top_builddir)/introspection/all.xml \
$(top_srcdir)/introspection/generic-types.xml \
$(top_srcdir)/introspection/errors.xml \
$(top_srcdir)/introspection/vpn-errors.xml \
@@ -37,7 +37,7 @@ OTHER_FILES= \
GENERATED_FILES = spec.html settings-spec.xml
spec.html: $(XMLS) $(OTHER_FILES) html-build.stamp
- $(XSLTPROC) $(top_srcdir)/tools/doc-generator.xsl $(top_srcdir)/introspection/all.xml > $@
+ $(XSLTPROC) $(top_srcdir)/tools/doc-generator.xsl $(top_builddir)/introspection/all.xml > $@
mkdir -p $(builddir)/html/
cp $@ $(builddir)/html/
diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in
index ec3fb8a26..47874cafa 100644
--- a/docs/api/Makefile.in
+++ b/docs/api/Makefile.in
@@ -333,7 +333,7 @@ AUTOMAKE_OPTIONS = 1.7
@WITH_DOCS_TRUE@XSLTPROC = xsltproc --xinclude --nonet
@WITH_DOCS_TRUE@XMLS = $(wildcard $(top_srcdir)/introspection/nm-*.xml)
@WITH_DOCS_TRUE@OTHER_FILES = \
-@WITH_DOCS_TRUE@ $(top_srcdir)/introspection/all.xml \
+@WITH_DOCS_TRUE@ $(top_builddir)/introspection/all.xml \
@WITH_DOCS_TRUE@ $(top_srcdir)/introspection/generic-types.xml \
@WITH_DOCS_TRUE@ $(top_srcdir)/introspection/errors.xml \
@WITH_DOCS_TRUE@ $(top_srcdir)/introspection/vpn-errors.xml \
@@ -732,7 +732,7 @@ uninstall-am: uninstall-local
@WITH_DOCS_TRUE@spec.html: $(XMLS) $(OTHER_FILES) html-build.stamp
-@WITH_DOCS_TRUE@ $(XSLTPROC) $(top_srcdir)/tools/doc-generator.xsl $(top_srcdir)/introspection/all.xml > $@
+@WITH_DOCS_TRUE@ $(XSLTPROC) $(top_srcdir)/tools/doc-generator.xsl $(top_builddir)/introspection/all.xml > $@
@WITH_DOCS_TRUE@ mkdir -p $(builddir)/html/
@WITH_DOCS_TRUE@ cp $@ $(builddir)/html/
diff --git a/docs/api/generate-settings-spec.c b/docs/api/generate-settings-spec.c
index 9c15314fd..c37615b8e 100644
--- a/docs/api/generate-settings-spec.c
+++ b/docs/api/generate-settings-spec.c
@@ -87,6 +87,7 @@ static TypeNameElement name_map[] = {
{ "GArray_guint_", "array of uint32" },
{ "GPtrArray_GArray_guint__", "array of array of uint32" },
{ "GPtrArray_GArray_guchar__", "array of byte array" },
+ { "GPtrArray_gchararray_", "array of string" },
{ "GHashTable_gchararray+gchararray_", "dict of (string::string)" },
{ "GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar___", "array of (byte array, uint32, byte array)" },
{ "GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar_+guint__", "array of (byte array, uint32, byte array, uint32)" },
diff --git a/docs/api/html/NetworkManager.devhelp b/docs/api/html/NetworkManager.devhelp
index bf173496e..225718a46 100644
--- a/docs/api/html/NetworkManager.devhelp
+++ b/docs/api/html/NetworkManager.devhelp
@@ -4,23 +4,23 @@
<chapters>
<sub name="D-Bus API Reference" link="ref-dbus.html"/>
<sub name="Network Configuration Setting Specification" link="ref-settings.html">
- <sub name="Configuration Settings" link="ref-settings.html#id384567"/>
+ <sub name="Configuration Settings" link="ref-settings.html#id499631"/>
<sub name="Secret flag types" link="secrets-flags.html"/>
</sub>
<sub name="Migrating from NetworkManager 0.8 to NetworkManager 0.9" link="ref-migrating.html">
- <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id368030">
- <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id381237"/>
- <sub name="User Secret Agents" link="ref-migrating.html#id363154"/>
- <sub name="Settings Service Interface Changes" link="ref-migrating.html#id375692"/>
- <sub name="Connection Object Interface Changes" link="ref-migrating.html#id376241"/>
- <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id390693"/>
- <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id396820"/>
- <sub name="Support for WiMAX Devices" link="ref-migrating.html#id353630"/>
- <sub name="New Device States" link="ref-migrating.html#id395790"/>
- <sub name="New Active Connection State" link="ref-migrating.html#id364728"/>
- <sub name="Consolidated Modem Devices" link="ref-migrating.html#id363573"/>
- <sub name="Secret Property Flags" link="ref-migrating.html#id344431"/>
- <sub name="Deprecated Methods Removed" link="ref-migrating.html#id359402"/>
+ <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id515244">
+ <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id506888"/>
+ <sub name="User Secret Agents" link="ref-migrating.html#id490940"/>
+ <sub name="Settings Service Interface Changes" link="ref-migrating.html#id478937"/>
+ <sub name="Connection Object Interface Changes" link="ref-migrating.html#id496154"/>
+ <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id469504"/>
+ <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id485456"/>
+ <sub name="Support for WiMAX Devices" link="ref-migrating.html#id490040"/>
+ <sub name="New Device States" link="ref-migrating.html#id507718"/>
+ <sub name="New Active Connection State" link="ref-migrating.html#id515265"/>
+ <sub name="Consolidated Modem Devices" link="ref-migrating.html#id515394"/>
+ <sub name="Secret Property Flags" link="ref-migrating.html#id479874"/>
+ <sub name="Deprecated Methods Removed" link="ref-migrating.html#id474466"/>
</sub>
</sub>
<sub name="Index" link="ix01.html"/>
diff --git a/docs/api/html/NetworkManager.devhelp2 b/docs/api/html/NetworkManager.devhelp2
index 20f2b1479..e5538797f 100644
--- a/docs/api/html/NetworkManager.devhelp2
+++ b/docs/api/html/NetworkManager.devhelp2
@@ -4,23 +4,23 @@
<chapters>
<sub name="D-Bus API Reference" link="ref-dbus.html"/>
<sub name="Network Configuration Setting Specification" link="ref-settings.html">
- <sub name="Configuration Settings" link="ref-settings.html#id384567"/>
+ <sub name="Configuration Settings" link="ref-settings.html#id499631"/>
<sub name="Secret flag types" link="secrets-flags.html"/>
</sub>
<sub name="Migrating from NetworkManager 0.8 to NetworkManager 0.9" link="ref-migrating.html">
- <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id368030">
- <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id381237"/>
- <sub name="User Secret Agents" link="ref-migrating.html#id363154"/>
- <sub name="Settings Service Interface Changes" link="ref-migrating.html#id375692"/>
- <sub name="Connection Object Interface Changes" link="ref-migrating.html#id376241"/>
- <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id390693"/>
- <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id396820"/>
- <sub name="Support for WiMAX Devices" link="ref-migrating.html#id353630"/>
- <sub name="New Device States" link="ref-migrating.html#id395790"/>
- <sub name="New Active Connection State" link="ref-migrating.html#id364728"/>
- <sub name="Consolidated Modem Devices" link="ref-migrating.html#id363573"/>
- <sub name="Secret Property Flags" link="ref-migrating.html#id344431"/>
- <sub name="Deprecated Methods Removed" link="ref-migrating.html#id359402"/>
+ <sub name="Architecture and D-Bus API Changes in 0.9" link="ref-migrating.html#id515244">
+ <sub name="Elimination of the User Settings Service" link="ref-migrating.html#id506888"/>
+ <sub name="User Secret Agents" link="ref-migrating.html#id490940"/>
+ <sub name="Settings Service Interface Changes" link="ref-migrating.html#id478937"/>
+ <sub name="Connection Object Interface Changes" link="ref-migrating.html#id496154"/>
+ <sub name="Permissions Methods Consolidation" link="ref-migrating.html#id469504"/>
+ <sub name="AddConnection Returns Object Path of New Connection" link="ref-migrating.html#id485456"/>
+ <sub name="Support for WiMAX Devices" link="ref-migrating.html#id490040"/>
+ <sub name="New Device States" link="ref-migrating.html#id507718"/>
+ <sub name="New Active Connection State" link="ref-migrating.html#id515265"/>
+ <sub name="Consolidated Modem Devices" link="ref-migrating.html#id515394"/>
+ <sub name="Secret Property Flags" link="ref-migrating.html#id479874"/>
+ <sub name="Deprecated Methods Removed" link="ref-migrating.html#id474466"/>
</sub>
</sub>
<sub name="Index" link="ix01.html"/>
diff --git a/docs/api/html/index.html b/docs/api/html/index.html
index 091a42903..c734b9222 100644
--- a/docs/api/html/index.html
+++ b/docs/api/html/index.html
@@ -22,11 +22,11 @@
    <code class="email">&lt;<a class="email" href="mailto:dcbw@redhat.com">dcbw@redhat.com</a>&gt;</code><br>
  </p></div></div>
</div></div></div>
-<div><p class="releaseinfo">Version 0.8.9997
+<div><p class="releaseinfo">Version 0.9.0
</p></div>
<div><p class="copyright">Copyright © 2011 The NetworkManager Authors</p></div>
<div><div class="legalnotice">
-<a name="id314448"></a><p>
+<a name="id429511"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.1 or any later
@@ -61,25 +61,25 @@
<dt><span class="chapter"><a href="ref-dbus.html">D-Bus API Reference</a></span></dt>
<dt><span class="chapter"><a href="ref-settings.html">Network Configuration Setting Specification</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-settings.html#id384567">Configuration Settings</a></span></dt>
+<dt><span class="section"><a href="ref-settings.html#id499631">Configuration Settings</a></span></dt>
<dt><span class="section"><a href="secrets-flags.html">Secret flag types</a></span></dt>
</dl></dd>
<dt><span class="chapter"><a href="ref-migrating.html">Migrating from NetworkManager 0.8 to NetworkManager 0.9</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-migrating.html#id368030">Architecture and D-Bus API Changes in 0.9</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515244">Architecture and D-Bus API Changes in 0.9</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-migrating.html#id381237">Elimination of the User Settings Service</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id363154">User Secret Agents</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id375692">Settings Service Interface Changes</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id376241">Connection Object Interface Changes</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id390693">Permissions Methods Consolidation</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id396820">AddConnection Returns Object Path of New Connection</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id353630">Support for WiMAX Devices</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id395790">New Device States</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id364728">New Active Connection State</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id363573">Consolidated Modem Devices</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id344431">Secret Property Flags</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id359402">Deprecated Methods Removed</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id506888">Elimination of the User Settings Service</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id490940">User Secret Agents</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id478937">Settings Service Interface Changes</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id496154">Connection Object Interface Changes</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id469504">Permissions Methods Consolidation</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id485456">AddConnection Returns Object Path of New Connection</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id490040">Support for WiMAX Devices</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id507718">New Device States</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515265">New Active Connection State</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515394">Consolidated Modem Devices</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id479874">Secret Property Flags</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id474466">Deprecated Methods Removed</a></span></dt>
</dl></dd>
</dl></dd>
<dt><span class="index"><a href="ix01.html">Index</a></span></dt>
diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html
index 1387212fa..ffcd2110a 100644
--- a/docs/api/html/ix01.html
+++ b/docs/api/html/ix01.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="index">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id344340"></a>Index</h2></div></div></div>
+<a name="id459403"></a>Index</h2></div></div></div>
<div class="index"></div>
</div>
<div class="footer">
diff --git a/docs/api/html/ref-migrating.html b/docs/api/html/ref-migrating.html
index 8324e2634..a3221b047 100644
--- a/docs/api/html/ref-migrating.html
+++ b/docs/api/html/ref-migrating.html
@@ -23,20 +23,20 @@
<div class="titlepage"><div><div><h2 class="title">
<a name="ref-migrating"></a>Migrating from NetworkManager 0.8 to NetworkManager 0.9</h2></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="ref-migrating.html#id368030">Architecture and D-Bus API Changes in 0.9</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515244">Architecture and D-Bus API Changes in 0.9</a></span></dt>
<dd><dl>
-<dt><span class="section"><a href="ref-migrating.html#id381237">Elimination of the User Settings Service</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id363154">User Secret Agents</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id375692">Settings Service Interface Changes</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id376241">Connection Object Interface Changes</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id390693">Permissions Methods Consolidation</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id396820">AddConnection Returns Object Path of New Connection</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id353630">Support for WiMAX Devices</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id395790">New Device States</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id364728">New Active Connection State</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id363573">Consolidated Modem Devices</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id344431">Secret Property Flags</a></span></dt>
-<dt><span class="section"><a href="ref-migrating.html#id359402">Deprecated Methods Removed</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id506888">Elimination of the User Settings Service</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id490940">User Secret Agents</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id478937">Settings Service Interface Changes</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id496154">Connection Object Interface Changes</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id469504">Permissions Methods Consolidation</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id485456">AddConnection Returns Object Path of New Connection</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id490040">Support for WiMAX Devices</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id507718">New Device States</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515265">New Active Connection State</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id515394">Consolidated Modem Devices</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id479874">Secret Property Flags</a></span></dt>
+<dt><span class="section"><a href="ref-migrating.html#id474466">Deprecated Methods Removed</a></span></dt>
</dl></dd>
</dl></div>
<p>
@@ -50,14 +50,14 @@
</p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id368030"></a>Architecture and D-Bus API Changes in 0.9</h2></div></div></div>
+<a name="id515244"></a>Architecture and D-Bus API Changes in 0.9</h2></div></div></div>
<p>
This section details the architectural and D-Bus API changes in
NetworkManager 0.9.
</p>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id381237"></a>Elimination of the User Settings Service</h3></div></div></div>
+<a name="id506888"></a>Elimination of the User Settings Service</h3></div></div></div>
<p>
Previously there were two "settings services", or D-Bus services that
provided and saved network configuration information. NetworkManager
@@ -103,7 +103,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id363154"></a>User Secret Agents</h3></div></div></div>
+<a name="id490940"></a>User Secret Agents</h3></div></div></div>
<p>
Even with the elimination of the user settings service, in some cases it
is still desirable to store secrets in the user's session and not in
@@ -152,7 +152,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id375692"></a>Settings Service Interface Changes</h3></div></div></div>
+<a name="id478937"></a>Settings Service Interface Changes</h3></div></div></div>
<p>
With the elimination of the user settings service, the old
<code class="literal">org.freedesktop.NetworkManagerUserSettings</code> and
@@ -188,7 +188,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id376241"></a>Connection Object Interface Changes</h3></div></div></div>
+<a name="id496154"></a>Connection Object Interface Changes</h3></div></div></div>
<p>
Consistent with the interface changes to the Settings object, the
Connection object's D-Bus interface has changed to
@@ -222,7 +222,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id390693"></a>Permissions Methods Consolidation</h3></div></div></div>
+<a name="id469504"></a>Permissions Methods Consolidation</h3></div></div></div>
<p>
Previously there were two D-Bus method calls to retrieve the list of
operations that a user client could perform, and two signals notifying
@@ -254,7 +254,7 @@
are now string-based permissions. The mapping is as follows:
</p>
<div class="table">
-<a name="id385374"></a><p class="title"><b>Table 17. </b></p>
+<a name="id502282"></a><p class="title"><b>Table 17. </b></p>
<div class="table-contents"><table border="1">
<colgroup>
<col>
@@ -305,7 +305,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id396820"></a>AddConnection Returns Object Path of New Connection</h3></div></div></div>
+<a name="id485456"></a>AddConnection Returns Object Path of New Connection</h3></div></div></div>
<p>
The <a class="ulink" href="spec.html#org.freedesktop.NetworkManager.Settings" target="_top">
<code class="literal">org.freedesktop.NetworkManager.Settings.AddConnection</code>
@@ -323,7 +323,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id353630"></a>Support for WiMAX Devices</h3></div></div></div>
+<a name="id490040"></a>Support for WiMAX Devices</h3></div></div></div>
<p>
NetworkManager now supports Intel WiMAX mobile broadband devices. A
corresponding device type (<code class="literal">NM_DEVICE_TYPE_WIMAX</code>) and
@@ -346,7 +346,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id395790"></a>New Device States</h3></div></div></div>
+<a name="id507718"></a>New Device States</h3></div></div></div>
<p>
A few <a class="ulink" href="spec.html#type-NM_DEVICE_STATE" target="_top">new device states</a>
have been added, and all device states have been renumbered for flexibility.
@@ -361,7 +361,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id364728"></a>New Active Connection State</h3></div></div></div>
+<a name="id515265"></a>New Active Connection State</h3></div></div></div>
<p>
Along with the new device states, an
<a class="ulink" href="spec.html#type-NM_ACTIVE_CONNECTION_STATE" target="_top">additional
@@ -377,7 +377,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id363573"></a>Consolidated Modem Devices</h3></div></div></div>
+<a name="id515394"></a>Consolidated Modem Devices</h3></div></div></div>
<p>
Many new mobile broadband devices support multiple access families, like
Qualcomm Gobi cards (CDMA/EVDO and GSM/UMTS), or multi-mode EVDO/LTE
@@ -413,7 +413,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id344431"></a>Secret Property Flags</h3></div></div></div>
+<a name="id479874"></a>Secret Property Flags</h3></div></div></div>
<p>
In the Connection object's configuration properties, each setting's secret
properties (like WiFi passphrases, or public key passwords, etc) now has
@@ -422,7 +422,7 @@
following values:
</p>
<div class="table">
-<a name="id344439"></a><p class="title"><b>Table 18. </b></p>
+<a name="id479882"></a><p class="title"><b>Table 18. </b></p>
<div class="table-contents"><table border="1">
<colgroup>
<col>
@@ -484,7 +484,7 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id359402"></a>Deprecated Methods Removed</h3></div></div></div>
+<a name="id474466"></a>Deprecated Methods Removed</h3></div></div></div>
<p>
A few methods and signals of the <code class="literal">org.freedesktop.NetworkManager</code>
interface deprecated in version 0.7 have been removed. All the
@@ -494,7 +494,7 @@
their replacements:
</p>
<div class="table">
-<a name="id359416"></a><p class="title"><b>Table 19. </b></p>
+<a name="id474480"></a><p class="title"><b>Table 19. </b></p>
<div class="table-contents"><table border="1">
<colgroup>
<col>
diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html
index 6f947c7d6..5db0ccd89 100644
--- a/docs/api/html/ref-settings.html
+++ b/docs/api/html/ref-settings.html
@@ -23,7 +23,7 @@
<div class="titlepage"><div><div><h2 class="title">
<a name="ref-settings"></a>Network Configuration Setting Specification</h2></div></div></div>
<div class="toc"><dl>
-<dt><span class="section"><a href="ref-settings.html#id384567">Configuration Settings</a></span></dt>
+<dt><span class="section"><a href="ref-settings.html#id499631">Configuration Settings</a></span></dt>
<dt><span class="section"><a href="secrets-flags.html">Secret flag types</a></span></dt>
</dl></div>
<p>
@@ -35,11 +35,11 @@
</p>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id384567"></a>Configuration Settings</h2></div></div></div>
+<a name="id499631"></a>Configuration Settings</h2></div></div></div>
<p>
</p>
<div class="table">
-<a name="id384575"></a><p class="title"><b>Table 1. 802-1x setting</b></p>
+<a name="id502860"></a><p class="title"><b>Table 1. 802-1x setting</b></p>
<div class="table-contents"><table summary="802-1x setting" border="1">
<colgroup>
<col>
@@ -91,6 +91,18 @@
<td>UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the 'ca-cert' property.</td>
</tr>
<tr>
+<td><pre class="screen">subject-match</pre></td>
+<td><pre class="screen">string</pre></td>
+<td><pre class="screen"></pre></td>
+<td>Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed.</td>
+</tr>
+<tr>
+<td><pre class="screen">altsubject-matches</pre></td>
+<td><pre class="screen">array of string</pre></td>
+<td><pre class="screen">[]</pre></td>
+<td>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.</td>
+</tr>
+<tr>
<td><pre class="screen">client-cert</pre></td>
<td><pre class="screen">byte array</pre></td>
<td><pre class="screen">[]</pre></td>
@@ -139,10 +151,22 @@
<td>UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the 'phase2-ca-cert' property.</td>
</tr>
<tr>
+<td><pre class="screen">phase2-subject-match</pre></td>
+<td><pre class="screen">string</pre></td>
+<td><pre class="screen"></pre></td>
+<td>Substring to be matched against the subject of the certificate presented by the authentication server during the inner 'phase2' authentication. When unset, no verification of the authentication server certificate's subject is performed.</td>
+</tr>
+<tr>
+<td><pre class="screen">phase2-altsubject-matches</pre></td>
+<td><pre class="screen">array of string</pre></td>
+<td><pre class="screen">[]</pre></td>
+<td>List of strings to be matched against List of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner 'phase 2' authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed.</td>
+</tr>
+<tr>
<td><pre class="screen">phase2-client-cert</pre></td>
<td><pre class="screen">byte array</pre></td>
<td><pre class="screen">[]</pre></td>
-<td>Contains the 'phase 2' client certificate if used by the EAP method specified in the 'phase2-eap' or 'phase2-autheap' properties. Certificate data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string 'file://' and ending with a terminating NULL byte.</td>
+<td>Contains the 'phase 2' client certificate if used by the EAP method specified in the 'phase2-auth' or 'phase2-autheap' properties. Certificate data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string 'file://' and ending with a terminating NULL byte.</td>
</tr>
<tr>
<td><pre class="screen">password</pre></td>
@@ -178,7 +202,7 @@
<td><pre class="screen">phase2-private-key</pre></td>
<td><pre class="screen">byte array</pre></td>
<td><pre class="screen">[]</pre></td>
-<td>Contains the 'phase 2' inner private key when the 'phase2-eap' or 'phase2-autheap' property is set to 'tls'. Key data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and ending with a terminating NULL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the 'phase2-private-key-password' property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and and ending with a terminating NULL byte, and as with the blob scheme the 'phase2-private-key-password' property must be set to the password used to decode the PKCS#12 private key and certificate.</td>
+<td>Contains the 'phase 2' inner private key when the 'phase2-auth' or 'phase2-autheap' property is set to 'tls'. Key data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and ending with a terminating NULL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the 'phase2-private-key-password' property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and and ending with a terminating NULL byte, and as with the blob scheme the 'phase2-private-key-password' property must be set to the password used to decode the PKCS#12 private key and certificate.</td>
</tr>
<tr>
<td><pre class="screen">phase2-private-key-password</pre></td>
@@ -204,7 +228,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id371590"></a><p class="title"><b>Table 2. bluetooth setting</b></p>
+<a name="id486852"></a><p class="title"><b>Table 2. bluetooth setting</b></p>
<div class="table-contents"><table summary="bluetooth setting" border="1">
<colgroup>
<col>
@@ -243,7 +267,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id371722"></a><p class="title"><b>Table 3. cdma setting</b></p>
+<a name="id486984"></a><p class="title"><b>Table 3. cdma setting</b></p>
<div class="table-contents"><table summary="cdma setting" border="1">
<colgroup>
<col>
@@ -294,7 +318,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id371921"></a><p class="title"><b>Table 4. connection setting</b></p>
+<a name="id487182"></a><p class="title"><b>Table 4. connection setting</b></p>
<div class="table-contents"><table summary="connection setting" border="1">
<colgroup>
<col>
@@ -363,7 +387,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id372222"></a><p class="title"><b>Table 5. gsm setting</b></p>
+<a name="id487483"></a><p class="title"><b>Table 5. gsm setting</b></p>
<div class="table-contents"><table summary="gsm setting" border="1">
<colgroup>
<col>
@@ -388,7 +412,7 @@
<td><pre class="screen">number</pre></td>
<td><pre class="screen">string</pre></td>
<td><pre class="screen"></pre></td>
-<td>Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. In most cases, leave the number blank and a number selecting the APN specified in the 'apn' property will be used automatically when required.</td>
+<td>Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.</td>
</tr>
<tr>
<td><pre class="screen">username</pre></td>
@@ -456,7 +480,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id372646"></a><p class="title"><b>Table 6. ipv4 setting</b></p>
+<a name="id487908"></a><p class="title"><b>Table 6. ipv4 setting</b></p>
<div class="table-contents"><table summary="ipv4 setting" border="1">
<colgroup>
<col>
@@ -555,7 +579,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id401548"></a><p class="title"><b>Table 7. ipv6 setting</b></p>
+<a name="id516867"></a><p class="title"><b>Table 7. ipv6 setting</b></p>
<div class="table-contents"><table summary="ipv6 setting" border="1">
<colgroup>
<col>
@@ -627,7 +651,7 @@
<tr>
<td><pre class="screen">may-fail</pre></td>
<td><pre class="screen">boolean</pre></td>
-<td><pre class="screen">FALSE</pre></td>
+<td><pre class="screen">TRUE</pre></td>
<td>If TRUE, allow overall network configuration to proceed even if IPv6 configuration times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv4-only networks, setting this property to TRUE allows the overall network configuration to succeed if IPv6 configuration fails but IPv4 configuration completes successfully.</td>
</tr>
</tbody>
@@ -636,7 +660,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id401866"></a><p class="title"><b>Table 8. 802-11-olpc-mesh setting</b></p>
+<a name="id517185"></a><p class="title"><b>Table 8. 802-11-olpc-mesh setting</b></p>
<div class="table-contents"><table summary="802-11-olpc-mesh setting" border="1">
<colgroup>
<col>
@@ -681,7 +705,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id402005"></a><p class="title"><b>Table 9. ppp setting</b></p>
+<a name="id517323"></a><p class="title"><b>Table 9. ppp setting</b></p>
<div class="table-contents"><table summary="ppp setting" border="1">
<colgroup>
<col>
@@ -816,7 +840,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id402535"></a><p class="title"><b>Table 10. pppoe setting</b></p>
+<a name="id517853"></a><p class="title"><b>Table 10. pppoe setting</b></p>
<div class="table-contents"><table summary="pppoe setting" border="1">
<colgroup>
<col>
@@ -867,7 +891,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id402700"></a><p class="title"><b>Table 11. serial setting</b></p>
+<a name="id518018"></a><p class="title"><b>Table 11. serial setting</b></p>
<div class="table-contents"><table summary="serial setting" border="1">
<colgroup>
<col>
@@ -924,7 +948,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id402891"></a><p class="title"><b>Table 12. vpn setting</b></p>
+<a name="id518231"></a><p class="title"><b>Table 12. vpn setting</b></p>
<div class="table-contents"><table summary="vpn setting" border="1">
<colgroup>
<col>
@@ -955,7 +979,7 @@
<td><pre class="screen">user-name</pre></td>
<td><pre class="screen">string</pre></td>
<td><pre class="screen"></pre></td>
-<td>User name of the currently logged in user for connections provided by the user settings service. This name is provided to the VPN plugin to use in lieu of a custom username provided by that VPN plugins specific configuration. The VPN plugin itself decides which user name to use.</td>
+<td>If the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.</td>
</tr>
<tr>
<td><pre class="screen">data</pre></td>
@@ -975,7 +999,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id403056"></a><p class="title"><b>Table 13. wimax setting</b></p>
+<a name="id518437"></a><p class="title"><b>Table 13. wimax setting</b></p>
<div class="table-contents"><table summary="wimax setting" border="1">
<colgroup>
<col>
@@ -1014,7 +1038,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id403181"></a><p class="title"><b>Table 14. 802-3-ethernet setting</b></p>
+<a name="id518575"></a><p class="title"><b>Table 14. 802-3-ethernet setting</b></p>
<div class="table-contents"><table summary="802-3-ethernet setting" border="1">
<colgroup>
<col>
@@ -1072,6 +1096,12 @@
<td>If specified, request that the device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing.</td>
</tr>
<tr>
+<td><pre class="screen">mac-address-blacklist</pre></td>
+<td><pre class="screen">array of string</pre></td>
+<td><pre class="screen">[]</pre></td>
+<td>If specified, this connection will never apply to the ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).</td>
+</tr>
+<tr>
<td><pre class="screen">mtu</pre></td>
<td><pre class="screen">uint32</pre></td>
<td><pre class="screen">0</pre></td>
@@ -1079,7 +1109,7 @@
</tr>
<tr>
<td><pre class="screen">s390-subchannels</pre></td>
-<td><pre class="screen">GPtrArray_gchararray_</pre></td>
+<td><pre class="screen">array of string</pre></td>
<td><pre class="screen">[]</pre></td>
<td>Identifies specific subchannels that this network device uses for communcation with z/VM or s390 host. Like the 'mac-address' property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.</td>
</tr>
@@ -1101,7 +1131,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id403587"></a><p class="title"><b>Table 15. 802-11-wireless setting</b></p>
+<a name="id519016"></a><p class="title"><b>Table 15. 802-11-wireless setting</b></p>
<div class="table-contents"><table summary="802-11-wireless setting" border="1">
<colgroup>
<col>
@@ -1177,6 +1207,12 @@
<td>If specified, request that the WiFi device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing.</td>
</tr>
<tr>
+<td><pre class="screen">mac-address-blacklist</pre></td>
+<td><pre class="screen">array of string</pre></td>
+<td><pre class="screen">[]</pre></td>
+<td>If specified, this connection will never apply to the WiFi device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).</td>
+</tr>
+<tr>
<td><pre class="screen">mtu</pre></td>
<td><pre class="screen">uint32</pre></td>
<td><pre class="screen">0</pre></td>
@@ -1186,7 +1222,7 @@
<td><pre class="screen">seen-bssids</pre></td>
<td><pre class="screen">array of string</pre></td>
<td><pre class="screen">[]</pre></td>
-<td>A list of BSSIDs (each BSSID formatted as a MAC address like '00:11:22:33:44:55') that have been detected as part of the WiFI network. The settings service will usually populate this property by periodically asking NetworkManager what the device's current AP is while connected to the network (or monitoring the device's 'active-ap' property) and adding the current AP's BSSID to this list. This list helps NetworkManager find hidden APs by matching up scan results with the BSSIDs in this list.</td>
+<td>A list of BSSIDs (each BSSID formatted as a MAC address like 00:11:22:33:44:55') that have been detected as part of the WiFI network. NetworkManager internally tracks previously seen BSSIDs so this property is no longer of much use.</td>
</tr>
<tr>
<td><pre class="screen">security</pre></td>
@@ -1200,7 +1236,7 @@
<p><br class="table-break">
</p>
<div class="table">
-<a name="id404064"></a><p class="title"><b>Table 16. 802-11-wireless-security setting</b></p>
+<a name="id519524"></a><p class="title"><b>Table 16. 802-11-wireless-security setting</b></p>
<div class="table-contents"><table summary="802-11-wireless-security setting" border="1">
<colgroup>
<col>
diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html
index 4533e7863..c8abf6ca3 100644
--- a/docs/api/html/spec.html
+++ b/docs/api/html/spec.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9</title><style type="text/css">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.0</title><style type="text/css">
body {
font-family: sans-serif;
@@ -98,7 +98,7 @@
margin-right: 4em;
}
- </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license">
+ </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.0</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license">
<p>This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml
index 6be79b151..fd320b638 100644
--- a/docs/api/settings-spec.xml
+++ b/docs/api/settings-spec.xml
@@ -53,6 +53,18 @@
<entry>UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the 'ca-cert' property.</entry>
</row>
<row>
+ <entry><screen>subject-match</screen></entry>
+ <entry><screen>string</screen></entry>
+ <entry><screen></screen></entry>
+ <entry>Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed.</entry>
+ </row>
+ <row>
+ <entry><screen>altsubject-matches</screen></entry>
+ <entry><screen>array of string</screen></entry>
+ <entry><screen>[]</screen></entry>
+ <entry>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.</entry>
+ </row>
+ <row>
<entry><screen>client-cert</screen></entry>
<entry><screen>byte array</screen></entry>
<entry><screen>[]</screen></entry>
@@ -101,10 +113,22 @@
<entry>UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the 'phase2-ca-cert' property.</entry>
</row>
<row>
+ <entry><screen>phase2-subject-match</screen></entry>
+ <entry><screen>string</screen></entry>
+ <entry><screen></screen></entry>
+ <entry>Substring to be matched against the subject of the certificate presented by the authentication server during the inner 'phase2' authentication. When unset, no verification of the authentication server certificate's subject is performed.</entry>
+ </row>
+ <row>
+ <entry><screen>phase2-altsubject-matches</screen></entry>
+ <entry><screen>array of string</screen></entry>
+ <entry><screen>[]</screen></entry>
+ <entry>List of strings to be matched against List of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner 'phase 2' authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed.</entry>
+ </row>
+ <row>
<entry><screen>phase2-client-cert</screen></entry>
<entry><screen>byte array</screen></entry>
<entry><screen>[]</screen></entry>
- <entry>Contains the 'phase 2' client certificate if used by the EAP method specified in the 'phase2-eap' or 'phase2-autheap' properties. Certificate data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string 'file://' and ending with a terminating NULL byte.</entry>
+ <entry>Contains the 'phase 2' client certificate if used by the EAP method specified in the 'phase2-auth' or 'phase2-autheap' properties. Certificate data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme (which is backwards compatible with NM 0.7.x) this property should be set to the certificate's DER encoded data. When using the path scheme, this property should be set to the full UTF-8 encoded path of the certificate, prefixed with the string 'file://' and ending with a terminating NULL byte.</entry>
</row>
<row>
<entry><screen>password</screen></entry>
@@ -140,7 +164,7 @@
<entry><screen>phase2-private-key</screen></entry>
<entry><screen>byte array</screen></entry>
<entry><screen>[]</screen></entry>
- <entry>Contains the 'phase 2' inner private key when the 'phase2-eap' or 'phase2-autheap' property is set to 'tls'. Key data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and ending with a terminating NULL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the 'phase2-private-key-password' property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and and ending with a terminating NULL byte, and as with the blob scheme the 'phase2-private-key-password' property must be set to the password used to decode the PKCS#12 private key and certificate.</entry>
+ <entry>Contains the 'phase 2' inner private key when the 'phase2-auth' or 'phase2-autheap' property is set to 'tls'. Key data is specified using a 'scheme'; two are currently supported: blob and path. When using the blob scheme and private keys, this property should be set to the key's encrypted PEM encoded data. When using private keys with the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and ending with a terminating NULL byte. When using PKCS#12 format private keys and the blob scheme, this property should be set to the PKCS#12 data and the 'phase2-private-key-password' property must be set to password used to decrypt the PKCS#12 certificate and key. When using PKCS#12 files and the path scheme, this property should be set to the full UTF-8 encoded path of the key, prefixed with the string 'file://' and and ending with a terminating NULL byte, and as with the blob scheme the 'phase2-private-key-password' property must be set to the password used to decode the PKCS#12 private key and certificate.</entry>
</row>
<row>
<entry><screen>phase2-private-key-password</screen></entry>
@@ -326,7 +350,7 @@
<entry><screen>number</screen></entry>
<entry><screen>string</screen></entry>
<entry><screen></screen></entry>
- <entry>Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. In most cases, leave the number blank and a number selecting the APN specified in the 'apn' property will be used automatically when required.</entry>
+ <entry>Number to dial when establishing a PPP data session with the GSM-based mobile broadband network. Many modems do not require PPP for connections to the mobile network and thus this property should be left blank, which allows NetworkManager to select the appropriate settings automatically.</entry>
</row>
<row>
<entry><screen>username</screen></entry>
@@ -553,7 +577,7 @@
<row>
<entry><screen>may-fail</screen></entry>
<entry><screen>boolean</screen></entry>
- <entry><screen>FALSE</screen></entry>
+ <entry><screen>TRUE</screen></entry>
<entry>If TRUE, allow overall network configuration to proceed even if IPv6 configuration times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv4-only networks, setting this property to TRUE allows the overall network configuration to succeed if IPv6 configuration fails but IPv4 configuration completes successfully.</entry>
</row>
</tbody>
@@ -851,7 +875,7 @@
<entry><screen>user-name</screen></entry>
<entry><screen>string</screen></entry>
<entry><screen></screen></entry>
- <entry>User name of the currently logged in user for connections provided by the user settings service. This name is provided to the VPN plugin to use in lieu of a custom username provided by that VPN plugins specific configuration. The VPN plugin itself decides which user name to use.</entry>
+ <entry>If the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.</entry>
</row>
<row>
<entry><screen>data</screen></entry>
@@ -956,6 +980,12 @@
<entry>If specified, request that the device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing.</entry>
</row>
<row>
+ <entry><screen>mac-address-blacklist</screen></entry>
+ <entry><screen>array of string</screen></entry>
+ <entry><screen>[]</screen></entry>
+ <entry>If specified, this connection will never apply to the ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).</entry>
+ </row>
+ <row>
<entry><screen>mtu</screen></entry>
<entry><screen>uint32</screen></entry>
<entry><screen>0</screen></entry>
@@ -963,7 +993,7 @@
</row>
<row>
<entry><screen>s390-subchannels</screen></entry>
- <entry><screen>GPtrArray_gchararray_</screen></entry>
+ <entry><screen>array of string</screen></entry>
<entry><screen>[]</screen></entry>
<entry>Identifies specific subchannels that this network device uses for communcation with z/VM or s390 host. Like the 'mac-address' property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device that uses these subchannels. The list should contain exactly 3 strings, and each string may only be composed of hexadecimal characters and the period (.) character.</entry>
</row>
@@ -1055,6 +1085,12 @@
<entry>If specified, request that the WiFi device use this MAC address instead of its permanent MAC address. This is known as MAC cloning or spoofing.</entry>
</row>
<row>
+ <entry><screen>mac-address-blacklist</screen></entry>
+ <entry><screen>array of string</screen></entry>
+ <entry><screen>[]</screen></entry>
+ <entry>If specified, this connection will never apply to the WiFi device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55).</entry>
+ </row>
+ <row>
<entry><screen>mtu</screen></entry>
<entry><screen>uint32</screen></entry>
<entry><screen>0</screen></entry>
@@ -1064,7 +1100,7 @@
<entry><screen>seen-bssids</screen></entry>
<entry><screen>array of string</screen></entry>
<entry><screen>[]</screen></entry>
- <entry>A list of BSSIDs (each BSSID formatted as a MAC address like '00:11:22:33:44:55') that have been detected as part of the WiFI network. The settings service will usually populate this property by periodically asking NetworkManager what the device's current AP is while connected to the network (or monitoring the device's 'active-ap' property) and adding the current AP's BSSID to this list. This list helps NetworkManager find hidden APs by matching up scan results with the BSSIDs in this list.</entry>
+ <entry>A list of BSSIDs (each BSSID formatted as a MAC address like 00:11:22:33:44:55') that have been detected as part of the WiFI network. NetworkManager internally tracks previously seen BSSIDs so this property is no longer of much use.</entry>
</row>
<row>
<entry><screen>security</screen></entry>
diff --git a/docs/api/spec.html b/docs/api/spec.html
index 4533e7863..c8abf6ca3 100644
--- a/docs/api/spec.html
+++ b/docs/api/spec.html
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9</title><style type="text/css">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ascii" /><title>NetworkManager D-Bus Interface Specification version 0.9.0</title><style type="text/css">
body {
font-family: sans-serif;
@@ -98,7 +98,7 @@
margin-right: 4em;
}
- </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license">
+ </style></head><body><h1 class="topbox">NetworkManager D-Bus Interface Specification</h1><h2>Version 0.9.0</h2><div>Copyright (C) 2008 - 2011 Red Hat, Inc.</div><div>Copyright (C) 2008 - 2009 Novell, Inc.</div><div class="license">
<p>This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
diff --git a/docs/api/version.xml b/docs/api/version.xml
index 020982195..ac39a106c 100644
--- a/docs/api/version.xml
+++ b/docs/api/version.xml
@@ -1 +1 @@
-0.8.9997
+0.9.0
diff --git a/docs/libnm-glib/html/NMClient.html b/docs/libnm-glib/html/NMClient.html
index 26d99de00..48fe024f4 100644
--- a/docs/libnm-glib/html/NMClient.html
+++ b/docs/libnm-glib/html/NMClient.html
@@ -62,6 +62,8 @@ enum <a class="link" href="NMClient.html#NMClientPermissionResult
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * <a class="link" href="NMClient.html#nm-client-get-devices" title="nm_client_get_devices ()">nm_client_get_devices</a> (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>);
<a class="link" href="NMDevice.html" title="NMDevice"><span class="returnvalue">NMDevice</span></a> * <a class="link" href="NMClient.html#nm-client-get-device-by-path" title="nm_client_get_device_by_path ()">nm_client_get_device_by_path</a> (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *object_path</code></em>);
+<a class="link" href="NMDevice.html" title="NMDevice"><span class="returnvalue">NMDevice</span></a> * <a class="link" href="NMClient.html#nm-client-get-device-by-iface" title="nm_client_get_device_by_iface ()">nm_client_get_device_by_iface</a> (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *iface</code></em>);
<span class="returnvalue">void</span> (<a class="link" href="NMClient.html#NMClientActivateFn" title="NMClientActivateFn ()">*NMClientActivateFn</a>) (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *active_connection</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
@@ -370,7 +372,35 @@ Gets a <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> for the given <em class="parameter"><code>object_path</code></em> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> for the given <em class="parameter"><code>object_path</code></em> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-client-get-device-by-iface"></a><h3>nm_client_get_device_by_iface ()</h3>
+<pre class="programlisting"><a class="link" href="NMDevice.html" title="NMDevice"><span class="returnvalue">NMDevice</span></a> * nm_client_get_device_by_iface (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *iface</code></em>);</pre>
+<p>
+Gets a <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> from a <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client</code></em> :</span></p></td>
+<td>a <a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>iface</code></em> :</span></p></td>
+<td>the interface name to search for</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> for the given <em class="parameter"><code>iface</code></em> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
diff --git a/docs/libnm-glib/html/NMDevice.html b/docs/libnm-glib/html/NMDevice.html
index f7f01aa2a..2b01b135b 100644
--- a/docs/libnm-glib/html/NMDevice.html
+++ b/docs/libnm-glib/html/NMDevice.html
@@ -530,7 +530,7 @@ Gets the current <a class="link" href="NMIP4Config.html" title="NMIP4Config"><sp
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="type">NMIP4Config</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="type">NMIP4Config</span></a> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -553,7 +553,7 @@ Gets the current <a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config"
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <span class="type">NMDHCPConfig</span> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated or not
+<td>the <span class="type">NMDHCPConfig</span> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated or not
using DHCP. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
@@ -577,7 +577,7 @@ Gets the current <a class="link" href="NMIP6Config.html" title="NMIP6Config"><sp
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="NMIP6Config.html" title="NMIP6Config"><span class="type">NMIP6Config</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the <a class="link" href="NMIP6Config.html" title="NMIP6Config"><span class="type">NMIP6Config</span></a> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -600,7 +600,7 @@ Gets the current <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config"
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <span class="type">NMDHCPConfig</span> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated or not
+<td>the <span class="type">NMDHCPConfig</span> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is not activated or not
using DHCP. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
@@ -646,7 +646,8 @@ Gets the <a class="link" href="NMActiveConnection.html" title="NMActiveConnectio
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>
+<td>the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device is
+not part of an active connection. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
diff --git a/docs/libnm-glib/html/NMDeviceWifi.html b/docs/libnm-glib/html/NMDeviceWifi.html
index e7ddf0a94..b107ad45d 100644
--- a/docs/libnm-glib/html/NMDeviceWifi.html
+++ b/docs/libnm-glib/html/NMDeviceWifi.html
@@ -339,7 +339,7 @@ Gets the active <a class="link" href="NMAccessPoint.html" title="NMAccessPoint">
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the access point or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is active. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the access point or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is active. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -368,7 +368,7 @@ Gets a <a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span cla
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the access point or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the access point or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
diff --git a/docs/libnm-glib/html/NMDeviceWimax.html b/docs/libnm-glib/html/NMDeviceWimax.html
index a9b65251a..e24928d71 100644
--- a/docs/libnm-glib/html/NMDeviceWimax.html
+++ b/docs/libnm-glib/html/NMDeviceWimax.html
@@ -246,7 +246,7 @@ Gets the active <a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp"><span
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the access point or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is active. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>the access point or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is active. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
</td>
</tr>
</tbody>
@@ -274,7 +274,7 @@ Gets a <a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp"><span class="ty
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the access point or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>the access point or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
diff --git a/docs/libnm-glib/html/NMRemoteConnection.html b/docs/libnm-glib/html/NMRemoteConnection.html
index 8be508bee..87aaf32b1 100644
--- a/docs/libnm-glib/html/NMRemoteConnection.html
+++ b/docs/libnm-glib/html/NMRemoteConnection.html
@@ -196,7 +196,7 @@ Creates a new object representing the remote connection.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new remote connection object on success, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure</td>
+<td>the new remote connection object on success, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure</td>
</tr>
</tbody>
</table></div>
diff --git a/docs/libnm-glib/html/NMRemoteSettings.html b/docs/libnm-glib/html/NMRemoteSettings.html
index 4274c72a9..0457a5673 100644
--- a/docs/libnm-glib/html/NMRemoteSettings.html
+++ b/docs/libnm-glib/html/NMRemoteSettings.html
@@ -300,7 +300,7 @@ Creates a new object representing the remote settings service.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the new remote settings object on success, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure</td>
+<td>the new remote settings object on success, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure</td>
</tr>
</tbody>
</table></div>
diff --git a/docs/libnm-glib/html/api-index-full.html b/docs/libnm-glib/html/api-index-full.html
index 311e89966..adba6f393 100644
--- a/docs/libnm-glib/html/api-index-full.html
+++ b/docs/libnm-glib/html/api-index-full.html
@@ -388,6 +388,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMClient.html#nm-client-get-device-by-iface" title="nm_client_get_device_by_iface ()">nm_client_get_device_by_iface</a>, function in <a class="link" href="NMClient.html" title="NMClient">NMClient</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMClient.html#nm-client-get-device-by-path" title="nm_client_get_device_by_path ()">nm_client_get_device_by_path</a>, function in <a class="link" href="NMClient.html" title="NMClient">NMClient</a>
</dt>
<dd></dd>
@@ -1925,11 +1929,11 @@ g_marshal_value_peek_variant, macro in nm-secret-agent-glue
</dt>
<dd></dd>
<dt>
-nm_vpn_plugin_utils_get_secret_flags, function in nm-vpn-plugin-utils
+<a class="link" href="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags" title="nm_vpn_plugin_utils_get_secret_flags ()">nm_vpn_plugin_utils_get_secret_flags</a>, function in <a class="link" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">nm-vpn-plugin-utils</a>
</dt>
<dd></dd>
<dt>
-nm_vpn_plugin_utils_read_vpn_details, function in nm-vpn-plugin-utils
+<a class="link" href="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details" title="nm_vpn_plugin_utils_read_vpn_details ()">nm_vpn_plugin_utils_read_vpn_details</a>, function in <a class="link" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">nm-vpn-plugin-utils</a>
</dt>
<dd></dd>
<a name="idxW"></a><h3 class="title">W</h3>
diff --git a/docs/libnm-glib/html/ch02.html b/docs/libnm-glib/html/ch02.html
index bfc170070..4aa9ceee7 100644
--- a/docs/libnm-glib/html/ch02.html
+++ b/docs/libnm-glib/html/ch02.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id340247"></a>libnm-glib API Reference</h2></div></div></div>
+<a name="id446675"></a>libnm-glib API Reference</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="NMClient.html">NMClient</a></span><span class="refpurpose"></span>
@@ -89,6 +89,9 @@
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">NMVpnPluginUi</a></span><span class="refpurpose"></span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="libnm-glib-nm-vpn-plugin-utils.html">nm-vpn-plugin-utils</a></span><span class="refpurpose"></span>
+</dt>
</dl></div>
</div>
<div class="footer">
diff --git a/docs/libnm-glib/html/index.html b/docs/libnm-glib/html/index.html
index 665edd03a..10f59ff83 100644
--- a/docs/libnm-glib/html/index.html
+++ b/docs/libnm-glib/html/index.html
@@ -29,7 +29,7 @@
</p></div>
<div><p class="copyright">Copyright © 2011 The NetworkManager Authors</p></div>
<div><div class="legalnotice">
-<a name="id310650"></a><p>
+<a name="id417078"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.1 or any later
@@ -130,6 +130,9 @@
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">NMVpnPluginUi</a></span><span class="refpurpose"></span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="libnm-glib-nm-vpn-plugin-utils.html">nm-vpn-plugin-utils</a></span><span class="refpurpose"></span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="object-tree.html">Object Hierarchy</a></span></dt>
<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
diff --git a/docs/libnm-glib/html/index.sgml b/docs/libnm-glib/html/index.sgml
index db6d2d8af..b12be4b26 100644
--- a/docs/libnm-glib/html/index.sgml
+++ b/docs/libnm-glib/html/index.sgml
@@ -24,6 +24,7 @@
<ANCHOR id="nm-client-new" href="libnm-glib/NMClient.html#nm-client-new">
<ANCHOR id="nm-client-get-devices" href="libnm-glib/NMClient.html#nm-client-get-devices">
<ANCHOR id="nm-client-get-device-by-path" href="libnm-glib/NMClient.html#nm-client-get-device-by-path">
+<ANCHOR id="nm-client-get-device-by-iface" href="libnm-glib/NMClient.html#nm-client-get-device-by-iface">
<ANCHOR id="NMClientActivateFn" href="libnm-glib/NMClient.html#NMClientActivateFn">
<ANCHOR id="nm-client-activate-connection" href="libnm-glib/NMClient.html#nm-client-activate-connection">
<ANCHOR id="NMClientAddActivateFn" href="libnm-glib/NMClient.html#NMClientAddActivateFn">
@@ -622,6 +623,12 @@
<ANCHOR id="nm-vpn-plugin-ui-widget-interface-get-widget" href="libnm-glib/libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-get-widget">
<ANCHOR id="nm-vpn-plugin-ui-widget-interface-update-connection" href="libnm-glib/libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-update-connection">
<ANCHOR id="nm-vpn-plugin-ui-widget-interface-save-secrets" href="libnm-glib/libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-save-secrets">
+<ANCHOR id="libnm-glib-nm-vpn-plugin-utils" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html">
+<ANCHOR id="libnm-glib-nm-vpn-plugin-utils.synopsis" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html#libnm-glib-nm-vpn-plugin-utils.synopsis">
+<ANCHOR id="libnm-glib-nm-vpn-plugin-utils.description" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html#libnm-glib-nm-vpn-plugin-utils.description">
+<ANCHOR id="libnm-glib-nm-vpn-plugin-utils.details" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html#libnm-glib-nm-vpn-plugin-utils.details">
+<ANCHOR id="nm-vpn-plugin-utils-read-vpn-details" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details">
+<ANCHOR id="nm-vpn-plugin-utils-get-secret-flags" href="libnm-glib/libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags">
<ANCHOR id="annotation-glossterm-out" href="libnm-glib/annotation-glossary.html#annotation-glossterm-out">
<ANCHOR id="annotation-glossterm-scope async" href="libnm-glib/annotation-glossary.html#annotation-glossterm-scope async">
<ANCHOR id="annotation-glossterm-allow-none" href="libnm-glib/annotation-glossary.html#annotation-glossterm-allow-none">
diff --git a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
index 834996c20..468382ce0 100644
--- a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
+++ b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch02.html" title="libnm-glib API Reference">
<link rel="prev" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
-<link rel="next" href="object-tree.html" title="Object Hierarchy">
+<link rel="next" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libnm-glib Reference Manual</th>
-<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="libnm-glib-nm-vpn-plugin-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libnm-glib-NMVpnPluginUi.synopsis" class="shortcut">Top</a>
@@ -212,11 +212,7 @@ struct <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
*/
char * (*get_suggested_name) (NMVpnPluginUiInterface *iface, NMConnection *connection);
- /* Called when the user has chosen to remove the connection (for user
- * connections only; system connections are handled by the system
- * settings service). Should clear out any VPN-specific secrets or data
- * related to the connection.
- */
+ /* Deprecated and no longer used */
gboolean (*delete_connection) (NMVpnPluginUiInterface *iface, NMConnection *connection, GError **error);
/* Padding for future expansion */
@@ -339,11 +335,7 @@ struct <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
NMConnection *connection,
GError **error);
- /* Called when the user has chosen to save the connection (for user
- * connections only; system connections are handled by the system
- * settings service). Should save VPN-specific connection secrets in
- * a way that the auth-dialog can read them.
- */
+ /* Deprecated and no longer used */
gboolean (*save_secrets) (NMVpnPluginUiWidgetInterface *iface,
NMConnection *connection,
GError **error);
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
new file mode 100644
index 000000000..164576fb3
--- /dev/null
+++ b/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>nm-vpn-plugin-utils</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libnm-glib Reference Manual">
+<link rel="up" href="ch02.html" title="libnm-glib API Reference">
+<link rel="prev" href="libnm-glib-NMVpnPluginUi.html" title="NMVpnPluginUi">
+<link rel="next" href="object-tree.html" title="Object Hierarchy">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libnm-glib-NMVpnPluginUi.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libnm-glib Reference Manual</th>
+<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libnm-glib-nm-vpn-plugin-utils.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libnm-glib-nm-vpn-plugin-utils.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libnm-glib-nm-vpn-plugin-utils"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libnm-glib-nm-vpn-plugin-utils.top_of_page"></a>nm-vpn-plugin-utils</span></h2>
+<p>nm-vpn-plugin-utils</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libnm-glib-nm-vpn-plugin-utils.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details" title="nm_vpn_plugin_utils_read_vpn_details ()">nm_vpn_plugin_utils_read_vpn_details</a>
+ (<em class="parameter"><code><span class="type">int</span> fd</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> **out_data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> **out_secrets</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags" title="nm_vpn_plugin_utils_get_secret_flags ()">nm_vpn_plugin_utils_get_secret_flags</a>
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *secret_name</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> *out_flags</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libnm-glib-nm-vpn-plugin-utils.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="libnm-glib-nm-vpn-plugin-utils.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="nm-vpn-plugin-utils-read-vpn-details"></a><h3>nm_vpn_plugin_utils_read_vpn_details ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_vpn_plugin_utils_read_vpn_details
+ (<em class="parameter"><code><span class="type">int</span> fd</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> **out_data</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> **out_secrets</code></em>);</pre>
+<p>
+Parses key/value pairs from a file descriptor (normally stdin) passed by
+an applet when the applet calls the authentication dialog of the VPN plugin.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
+<td>file descriptor to read from, usually stdin (0)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out_data</code></em> :</span></p></td>
+<td>on successful return, a hash table
+(mapping char*:char*) containing the key/value pairs of VPN data items. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out_secrets</code></em> :</span></p></td>
+<td>on successful return, a hash table
+(mapping char*:char*) containing the key/value pairsof VPN secrets. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if reading values was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-vpn-plugin-utils-get-secret-flags"></a><h3>nm_vpn_plugin_utils_get_secret_flags ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_vpn_plugin_utils_get_secret_flags
+ (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *secret_name</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> *out_flags</code></em>);</pre>
+<p>
+Given a VPN secret key name, attempts to find the corresponding flags data
+item in <em class="parameter"><code>data</code></em>. If found, converts the flags data item to
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/09/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> and returns it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>hash table containing VPN key/value pair data items</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>secret_name</code></em> :</span></p></td>
+<td>VPN secret key name for which to retrieve flags for</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out_flags</code></em> :</span></p></td>
+<td>on success, the flags associated with <em class="parameter"><code>secret_name</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the flag data item was found and successfully converted
+to flags, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.17</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib.devhelp b/docs/libnm-glib/html/libnm-glib.devhelp
index cd1d08574..54edc1f6f 100644
--- a/docs/libnm-glib/html/libnm-glib.devhelp
+++ b/docs/libnm-glib/html/libnm-glib.devhelp
@@ -26,6 +26,7 @@
<sub name="NMVPNConnection" link="NMVPNConnection.html"/>
<sub name="NMVPNPlugin" link="libnm-glib-NMVPNPlugin.html"/>
<sub name="NMVpnPluginUi" link="libnm-glib-NMVpnPluginUi.html"/>
+ <sub name="nm-vpn-plugin-utils" link="libnm-glib-nm-vpn-plugin-utils.html"/>
</sub>
<sub name="Object Hierarchy" link="object-tree.html"/>
<sub name="API Index" link="api-index-full.html"/>
@@ -50,6 +51,7 @@
<function name="nm_client_new ()" link="NMClient.html#nm-client-new"/>
<function name="nm_client_get_devices ()" link="NMClient.html#nm-client-get-devices"/>
<function name="nm_client_get_device_by_path ()" link="NMClient.html#nm-client-get-device-by-path"/>
+ <function name="nm_client_get_device_by_iface ()" link="NMClient.html#nm-client-get-device-by-iface"/>
<function name="NMClientActivateFn ()" link="NMClient.html#NMClientActivateFn"/>
<function name="nm_client_activate_connection ()" link="NMClient.html#nm-client-activate-connection"/>
<function name="NMClientAddActivateFn ()" link="NMClient.html#NMClientAddActivateFn"/>
@@ -488,5 +490,7 @@
<function name="nm_vpn_plugin_ui_widget_interface_get_widget ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-get-widget"/>
<function name="nm_vpn_plugin_ui_widget_interface_update_connection ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-update-connection"/>
<function name="nm_vpn_plugin_ui_widget_interface_save_secrets ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-save-secrets"/>
+ <function name="nm_vpn_plugin_utils_read_vpn_details ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details"/>
+ <function name="nm_vpn_plugin_utils_get_secret_flags ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags"/>
</functions>
</book>
diff --git a/docs/libnm-glib/html/libnm-glib.devhelp2 b/docs/libnm-glib/html/libnm-glib.devhelp2
index a74fd6879..866602d81 100644
--- a/docs/libnm-glib/html/libnm-glib.devhelp2
+++ b/docs/libnm-glib/html/libnm-glib.devhelp2
@@ -26,6 +26,7 @@
<sub name="NMVPNConnection" link="NMVPNConnection.html"/>
<sub name="NMVPNPlugin" link="libnm-glib-NMVPNPlugin.html"/>
<sub name="NMVpnPluginUi" link="libnm-glib-NMVpnPluginUi.html"/>
+ <sub name="nm-vpn-plugin-utils" link="libnm-glib-nm-vpn-plugin-utils.html"/>
</sub>
<sub name="Object Hierarchy" link="object-tree.html"/>
<sub name="API Index" link="api-index-full.html"/>
@@ -50,6 +51,7 @@
<keyword type="function" name="nm_client_new ()" link="NMClient.html#nm-client-new"/>
<keyword type="function" name="nm_client_get_devices ()" link="NMClient.html#nm-client-get-devices"/>
<keyword type="function" name="nm_client_get_device_by_path ()" link="NMClient.html#nm-client-get-device-by-path"/>
+ <keyword type="function" name="nm_client_get_device_by_iface ()" link="NMClient.html#nm-client-get-device-by-iface"/>
<keyword type="function" name="NMClientActivateFn ()" link="NMClient.html#NMClientActivateFn"/>
<keyword type="function" name="nm_client_activate_connection ()" link="NMClient.html#nm-client-activate-connection"/>
<keyword type="function" name="NMClientAddActivateFn ()" link="NMClient.html#NMClientAddActivateFn"/>
@@ -488,6 +490,8 @@
<keyword type="function" name="nm_vpn_plugin_ui_widget_interface_get_widget ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-get-widget"/>
<keyword type="function" name="nm_vpn_plugin_ui_widget_interface_update_connection ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-update-connection"/>
<keyword type="function" name="nm_vpn_plugin_ui_widget_interface_save_secrets ()" link="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-save-secrets"/>
+ <keyword type="function" name="nm_vpn_plugin_utils_read_vpn_details ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-read-vpn-details"/>
+ <keyword type="function" name="nm_vpn_plugin_utils_get_secret_flags ()" link="libnm-glib-nm-vpn-plugin-utils.html#nm-vpn-plugin-utils-get-secret-flags"/>
<keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_UNKNOWN" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_CONNECTION_REMOVED" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-CONNECTION-REMOVED:CAPS"/>
<keyword type="constant" name="NM_REMOTE_SETTINGS_ERROR_CONNECTION_UNAVAILABLE" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-ERROR-CONNECTION-UNAVAILABLE:CAPS"/>
diff --git a/docs/libnm-glib/html/object-tree.html b/docs/libnm-glib/html/object-tree.html
index 6bcd8f422..db0f954be 100644
--- a/docs/libnm-glib/html/object-tree.html
+++ b/docs/libnm-glib/html/object-tree.html
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="index.html" title="libnm-glib Reference Manual">
-<link rel="prev" href="libnm-glib-NMVpnPluginUi.html" title="NMVpnPluginUi">
+<link rel="prev" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">
<link rel="next" href="api-index-full.html" title="API Index">
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="libnm-glib-NMVpnPluginUi.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="libnm-glib-nm-vpn-plugin-utils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libnm-glib Reference Manual</th>
diff --git a/docs/libnm-glib/libnm-glib-docs.xml b/docs/libnm-glib/libnm-glib-docs.xml
index 533010e15..92dad87cc 100644
--- a/docs/libnm-glib/libnm-glib-docs.xml
+++ b/docs/libnm-glib/libnm-glib-docs.xml
@@ -102,6 +102,7 @@
<xi:include href="xml/nm-vpn-connection.xml"/>
<xi:include href="xml/nm-vpn-plugin.xml"/>
<xi:include href="xml/nm-vpn-plugin-ui-interface.xml"/>
+ <xi:include href="xml/nm-vpn-plugin-utils.xml"/>
</chapter>
<chapter id="object-tree">
diff --git a/docs/libnm-glib/libnm-glib-sections.txt b/docs/libnm-glib/libnm-glib-sections.txt
index 90733f9b2..b4475d2ff 100644
--- a/docs/libnm-glib/libnm-glib-sections.txt
+++ b/docs/libnm-glib/libnm-glib-sections.txt
@@ -530,6 +530,7 @@ NMClientClass
nm_client_new
nm_client_get_devices
nm_client_get_device_by_path
+nm_client_get_device_by_iface
NMClientActivateFn
nm_client_activate_connection
NMClientAddActivateFn
diff --git a/docs/libnm-util/html/NMConnection.html b/docs/libnm-util/html/NMConnection.html
index 489a2fd63..c700c0d9b 100644
--- a/docs/libnm-util/html/NMConnection.html
+++ b/docs/libnm-util/html/NMConnection.html
@@ -84,7 +84,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMCon
<span class="returnvalue">void</span> <a class="link" href="NMConnection.html#nm-connection-clear-secrets" title="nm_connection_clear_secrets ()">nm_connection_clear_secrets</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMConnection.html#nm-connection-update-secrets" title="nm_connection_update_secrets ()">nm_connection_update_secrets</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *setting_secrets</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *secrets</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMConnection.html#nm-connection-set-path" title="nm_connection_set_path ()">nm_connection_set_path</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
@@ -123,7 +123,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMCon
(<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);
<a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="returnvalue">NMSettingVPN</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-vpn" title="nm_connection_get_setting_vpn ()">nm_connection_get_setting_vpn</a>
(<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);
-<span class="returnvalue">NMSettingWimax</span> * <a class="link" href="NMConnection.html#nm-connection-get-setting-wimax" title="nm_connection_get_setting_wimax ()">nm_connection_get_setting_wimax</a>
+<a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="returnvalue">NMSettingWimax</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-wimax" title="nm_connection_get_setting_wimax ()">nm_connection_get_setting_wimax</a>
(<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);
<a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="returnvalue">NMSettingWired</span></a> * <a class="link" href="NMConnection.html#nm-connection-get-setting-wired" title="nm_connection_get_setting_wired ()">nm_connection_get_setting_wired</a>
(<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);
@@ -182,7 +182,8 @@ parameters (MTU, SSID, APN, channel, rate, etc) and IP-level parameters
{
NM_CONNECTION_ERROR_UNKNOWN = 0,
NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
- NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID
+ NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID,
+ NM_CONNECTION_ERROR_SETTING_NOT_FOUND
} NMConnectionError;
</pre>
<p>
@@ -211,6 +212,12 @@ Describes errors that may result from operations involving a <a class="link" hre
<a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>.
</td>
</tr>
+<tr>
+<td><p><a name="NM-CONNECTION-ERROR-SETTING-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">NM_CONNECTION_ERROR_SETTING_NOT_FOUND</code></span></p></td>
+<td>the <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> object
+ did not contain the specified <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> object
+</td>
+</tr>
</tbody>
</table></div>
</div>
@@ -505,7 +512,7 @@ added to the <a class="link" href="NMConnection.html" title="NMConnection"><span
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -626,7 +633,7 @@ setting and which property failed validation, and how it failed validation.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -696,13 +703,15 @@ keeping secret data in memory when not needed.
<a name="nm-connection-update-secrets"></a><h3>nm_connection_update_secrets ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_connection_update_secrets (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *setting_secrets</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *secrets</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>
Update the specified setting's secrets, given a hash table of secrets
intended for that setting (deserialized from D-Bus for example). Will also
extract the given setting's secrets hash if given a hash of hashes, as would
-be returned from <a class="link" href="NMConnection.html#nm-connection-to-hash" title="nm_connection_to_hash ()"><code class="function">nm_connection_to_hash()</code></a>.
+be returned from <a class="link" href="NMConnection.html#nm-connection-to-hash" title="nm_connection_to_hash ()"><code class="function">nm_connection_to_hash()</code></a>. If <em class="parameter"><code>setting_name</code></em> is <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>, expects
+a fully serialized <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> as returned by <a class="link" href="NMConnection.html#nm-connection-to-hash" title="nm_connection_to_hash ()"><code class="function">nm_connection_to_hash()</code></a> and
+will update all secrets from all settings contained in <em class="parameter"><code>secrets</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -717,21 +726,21 @@ be returned from <a class="link" href="NMConnection.html#nm-connection-to-hash"
<td>the setting object name to which the secrets apply</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>setting_secrets</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>secrets</code></em> :</span></p></td>
<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> mapping
string:<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of setting property names and secrets of the given <em class="parameter"><code>setting_name</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GObject.Value]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the secrets were successfully updated and the connection
-is valid, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on failure or if the setting was never added to the connection</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the secrets were successfully updated, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the update
+failed (tried to update secrets for a setting that doesn't exist, etc)</td>
</tr>
</tbody>
</table></div>
@@ -1226,10 +1235,10 @@ A shortcut to return any <a class="link" href="NMSettingVPN.html" title="NMSetti
<hr>
<div class="refsect2">
<a name="nm-connection-get-setting-wimax"></a><h3>nm_connection_get_setting_wimax ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMSettingWimax</span> * nm_connection_get_setting_wimax
+<pre class="programlisting"><a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="returnvalue">NMSettingWimax</span></a> * nm_connection_get_setting_wimax
(<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
<p>
-A shortcut to return any <span class="type">NMSettingWimax</span> the connection might contain.
+A shortcut to return any <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> the connection might contain.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1241,7 +1250,7 @@ A shortcut to return any <span class="type">NMSettingWimax</span> the connection
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an <span class="type">NMSettingWimax</span> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td>an <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> if the connection contains one, otherwise NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
diff --git a/docs/libnm-util/html/NMSetting.html b/docs/libnm-util/html/NMSetting.html
index b9c258d27..0cc1fd036 100644
--- a/docs/libnm-util/html/NMSetting.html
+++ b/docs/libnm-util/html/NMSetting.html
@@ -54,6 +54,7 @@ enum <a class="link" href="NMSetting.html#NMSettingError">NMSetti
#define <a class="link" href="NMSetting.html#NM-SETTING-PARAM-FUZZY-IGNORE:CAPS" title="NM_SETTING_PARAM_FUZZY_IGNORE">NM_SETTING_PARAM_FUZZY_IGNORE</a>
#define <a class="link" href="NMSetting.html#NM-SETTING-NAME:CAPS" title="NM_SETTING_NAME">NM_SETTING_NAME</a>
enum <a class="link" href="NMSetting.html#NMSettingSecretFlags" title="enum NMSettingSecretFlags">NMSettingSecretFlags</a>;
+enum <a class="link" href="NMSetting.html#NMSettingCompareFlags" title="enum NMSettingCompareFlags">NMSettingCompareFlags</a>;
<a class="link" href="NMSetting.html#NMSetting-struct" title="NMSetting">NMSetting</a>;
<a class="link" href="NMSetting.html#NMSettingClass" title="NMSettingClass">NMSettingClass</a>;
<span class="returnvalue">void</span> (<a class="link" href="NMSetting.html#NMSettingValueIterFn" title="NMSettingValueIterFn ()">*NMSettingValueIterFn</a>) (<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *setting</code></em>,
@@ -72,7 +73,6 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSetting.html#nm-setting-verify" title="nm_setting_verify ()">nm_setting_verify</a> (<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *all_settings</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-enum <a class="link" href="NMSetting.html#NMSettingCompareFlags" title="enum NMSettingCompareFlags">NMSettingCompareFlags</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSetting.html#nm-setting-compare" title="nm_setting_compare ()">nm_setting_compare</a> (<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *b</code></em>,
<em class="parameter"><code><a class="link" href="NMSetting.html#NMSettingCompareFlags" title="enum NMSettingCompareFlags"><span class="type">NMSettingCompareFlags</span></a> flags</code></em>);
@@ -122,7 +122,7 @@ enum <a class="link" href="NMSetting.html#NMSettingDiffResult" ti
+----<a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE">NMSettingPPPOE</a>
+----<a class="link" href="NMSettingSerial.html" title="NMSettingSerial">NMSettingSerial</a>
+----<a class="link" href="NMSettingVPN.html" title="NMSettingVPN">NMSettingVPN</a>
- +----NMSettingWimax
+ +----<a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
+----<a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
+----<a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
+----<a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">NMSettingWirelessSecurity</a>
@@ -313,6 +313,64 @@ secret is not required
</div>
<hr>
<div class="refsect2">
+<a name="NMSettingCompareFlags"></a><h3>enum NMSettingCompareFlags</h3>
+<pre class="programlisting">typedef enum {
+ NM_SETTING_COMPARE_FLAG_EXACT = 0x00000000,
+ NM_SETTING_COMPARE_FLAG_FUZZY = 0x00000001,
+ NM_SETTING_COMPARE_FLAG_IGNORE_ID = 0x00000002,
+ NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS = 0x00000004,
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS = 0x00000008,
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS = 0x00000010
+} NMSettingCompareFlags;
+</pre>
+<p>
+These flags modify the comparison behavior when comparing two settings or
+two connections.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-EXACT:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_EXACT</code></span></p></td>
+<td>match all properties exactly
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-FUZZY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_FUZZY</code></span></p></td>
+<td>match only important attributes, like SSID,
+ type, security settings, etc. Does not match, for example, connection ID
+ or UUID.
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_ID</code></span></p></td>
+<td>ignore the connection's ID
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS</code></span></p></td>
+<td>ignore all secrets
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-AGENT-OWNED-SECRETS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS</code></span></p></td>
+<td>ignore secrets for which
+the secret's flags indicate the secret is owned by a user secret agent
+(ie, the secret's flag includes <em class="parameter"><code>NM_SETTING_SECRET_FLAG_AGENT_OWNED</code></em>)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-NOT-SAVED-SECRETS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS</code></span></p></td>
+<td>ignore secrets for which
+the secret's flags indicate the secret should not be saved to persistent
+storage (ie, the secret's flag includes <em class="parameter"><code>NM_SETTING_SECRET_FLAG_NOT_SAVED</code></em>)
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSetting-struct"></a><h3>NMSetting</h3>
<pre class="programlisting">typedef struct _NMSetting NMSetting;</pre>
<p>
@@ -350,11 +408,16 @@ It should only be accessed through the functions described below.
NMSettingSecretFlags flags,
GError **error);
+ /* Returns TRUE if the given property contains the same value in both settings */
+ gboolean (*compare_property) (NMSetting *setting,
+ NMSetting *other,
+ const GParamSpec *prop_spec,
+ NMSettingCompareFlags flags);
+
/* Padding for future expansion */
void (*_reserved1) (void);
void (*_reserved2) (void);
void (*_reserved3) (void);
- void (*_reserved4) (void);
} NMSettingClass;
</pre>
<p>
@@ -368,8 +431,35 @@ It should only be accessed through the functions described below.
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamFlags"><span class="type">GParamFlags</span></a> flags</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>The setting for which properties are being iterated, given to
+<a class="link" href="NMSetting.html#nm-setting-enumerate-values" title="nm_setting_enumerate_values ()"><code class="function">nm_setting_enumerate_values()</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>The value/property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>The property's value</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>The property's flags, like <a class="link" href="NMSetting.html#NM-SETTING-PARAM-SECRET:CAPS" title="NM_SETTING_PARAM_SECRET"><code class="literal">NM_SETTING_PARAM_SECRET</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data passed to <a class="link" href="NMSetting.html#nm-setting-enumerate-values" title="nm_setting_enumerate_values ()"><code class="function">nm_setting_enumerate_values()</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -550,7 +640,7 @@ came</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -563,48 +653,6 @@ came</td>
</div>
<hr>
<div class="refsect2">
-<a name="NMSettingCompareFlags"></a><h3>enum NMSettingCompareFlags</h3>
-<pre class="programlisting">typedef enum {
- NM_SETTING_COMPARE_FLAG_EXACT = 0x00000000,
- NM_SETTING_COMPARE_FLAG_FUZZY = 0x00000001,
- NM_SETTING_COMPARE_FLAG_IGNORE_ID = 0x00000002,
- NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS = 0x00000004
-} NMSettingCompareFlags;
-</pre>
-<p>
-These flags modify the comparison behavior when comparing two settings or
-two connections.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="NM-SETTING-COMPARE-FLAG-EXACT:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_EXACT</code></span></p></td>
-<td>match all properties exactly
-</td>
-</tr>
-<tr>
-<td><p><a name="NM-SETTING-COMPARE-FLAG-FUZZY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_FUZZY</code></span></p></td>
-<td>match only important attributes, like SSID,
- type, security settings, etc. Does not match, for example, connection ID
- or UUID.
-</td>
-</tr>
-<tr>
-<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_ID</code></span></p></td>
-<td>ignore the connection's ID
-</td>
-</tr>
-<tr>
-<td><p><a name="NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS</code></span></p></td>
-<td>ignore secrets
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
<a name="nm-setting-compare"></a><h3>nm_setting_compare ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_compare (<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *b</code></em>,
@@ -856,7 +904,7 @@ string to <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Gener
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -897,7 +945,7 @@ handle that secret.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -937,7 +985,7 @@ handle that secret.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
diff --git a/docs/libnm-util/html/NMSetting8021x.html b/docs/libnm-util/html/NMSetting8021x.html
index c9e533b58..1d7216b12 100644
--- a/docs/libnm-util/html/NMSetting8021x.html
+++ b/docs/libnm-util/html/NMSetting8021x.html
@@ -56,6 +56,8 @@ enum <a class="link" href="NMSetting8021x.html#NMSetting8021xErro
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS" title="NM_SETTING_802_1X_ANONYMOUS_IDENTITY">NM_SETTING_802_1X_ANONYMOUS_IDENTITY</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-CA-CERT:CAPS" title="NM_SETTING_802_1X_CA_CERT">NM_SETTING_802_1X_CA_CERT</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-CA-PATH:CAPS" title="NM_SETTING_802_1X_CA_PATH">NM_SETTING_802_1X_CA_PATH</a>
+#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-SUBJECT-MATCH:CAPS" title="NM_SETTING_802_1X_SUBJECT_MATCH">NM_SETTING_802_1X_SUBJECT_MATCH</a>
+#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS" title="NM_SETTING_802_1X_ALTSUBJECT_MATCHES">NM_SETTING_802_1X_ALTSUBJECT_MATCHES</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-CLIENT-CERT:CAPS" title="NM_SETTING_802_1X_CLIENT_CERT">NM_SETTING_802_1X_CLIENT_CERT</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPVER:CAPS" title="NM_SETTING_802_1X_PHASE1_PEAPVER">NM_SETTING_802_1X_PHASE1_PEAPVER</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPLABEL:CAPS" title="NM_SETTING_802_1X_PHASE1_PEAPLABEL">NM_SETTING_802_1X_PHASE1_PEAPLABEL</a>
@@ -64,6 +66,8 @@ enum <a class="link" href="NMSetting8021x.html#NMSetting8021xErro
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-AUTHEAP:CAPS" title="NM_SETTING_802_1X_PHASE2_AUTHEAP">NM_SETTING_802_1X_PHASE2_AUTHEAP</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-CERT:CAPS" title="NM_SETTING_802_1X_PHASE2_CA_CERT">NM_SETTING_802_1X_PHASE2_CA_CERT</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-PATH:CAPS" title="NM_SETTING_802_1X_PHASE2_CA_PATH">NM_SETTING_802_1X_PHASE2_CA_PATH</a>
+#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS" title="NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH">NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH</a>
+#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS" title="NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES">NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS" title="NM_SETTING_802_1X_PHASE2_CLIENT_CERT">NM_SETTING_802_1X_PHASE2_CLIENT_CERT</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD:CAPS" title="NM_SETTING_802_1X_PASSWORD">NM_SETTING_802_1X_PASSWORD</a>
#define <a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD-FLAGS:CAPS" title="NM_SETTING_802_1X_PASSWORD_FLAGS">NM_SETTING_802_1X_PASSWORD_FLAGS</a>
@@ -108,6 +112,20 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<em class="parameter"><code><a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="type">NMSetting8021xCKScheme</span></a> scheme</code></em>,
<em class="parameter"><code><a class="link" href="NMSetting8021x.html#NMSetting8021xCKFormat" title="enum NMSetting8021xCKFormat"><span class="type">NMSetting8021xCKFormat</span></a> *out_format</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-subject-match" title="nm_setting_802_1x_get_subject_match ()">nm_setting_802_1x_get_subject_match</a> (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-num-altsubject-matches" title="nm_setting_802_1x_get_num_altsubject_matches ()">nm_setting_802_1x_get_num_altsubject_matches</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-altsubject-match" title="nm_setting_802_1x_get_altsubject_match ()">nm_setting_802_1x_get_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-add-altsubject-match" title="nm_setting_802_1x_add_altsubject_match ()">nm_setting_802_1x_add_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *altsubject_match</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-remove-altsubject-match" title="nm_setting_802_1x_remove_altsubject_match ()">nm_setting_802_1x_remove_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-clear-altsubject-matches" title="nm_setting_802_1x_clear_altsubject_matches ()">nm_setting_802_1x_clear_altsubject_matches</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
<a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="returnvalue">NMSetting8021xCKScheme</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-scheme" title="nm_setting_802_1x_get_client_cert_scheme ()">nm_setting_802_1x_get_client_cert_scheme</a>
(<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-blob" title="nm_setting_802_1x_get_client_cert_blob ()">nm_setting_802_1x_get_client_cert_blob</a>
@@ -140,6 +158,21 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<em class="parameter"><code><a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="type">NMSetting8021xCKScheme</span></a> scheme</code></em>,
<em class="parameter"><code><a class="link" href="NMSetting8021x.html#NMSetting8021xCKFormat" title="enum NMSetting8021xCKFormat"><span class="type">NMSetting8021xCKFormat</span></a> *out_format</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-subject-match" title="nm_setting_802_1x_get_phase2_subject_match ()">nm_setting_802_1x_get_phase2_subject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-num-phase2-altsubject-matches" title="nm_setting_802_1x_get_num_phase2_altsubject_matches ()">nm_setting_802_1x_get_num_phase2_altsubject_matches</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-altsubject-match" title="nm_setting_802_1x_get_phase2_altsubject_match ()">nm_setting_802_1x_get_phase2_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-add-phase2-altsubject-match" title="nm_setting_802_1x_add_phase2_altsubject_match ()">nm_setting_802_1x_add_phase2_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *phase2_altsubject_match</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-remove-phase2-altsubject-match" title="nm_setting_802_1x_remove_phase2_altsubject_match ()">nm_setting_802_1x_remove_phase2_altsubject_match</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-clear-phase2-altsubject-matches" title="nm_setting_802_1x_clear_phase2_altsubject_matches ()">nm_setting_802_1x_clear_phase2_altsubject_matches</a>
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
<a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="returnvalue">NMSetting8021xCKScheme</span></a> <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-scheme" title="nm_setting_802_1x_get_phase2_client_cert_scheme ()">nm_setting_802_1x_get_phase2_client_cert_scheme</a>
(<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-blob" title="nm_setting_802_1x_get_phase2_client_cert_blob ()">nm_setting_802_1x_get_phase2_client_cert_blob</a>
@@ -211,6 +244,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<div class="refsect1">
<a name="NMSetting8021x.properties"></a><h2>Properties</h2>
<pre class="synopsis">
+ "<a class="link" href="NMSetting8021x.html#NMSetting8021x--altsubject-matches" title='The "altsubject-matches" property'>altsubject-matches</a>" <span class="type">GSList_gchararray_</span>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--anonymous-identity" title='The "anonymous-identity" property'>anonymous-identity</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--ca-cert" title='The "ca-cert" property'>ca-cert</a>" <span class="type">GArray_guchar_</span>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--ca-path" title='The "ca-path" property'>ca-path</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
@@ -222,6 +256,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase1-fast-provisioning" title='The "phase1-fast-provisioning" property'>phase1-fast-provisioning</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase1-peaplabel" title='The "phase1-peaplabel" property'>phase1-peaplabel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase1-peapver" title='The "phase1-peapver" property'>phase1-peapver</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
+ "<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches" title='The "phase2-altsubject-matches" property'>phase2-altsubject-matches</a>" <span class="type">GSList_gchararray_</span>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-auth" title='The "phase2-auth" property'>phase2-auth</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-autheap" title='The "phase2-autheap" property'>phase2-autheap</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-ca-cert" title='The "phase2-ca-cert" property'>phase2-ca-cert</a>" <span class="type">GArray_guchar_</span>* : Read / Write
@@ -230,9 +265,11 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-private-key" title='The "phase2-private-key" property'>phase2-private-key</a>" <span class="type">GArray_guchar_</span>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password" title='The "phase2-private-key-password" property'>phase2-private-key-password</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password-flags" title='The "phase2-private-key-password-flags" property'>phase2-private-key-password-flags</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-subject-match" title='The "phase2-subject-match" property'>phase2-subject-match</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--private-key" title='The "private-key" property'>private-key</a>" <span class="type">GArray_guchar_</span>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--private-key-password" title='The "private-key-password" property'>private-key-password</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--private-key-password-flags" title='The "private-key-password-flags" property'>private-key-password-flags</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="NMSetting8021x.html#NMSetting8021x--subject-match" title='The "subject-match" property'>subject-match</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSetting8021x.html#NMSetting8021x--system-ca-certs" title='The "system-ca-certs" property'>system-ca-certs</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct
</pre>
</div>
@@ -359,15 +396,33 @@ to a file containing the certificate or key data
<hr>
<div class="refsect2">
<a name="NMSetting8021xError"></a><h3>enum NMSetting8021xError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_802_1X_ERROR_UNKNOWN = 0,
NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
NM_SETTING_802_1X_ERROR_MISSING_PROPERTY
} NMSetting8021xError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-802-1X-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_802_1X_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-802-1X-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_802_1X_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-802-1X-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_802_1X_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -442,6 +497,22 @@ Registers an error quark for <a class="link" href="NMSetting8021x.html" title="N
</div>
<hr>
<div class="refsect2">
+<a name="NM-SETTING-802-1X-SUBJECT-MATCH:CAPS"></a><h3>NM_SETTING_802_1X_SUBJECT_MATCH</h3>
+<pre class="programlisting">#define NM_SETTING_802_1X_SUBJECT_MATCH "subject-match"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS"></a><h3>NM_SETTING_802_1X_ALTSUBJECT_MATCHES</h3>
+<pre class="programlisting">#define NM_SETTING_802_1X_ALTSUBJECT_MATCHES "altsubject-matches"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NM-SETTING-802-1X-CLIENT-CERT:CAPS"></a><h3>NM_SETTING_802_1X_CLIENT_CERT</h3>
<pre class="programlisting">#define NM_SETTING_802_1X_CLIENT_CERT "client-cert"
</pre>
@@ -506,6 +577,22 @@ Registers an error quark for <a class="link" href="NMSetting8021x.html" title="N
</div>
<hr>
<div class="refsect2">
+<a name="NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS"></a><h3>NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH</h3>
+<pre class="programlisting">#define NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH "phase2-subject-match"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS"></a><h3>NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES</h3>
+<pre class="programlisting">#define NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES "phase2-altsubject-matches"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS"></a><h3>NM_SETTING_802_1X_PHASE2_CLIENT_CERT</h3>
<pre class="programlisting">#define NM_SETTING_802_1X_PHASE2_CLIENT_CERT "phase2-client-cert"
</pre>
@@ -1031,6 +1118,153 @@ clears the CA certificate.</td>
</div>
<hr>
<div class="refsect2">
+<a name="nm-setting-802-1x-get-subject-match"></a><h3>nm_setting_802_1x_get_subject_match ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_802_1x_get_subject_match (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html#NMSetting8021x--subject-match" title='The "subject-match" property'><span class="type">"subject-match"</span></a> property. This is the
+substring to be matched against the subject of the authentication
+server certificate, or NULL no subject verification is to be
+performed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-get-num-altsubject-matches"></a><h3>nm_setting_802_1x_get_num_altsubject_matches ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_802_1x_get_num_altsubject_matches
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<p>
+Returns the number of entries in the
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--altsubject-matches" title='The "altsubject-matches" property'><span class="type">"altsubject-matches"</span></a> property of this setting.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of altsubject-matches entries.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-get-altsubject-match"></a><h3>nm_setting_802_1x_get_altsubject_match ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_802_1x_get_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
+<p>
+Returns the altSubjectName match at index <em class="parameter"><code>i</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingConnection.html" title="NMSettingConnection"><span class="type">NMSettingConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the zero-based index of the array of altSubjectName matches</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the altSubjectName match at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-add-altsubject-match"></a><h3>nm_setting_802_1x_add_altsubject_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_802_1x_add_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *altsubject_match</code></em>);</pre>
+<p>
+Adds an allowed alternate subject name match. Until at least one
+match is added, the altSubjectName of the remote authentication
+server is not verified.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>altsubject_match</code></em> :</span></p></td>
+<td>the altSubjectName to allow for this connection</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the alternative subject name match was
+successfully added, FALSE if it was already allowed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-remove-altsubject-match"></a><h3>nm_setting_802_1x_remove_altsubject_match ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_802_1x_remove_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
+<p>
+Removes the allowed altSubjectName at the specified index.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the index of the altSubjectName match to remove</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-clear-altsubject-matches"></a><h3>nm_setting_802_1x_clear_altsubject_matches ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_802_1x_clear_altsubject_matches
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<p>
+Clears all altSubjectName matches.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="nm-setting-802-1x-get-client-cert-scheme"></a><h3>nm_setting_802_1x_get_client_cert_scheme ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="returnvalue">NMSetting8021xCKScheme</span></a> nm_setting_802_1x_get_client_cert_scheme
(<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
@@ -1401,6 +1635,155 @@ clears the "phase2" CA certificate.</td>
</div>
<hr>
<div class="refsect2">
+<a name="nm-setting-802-1x-get-phase2-subject-match"></a><h3>nm_setting_802_1x_get_phase2_subject_match ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_802_1x_get_phase2_subject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-subject-match" title='The "phase2-subject-match" property'><span class="type">"phase2-subject-match"</span></a> property. This is
+the substring to be matched against the subject of the "phase 2"
+authentication server certificate, or NULL no subject verification
+is to be performed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-get-num-phase2-altsubject-matches"></a><h3>nm_setting_802_1x_get_num_phase2_altsubject_matches ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_802_1x_get_num_phase2_altsubject_matches
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<p>
+Returns the number of entries in the
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches" title='The "phase2-altsubject-matches" property'><span class="type">"phase2-altsubject-matches"</span></a> property of this setting.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of phase2-altsubject-matches entries.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-get-phase2-altsubject-match"></a><h3>nm_setting_802_1x_get_phase2_altsubject_match ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_802_1x_get_phase2_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
+<p>
+Returns the "phase 2" altSubjectName match at index <em class="parameter"><code>i</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingConnection.html" title="NMSettingConnection"><span class="type">NMSettingConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the zero-based index of the array of "phase 2" altSubjectName matches</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the "phase 2" altSubjectName match at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-add-phase2-altsubject-match"></a><h3>nm_setting_802_1x_add_phase2_altsubject_match ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_802_1x_add_phase2_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *phase2_altsubject_match</code></em>);</pre>
+<p>
+Adds an allowed alternate subject name match for "phase 2". Until
+at least one match is added, the altSubjectName of the "phase 2"
+remote authentication server is not verified.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>phase2_altsubject_match</code></em> :</span></p></td>
+<td>the "phase 2" altSubjectName to allow for this
+connection</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the "phase 2" alternative subject name match was
+successfully added, FALSE if it was already allowed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-remove-phase2-altsubject-match"></a><h3>nm_setting_802_1x_remove_phase2_altsubject_match ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_802_1x_remove_phase2_altsubject_match
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
+<p>
+Removes the allowed "phase 2" altSubjectName at the specified index.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the index of the "phase 2" altSubjectName match to remove</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-802-1x-clear-phase2-altsubject-matches"></a><h3>nm_setting_802_1x_clear_phase2_altsubject_matches ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_802_1x_clear_phase2_altsubject_matches
+ (<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
+<p>
+Clears all "phase 2" altSubjectName matches.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="nm-setting-802-1x-get-phase2-client-cert-scheme"></a><h3>nm_setting_802_1x_get_phase2_client_cert_scheme ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting8021x.html#NMSetting8021xCKScheme" title="enum NMSetting8021xCKScheme"><span class="returnvalue">NMSetting8021xCKScheme</span></a> nm_setting_802_1x_get_phase2_client_cert_scheme
(<em class="parameter"><code><a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> *setting</code></em>);</pre>
@@ -1748,7 +2131,7 @@ clears the private key.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>password used to decrypt the private key, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the password
+<td>password used to decrypt the private key, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the password
is unknown. If the password is given but fails to decrypt the private key,
an error is returned.</td>
</tr>
@@ -1787,8 +2170,7 @@ an error is returned.</td>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the private key password used to decrypt the private key if
-previously set with <code class="function">nm_setting_802_1x_set_private_key_from_file()</code>,
-<code class="function">nm_setting_802_1x_set_private_key_path()</code>, or the
+previously set with <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-set-private-key" title="nm_setting_802_1x_set_private_key ()"><code class="function">nm_setting_802_1x_set_private_key()</code></a>, or the
<a class="link" href="NMSetting8021x.html#NMSetting8021x--private-key-password" title='The "private-key-password" property'><span class="type">"private-key-password"</span></a> property.</td>
</tr>
</tbody>
@@ -1973,7 +2355,7 @@ use <a href="http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Con
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
-<td>password used to decrypt the private key, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the password
+<td>password used to decrypt the private key, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a> if the password
is unknown. If the password is given but fails to decrypt the private key,
an error is returned.</td>
</tr>
@@ -2012,8 +2394,7 @@ an error is returned.</td>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the private key password used to decrypt the private key if
-previously set with <code class="function">nm_setting_802_1x_set_phase2_private_key_from_file()</code>,
-<code class="function">nm_setting_802_1x_set_phase2_private_key_path()</code>, or the
+previously set with <a class="link" href="NMSetting8021x.html#nm-setting-802-1x-set-phase2-private-key" title="nm_setting_802_1x_set_phase2_private_key ()"><code class="function">nm_setting_802_1x_set_phase2_private_key()</code></a> or the
<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password" title='The "phase2-private-key-password" property'><span class="type">"phase2-private-key-password"</span></a> property.</td>
</tr>
</tbody>
@@ -2066,6 +2447,17 @@ previously set with <code class="function">nm_setting_802_1x_set_phase2_private_
<div class="refsect1">
<a name="NMSetting8021x.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
+<a name="NMSetting8021x--altsubject-matches"></a><h3>The <code class="literal">"altsubject-matches"</code> property</h3>
+<pre class="programlisting"> "altsubject-matches" <span class="type">GSList_gchararray_</span>* : Read / Write</pre>
+<p>
+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.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSetting8021x--anonymous-identity"></a><h3>The <code class="literal">"anonymous-identity"</code> property</h3>
<pre class="programlisting"> "anonymous-identity" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
@@ -2189,6 +2581,18 @@ version.
</div>
<hr>
<div class="refsect2">
+<a name="NMSetting8021x--phase2-altsubject-matches"></a><h3>The <code class="literal">"phase2-altsubject-matches"</code> property</h3>
+<pre class="programlisting"> "phase2-altsubject-matches" <span class="type">GSList_gchararray_</span>* : Read / Write</pre>
+<p>
+List of strings to be matched against the altSubjectName of the
+certificate presented by the authentication server during the
+inner "phase 2" authentication. If the list is empty, no
+verification of the server certificate's altSubjectName is
+performed.
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSetting8021x--phase2-auth"></a><h3>The <code class="literal">"phase2-auth"</code> property</h3>
<pre class="programlisting"> "phase2-auth" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
@@ -2256,8 +2660,8 @@ properties. Setting this property directly is discouraged; use the
Private key data used by "phase 2" inner authentication methods.
</p>
<p>
-Contains the "phase 2" inner private key if the <span class="type">"auth"</span> or
-<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-autheap" title='The "phase2-autheap" property'><span class="type">"phase2-autheap"</span></a> property is set to 'tls'. Setting this
+Contains the "phase 2" inner private key if the <a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-auth" title='The "phase2-auth" property'><span class="type">"phase2-auth"</span></a>
+or <a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-autheap" title='The "phase2-autheap" property'><span class="type">"phase2-autheap"</span></a> property is set to 'tls'. Setting this
property directly is discouraged; use the
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-set-phase2-private-key" title="nm_setting_802_1x_set_phase2_private_key ()"><code class="function">nm_setting_802_1x_set_phase2_private_key()</code></a> function instead.
</p>
@@ -2288,6 +2692,18 @@ Flags indicating how to handle <a class="link" href="NMSetting8021x.html#NMSetti
</div>
<hr>
<div class="refsect2">
+<a name="NMSetting8021x--phase2-subject-match"></a><h3>The <code class="literal">"phase2-subject-match"</code> property</h3>
+<pre class="programlisting"> "phase2-subject-match" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
+<p>
+Substring to be matched against the subject of the certificate
+presented by the authentication server during the inner "phase
+2" authentication. When unset, no verification of the
+authentication server certificate's subject is performed.
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSetting8021x--private-key"></a><h3>The <code class="literal">"private-key"</code> property</h3>
<pre class="programlisting"> "private-key" <span class="type">GArray_guchar_</span>* : Read / Write</pre>
<p>
@@ -2329,6 +2745,18 @@ Flags indicating how to handle <a class="link" href="NMSetting8021x.html#NMSetti
</div>
<hr>
<div class="refsect2">
+<a name="NMSetting8021x--subject-match"></a><h3>The <code class="literal">"subject-match"</code> property</h3>
+<pre class="programlisting"> "subject-match" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
+<p>
+Substring to be matched against the subject of the certificate
+presented by the authentication server. When unset, no
+verification of the authentication server certificate's subject
+is performed.
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSetting8021x--system-ca-certs"></a><h3>The <code class="literal">"system-ca-certs"</code> property</h3>
<pre class="programlisting"> "system-ca-certs" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre>
<p>
@@ -2336,9 +2764,8 @@ When TRUE, overrides <a class="link" href="NMSetting8021x.html#NMSetting8021x--c
<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-ca-path" title='The "phase2-ca-path" property'><span class="type">"phase2-ca-path"</span></a> properties using the system CA directory
specified at configure time with the --system-ca-path switch. The
certificates in this directory are added to the verification chain in
-addition to any certificates specified by the <a class="link" href="NMSetting8021x.html#NMSetting8021x--ca-cert" title='The "ca-cert" property'><span class="type">"ca-cert"</span></a>,
-<span class="type">"ca-cert-path"</span>, <a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-ca-cert" title='The "phase2-ca-cert" property'><span class="type">"phase2-ca-cert"</span></a> and
-<span class="type">"phase2-ca-cert-path"</span> properties.
+addition to any certificates specified by the <a class="link" href="NMSetting8021x.html#NMSetting8021x--ca-cert" title='The "ca-cert" property'><span class="type">"ca-cert"</span></a>
+and <a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-ca-cert" title='The "phase2-ca-cert" property'><span class="type">"phase2-ca-cert"</span></a> properties.
</p>
<p>Default value: FALSE</p>
</div>
diff --git a/docs/libnm-util/html/NMSettingBluetooth.html b/docs/libnm-util/html/NMSettingBluetooth.html
index a6eae7b9c..0e024c2b6 100644
--- a/docs/libnm-util/html/NMSettingBluetooth.html
+++ b/docs/libnm-util/html/NMSettingBluetooth.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingBluetooth.top_of_page"></a>NMSettingBluetooth</span></h2>
-<p>NMSettingBluetooth</p>
+<p>NMSettingBluetooth — Describes Bluetooth connection properties</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingBluetooth.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingBluetoothError"></a><pre class="synopsis">#define <a class="link" href="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-SETTING-NAME:CAPS" title="NM_SETTING_BLUETOOTH_SETTING_NAME">NM_SETTING_BLUETOOTH_SETTING_NAME</a>
+<a name="NMSettingBluetoothError"></a><pre class="synopsis">
+#include &lt;nm-setting-bluetooth.h&gt;
+
+#define <a class="link" href="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-SETTING-NAME:CAPS" title="NM_SETTING_BLUETOOTH_SETTING_NAME">NM_SETTING_BLUETOOTH_SETTING_NAME</a>
enum <a class="link" href="NMSettingBluetooth.html#NMSettingBluetoothError">NMSettingBluetoothError</a>;
#define <a class="link" href="NMSettingBluetooth.html#NM-TYPE-SETTING-BLUETOOTH-ERROR:CAPS" title="NM_TYPE_SETTING_BLUETOOTH_ERROR">NM_TYPE_SETTING_BLUETOOTH_ERROR</a>
#define <a class="link" href="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR:CAPS" title="NM_SETTING_BLUETOOTH_ERROR">NM_SETTING_BLUETOOTH_ERROR</a>
@@ -81,6 +84,10 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingBluetooth.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties necessary for connection to devices that provide network
+connections via the Bluetooth Dial-Up Networking (DUN) and Network Access
+Point (NAP) profiles.
</p>
</div>
<div class="refsect1">
@@ -95,16 +102,41 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingBluetoothError"></a><h3>enum NMSettingBluetoothError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_BLUETOOTH_ERROR_UNKNOWN = 0,
NM_SETTING_BLUETOOTH_ERROR_INVALID_PROPERTY,
NM_SETTING_BLUETOOTH_ERROR_MISSING_PROPERTY,
NM_SETTING_BLUETOOTH_ERROR_TYPE_SETTING_NOT_FOUND,
} NMSettingBluetoothError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-BLUETOOTH-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BLUETOOTH_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-BLUETOOTH-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BLUETOOTH_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-BLUETOOTH-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BLUETOOTH_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-BLUETOOTH-ERROR-TYPE-SETTING-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">NM_SETTING_BLUETOOTH_ERROR_TYPE_SETTING_NOT_FOUND</code></span></p></td>
+<td>the connection
+did not contain a required type setting, ie for DUN connections the connection
+must also contain an <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> or <a class="link" href="NMSettingCdma.html" title="NMSettingCdma"><span class="type">NMSettingCdma</span></a> as appropriate
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -127,7 +159,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-bluetooth-error-quark"></a><h3>nm_setting_bluetooth_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_bluetooth_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -151,6 +191,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_BLUETOOTH_TYPE_DUN "dun"
</pre>
<p>
+Connection type describing a connection to devices that support the Bluetooth
+DUN profile.
</p>
</div>
<hr>
@@ -159,6 +201,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_BLUETOOTH_TYPE_PANU "panu"
</pre>
<p>
+Connection type describing a connection to devices that support the Bluetooth
+NAP (Network Access Point) protocol, which accepts connections via PANU.
</p>
</div>
<hr>
@@ -196,14 +240,39 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-bluetooth-new"></a><h3>nm_setting_bluetooth_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_bluetooth_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-bluetooth-get-bdaddr"></a><h3>nm_setting_bluetooth_get_bdaddr ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_bluetooth_get_bdaddr (<em class="parameter"><code><a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> *setting</code></em>);</pre>
<p>
+Gets the Bluetooth address of the remote device which this setting
+describes a connection to.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the Bluetooth address</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -211,7 +280,24 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_bluetooth_get_connection_type
(<em class="parameter"><code><a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a> *setting</code></em>);</pre>
<p>
+Returns the connection method for communicating with the remote device (i.e.
+either DUN to a DUN-capable device or PANU to a NAP-capable device).
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingBluetooth.html" title="NMSettingBluetooth"><span class="type">NMSettingBluetooth</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the type, either <code class="literal">NM_SETTING_BLUETOOTH_PANU</code> or <code class="literal">NM_SETTING_BLUETOOTH_DUN</code>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
@@ -228,8 +314,8 @@ The Bluetooth address of the device.
<a name="NMSettingBluetooth--type"></a><h3>The <code class="literal">"type"</code> property</h3>
<pre class="programlisting"> "type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
-Either 'dun' for Dial-Up Networking connections (not yet supported) or
-'panu' for Personal Area Networking connections.
+Either 'dun' for Dial-Up Networking connections or 'panu' for Personal
+Area Networking connections to devices supporting the NAP profile.
</p>
<p>Default value: NULL</p>
</div>
diff --git a/docs/libnm-util/html/NMSettingCdma.html b/docs/libnm-util/html/NMSettingCdma.html
index 3dc4a7123..1c93803d8 100644
--- a/docs/libnm-util/html/NMSettingCdma.html
+++ b/docs/libnm-util/html/NMSettingCdma.html
@@ -105,16 +105,40 @@ networks, including those using CDMA2000/EVDO technology.
<hr>
<div class="refsect2">
<a name="NMSettingCdmaError"></a><h3>enum NMSettingCdmaError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_CDMA_ERROR_UNKNOWN = 0,
NM_SETTING_CDMA_ERROR_INVALID_PROPERTY,
NM_SETTING_CDMA_ERROR_MISSING_PROPERTY,
NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING
} NMSettingCdmaError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-CDMA-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_CDMA_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-CDMA-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_CDMA_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-CDMA-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_CDMA_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-CDMA-ERROR-MISSING-SERIAL-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING</code></span></p></td>
+<td>the required <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+is missing in the connection
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
diff --git a/docs/libnm-util/html/NMSettingConnection.html b/docs/libnm-util/html/NMSettingConnection.html
index 2b113d2dc..e0085a7c4 100644
--- a/docs/libnm-util/html/NMSettingConnection.html
+++ b/docs/libnm-util/html/NMSettingConnection.html
@@ -577,7 +577,7 @@ the "user" permission type is supported, and <em class="parameter"><code>pitem</
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>detail</code></em> :</span></p></td>
-<td>unused at this time; must be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+<td>unused at this time; must be <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
</td>
</tr>
<tr>
diff --git a/docs/libnm-util/html/NMSettingGsm.html b/docs/libnm-util/html/NMSettingGsm.html
index 4a2d79257..439dea0d8 100644
--- a/docs/libnm-util/html/NMSettingGsm.html
+++ b/docs/libnm-util/html/NMSettingGsm.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="up" href="ch01.html" title="libnm-util API Reference">
<link rel="prev" href="NMSettingCdma.html" title="NMSettingCdma">
-<link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
+<link rel="next" href="NMSettingWimax.html" title="NMSettingWimax">
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -18,7 +18,7 @@
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libnm-util Reference Manual</th>
-<td><a accesskey="n" href="NMSettingOlpcMesh.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="NMSettingWimax.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#NMSettingGsm.synopsis" class="shortcut">Top</a>
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingGsm.top_of_page"></a>NMSettingGsm</span></h2>
-<p>NMSettingGsm</p>
+<p>NMSettingGsm — Describes GSM/3GPP-based mobile broadband properties</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingGsm.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingGsmError"></a><pre class="synopsis">#define <a class="link" href="NMSettingGsm.html#NM-SETTING-GSM-SETTING-NAME:CAPS" title="NM_SETTING_GSM_SETTING_NAME">NM_SETTING_GSM_SETTING_NAME</a>
+<a name="NMSettingGsmError"></a><pre class="synopsis">
+#include &lt;nm-setting-gsm.h&gt;
+
+#define <a class="link" href="NMSettingGsm.html#NM-SETTING-GSM-SETTING-NAME:CAPS" title="NM_SETTING_GSM_SETTING_NAME">NM_SETTING_GSM_SETTING_NAME</a>
enum <a class="link" href="NMSettingGsm.html#NMSettingGsmError">NMSettingGsmError</a>;
#define <a class="link" href="NMSettingGsm.html#NM-TYPE-SETTING-GSM-ERROR:CAPS" title="NM_TYPE_SETTING_GSM_ERROR">NM_TYPE_SETTING_GSM_ERROR</a>
#define <a class="link" href="NMSettingGsm.html#NM-SETTING-GSM-ERROR:CAPS" title="NM_SETTING_GSM_ERROR">NM_SETTING_GSM_ERROR</a>
@@ -107,6 +110,9 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingGsm.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties that allow connections to 3GPP-based mobile broadband
+networks, including those using GPRS/EDGE and UMTS/HSPA technology.
</p>
</div>
<div class="refsect1">
@@ -121,16 +127,40 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingGsmError"></a><h3>enum NMSettingGsmError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_GSM_ERROR_UNKNOWN = 0,
NM_SETTING_GSM_ERROR_INVALID_PROPERTY,
NM_SETTING_GSM_ERROR_MISSING_PROPERTY,
NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING
} NMSettingGsmError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-GSM-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-ERROR-MISSING-SERIAL-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING</code></span></p></td>
+<td>the required <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+is missing in the connection
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -153,7 +183,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-gsm-error-quark"></a><h3>nm_setting_gsm_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_gsm_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -255,7 +293,43 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
} NMSettingGsmNetworkType;
</pre>
<p>
+<a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkType" title="enum NMSettingGsmNetworkType"><span class="type">NMSettingGsmNetworkType</span></a> values indicate the allowed access technologies
+the device may use when connecting to this network.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-GSM-NETWORK-TYPE-ANY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_NETWORK_TYPE_ANY</code></span></p></td>
+<td>any access technology may be used
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-NETWORK-TYPE-UMTS-HSPA:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_NETWORK_TYPE_UMTS_HSPA</code></span></p></td>
+<td>only 3G-type (UMTS and HSPA)
+technologies may be used
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-NETWORK-TYPE-GPRS-EDGE:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_NETWORK_TYPE_GPRS_EDGE</code></span></p></td>
+<td>only 2G-type (GPRS and EDGE)
+technologies may be used
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-NETWORK-TYPE-PREFER-UMTS-HSPA:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_NETWORK_TYPE_PREFER_UMTS_HSPA</code></span></p></td>
+<td>3G-type technologies are
+preferred but 2G-type technologies may be used as a fallback
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-NETWORK-TYPE-PREFER-GPRS-EDGE:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE</code></span></p></td>
+<td>2G-type technologies are
+preferred but 3G-type technologies may be used as a fallback
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -275,10 +349,93 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
NM_SETTING_GSM_BAND_U900 = 0x00000400, /* WCDMA 3GPP UMTS 900 MHz (Class VIII) */
NM_SETTING_GSM_BAND_U17IX = 0x00000800, /* WCDMA 3GPP UMTS 1700 MHz (Class IX) */
NM_SETTING_GSM_BAND_U1900 = 0x00001000, /* WCDMA 3GPP UMTS 1900 MHz (Class II) */
+ NM_SETTING_GSM_BAND_U2600 = 0x00002000, /* WCDMA 3GPP UMTS 2600 MHz (Class VII, internal) */
} NMSettingGsmNetworkBand;
</pre>
<p>
+<a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkBand" title="enum NMSettingGsmNetworkBand"><span class="type">NMSettingGsmNetworkBand</span></a> values indicate the allowed frequency bands
+the device may use when connecting to this network.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_UNKNOWN</code></span></p></td>
+<td>unknown or no band specified
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-ANY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_ANY</code></span></p></td>
+<td>any band is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-EGSM:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_EGSM</code></span></p></td>
+<td>900 MHz original GSM band
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-DCS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_DCS</code></span></p></td>
+<td>1800 MHz DCS band
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-PCS:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_PCS</code></span></p></td>
+<td>US 1900 MHz PCS band
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-G850:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_G850</code></span></p></td>
+<td>US 850 MHz Cellular band
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U2100:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U2100</code></span></p></td>
+<td>WCDMA 3GPP UMTS 2100 MHz (Class I)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U1800:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U1800</code></span></p></td>
+<td>WCDMA 3GPP UMTS 1800 MHz (Class III)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U17IV:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U17IV</code></span></p></td>
+<td>WCDMA 3GPP AWS 1700/2100 MHz (Class IV)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U800:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U800</code></span></p></td>
+<td>WCDMA 3GPP UMTS 800 MHz (Class VI)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U850:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U850</code></span></p></td>
+<td>WCDMA 3GPP UMTS 850 MHz (Class V)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U900:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U900</code></span></p></td>
+<td>WCDMA 3GPP UMTS 900 MHz (Class VIII)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U17IX:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U17IX</code></span></p></td>
+<td>WCDMA 3GPP UMTS 1700 MHz (Class IX)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U1900:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U1900</code></span></p></td>
+<td>WCDMA 3GPP UMTS 1900 MHz (Class II)
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-GSM-BAND-U2600:CAPS"></a><span class="term"><code class="literal">NM_SETTING_GSM_BAND_U2600</code></span></p></td>
+<td>WCDMA 3GPP UMTS 2600 MHz (Class VII, internal)
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -315,70 +472,186 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-gsm-new"></a><h3>nm_setting_gsm_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_gsm_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> object</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-number"></a><h3>nm_setting_gsm_get_number ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_number (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--number" title='The "number" property'><span class="type">"number"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-username"></a><h3>nm_setting_gsm_get_username ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_username (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--username" title='The "username" property'><span class="type">"username"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-password"></a><h3>nm_setting_gsm_get_password ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_password (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--password" title='The "password" property'><span class="type">"password"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-apn"></a><h3>nm_setting_gsm_get_apn ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_apn (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--apn" title='The "apn" property'><span class="type">"apn"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-network-id"></a><h3>nm_setting_gsm_get_network_id ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_network_id (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--network-id" title='The "network-id" property'><span class="type">"network-id"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-network-type"></a><h3>nm_setting_gsm_get_network_type ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> nm_setting_gsm_get_network_type (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--network-type" title='The "network-type" property'><span class="type">"network-type"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-allowed-bands"></a><h3>nm_setting_gsm_get_allowed_bands ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_gsm_get_allowed_bands (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--allowed-bands" title='The "allowed-bands" property'><span class="type">"allowed-bands"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-pin"></a><h3>nm_setting_gsm_get_pin ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_gsm_get_pin (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--pin" title='The "pin" property'><span class="type">"pin"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-gsm-get-home-only"></a><h3>nm_setting_gsm_get_home_only ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_gsm_get_home_only (<em class="parameter"><code><a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html" title="NMSettingGsm"><span class="type">NMSettingGsm</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingGsm.html#NMSettingGsm--home-only" title='The "home-only" property'><span class="type">"home-only"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -428,7 +701,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"> "allowed-bands" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre>
<p>
Bitfield of allowed frequency bands. Note that not all devices allow
-frequency band control.
+frequency band control. Permitted values are those specified by
+<a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkBand" title="enum NMSettingGsmNetworkBand"><span class="type">NMSettingGsmNetworkBand</span></a>.
</p>
<p>Allowed values: &lt;= 1</p>
<p>Default value: 1</p>
@@ -477,9 +751,9 @@ roaming control of the device is not otherwise possible.
<pre class="programlisting"> "network-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre>
<p>
Network preference to force the device to only use specific network
-technologies. The permitted values are: -1: any, 0: 3G only,
-1: GPRS/EDGE only, 2: prefer 3G, and 3: prefer 2G. Note that not all
-devices allow network preference control.
+technologies. Permitted values are those specified by
+<a class="link" href="NMSettingGsm.html#NMSettingGsmNetworkType" title="enum NMSettingGsmNetworkType"><span class="type">NMSettingGsmNetworkType</span></a>. Note that not all devices allow network
+preference control.
</p>
<p>Allowed values: [G_MAXULONG,3]</p>
<p>Default value: -1</p>
@@ -490,9 +764,9 @@ devices allow network preference control.
<pre class="programlisting"> "number" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
Number to dial when establishing a PPP data session with the GSM-based
-mobile broadband network. In most cases, leave the number blank and a
-number selecting the APN specified in the 'apn' property will be used
-automatically when required.
+mobile broadband network. Many modems do not require PPP for connections
+to the mobile network and thus this property should be left blank, which
+allows NetworkManager to select the appropriate settings automatically.
</p>
<p>Default value: NULL</p>
</div>
@@ -533,7 +807,7 @@ the device.
<a name="NMSettingGsm--pin-flags"></a><h3>The <code class="literal">"pin-flags"</code> property</h3>
<pre class="programlisting"> "pin-flags" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
<p>
-Flags indicating how to handle <a class="link" href="NMSettingGsm.html#NMSettingGsm--pin" title='The "pin" property'><span class="type">"pin"</span></a>:.
+Flags indicating how to handle <a class="link" href="NMSettingGsm.html#NMSettingGsm--pin" title='The "pin" property'><span class="type">"pin"</span></a>.
</p>
<p>Allowed values: &lt;= 7</p>
<p>Default value: 0</p>
diff --git a/docs/libnm-util/html/NMSettingIP4Config.html b/docs/libnm-util/html/NMSettingIP4Config.html
index 6a701adf5..488f842ad 100644
--- a/docs/libnm-util/html/NMSettingIP4Config.html
+++ b/docs/libnm-util/html/NMSettingIP4Config.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingIP4Config.top_of_page"></a>NMSettingIP4Config</span></h2>
-<p>NMSettingIP4Config</p>
+<p>NMSettingIP4Config — Describes IPv4 addressing, routing, and name service properties</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingIP4Config.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingIP4ConfigError"></a><a name="NMIP4Address"></a><a name="NMIP4Route"></a><pre class="synopsis">#define <a class="link" href="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS" title="NM_SETTING_IP4_CONFIG_SETTING_NAME">NM_SETTING_IP4_CONFIG_SETTING_NAME</a>
+<a name="NMSettingIP4ConfigError"></a><a name="NMIP4Address"></a><a name="NMIP4Route"></a><pre class="synopsis">
+#include &lt;nm-setting-ip4-config.h&gt;
+
+#define <a class="link" href="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS" title="NM_SETTING_IP4_CONFIG_SETTING_NAME">NM_SETTING_IP4_CONFIG_SETTING_NAME</a>
enum <a class="link" href="NMSettingIP4Config.html#NMSettingIP4ConfigError">NMSettingIP4ConfigError</a>;
#define <a class="link" href="NMSettingIP4Config.html#NM-TYPE-SETTING-IP4-CONFIG-ERROR:CAPS" title="NM_TYPE_SETTING_IP4_CONFIG_ERROR">NM_TYPE_SETTING_IP4_CONFIG_ERROR</a>
#define <a class="link" href="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR:CAPS" title="NM_SETTING_IP4_CONFIG_ERROR">NM_SETTING_IP4_CONFIG_ERROR</a>
@@ -83,7 +86,7 @@ typedef <a class="link" href="NMSettingIP4Config.html#NMIP4Address">
typedef <a class="link" href="NMSettingIP4Config.html#NMIP4Route">NMIP4Route</a>;
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-get-type" title="nm_ip4_route_get_type ()">nm_ip4_route_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-new" title="nm_ip4_route_new ()">nm_ip4_route_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-dup" title="nm_ip4_route_dup ()">nm_ip4_route_dup</a> (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);
+<a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-dup" title="nm_ip4_route_dup ()">nm_ip4_route_dup</a> (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *source</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-ref" title="nm_ip4_route_ref ()">nm_ip4_route_ref</a> (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-unref" title="nm_ip4_route_unref ()">nm_ip4_route_unref</a> (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingIP4Config.html#nm-ip4-route-compare" title="nm_ip4_route_compare ()">nm_ip4_route_compare</a> (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
@@ -201,6 +204,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingIP4Config.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties related to IPv4 addressing, routing, and Domain Name Service
</p>
</div>
<div class="refsect1">
@@ -215,16 +220,40 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingIP4ConfigError"></a><h3>enum NMSettingIP4ConfigError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN = 0,
NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY,
NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD
} NMSettingIP4ConfigError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-IP4-CONFIG-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP4-CONFIG-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP4-CONFIG-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP4-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD</code></span></p></td>
+<td>the property's value is
+not valid with the given IP4 method
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -247,7 +276,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-ip4-config-error-quark"></a><h3>nm_setting_ip4_config_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_ip4_config_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -351,6 +388,9 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_IP4_CONFIG_METHOD_AUTO "auto"
</pre>
<p>
+IPv4 configuration should be automatically determined via a method appropriate
+for the hardware interface, ie DHCP or PPP or some other device-specific
+manner.
</p>
</div>
<hr>
@@ -359,6 +399,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL "link-local"
</pre>
<p>
+IPv4 configuration should be automatically configured for link-local-only
+operation.
</p>
</div>
<hr>
@@ -367,6 +409,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_IP4_CONFIG_METHOD_MANUAL "manual"
</pre>
<p>
+All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified
+in the setting's properties.
</p>
</div>
<hr>
@@ -375,6 +419,12 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_IP4_CONFIG_METHOD_SHARED "shared"
</pre>
<p>
+This connection specifies configuration that allows other computers to
+connect through it to the default network (usually the Internet). The
+connection's interface will be assigned a private address, and a DHCP server,
+caching DNS server, and Network Address Translation (NAT) functionality will
+be started on this connection's interface to allow other devices to connect
+through that interface to the default network.
</p>
</div>
<hr>
@@ -383,6 +433,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_IP4_CONFIG_METHOD_DISABLED "disabled"
</pre>
<p>
+This connection does not use or require IPv4 address and it should be disabled.
</p>
</div>
<hr>
@@ -405,28 +456,71 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-ip4-address-new"></a><h3>nm_ip4_address_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="returnvalue">NMIP4Address</span></a> * nm_ip4_address_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates and returns a new <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-dup"></a><h3>nm_ip4_address_dup ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="returnvalue">NMIP4Address</span></a> * nm_ip4_address_dup (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *source</code></em>);</pre>
<p>
+Copies a given <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> object and returns the copy.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> object to copy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the copy of the given <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-ref"></a><h3>nm_ip4_address_ref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_address_ref (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Increases the reference count of the object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-unref"></a><h3>nm_ip4_address_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_address_unref (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -434,14 +528,49 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_ip4_address_compare (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *other</code></em>);</pre>
<p>
+Determines if two <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> objects contain the same values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> to compare <em class="parameter"><code>address</code></em> to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the objects contain the same values, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if they do not.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-get-address"></a><h3>nm_ip4_address_get_address ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_address_get_address (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv4 address property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -449,14 +578,45 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_address_set_address (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> addr</code></em>);</pre>
<p>
+Sets the IPv4 address property of this object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>addr</code></em> :</span></p></td>
+<td>the IPv4 address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-get-prefix"></a><h3>nm_ip4_address_get_prefix ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_address_get_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv4 address prefix (ie "24" or "30" etc) property of this address
+object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 address prefix</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -464,14 +624,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_address_set_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> prefix</code></em>);</pre>
<p>
+Sets the IPv4 address prefix.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
+<td>the address prefix, a number between 1 and 32 inclusive</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-address-get-gateway"></a><h3>nm_ip4_address_get_gateway ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_address_get_gateway (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv4 default gateway property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 gateway address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -479,7 +669,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_address_set_gateway (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> gateway</code></em>);</pre>
<p>
+Sets the IPv4 default gateway property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>gateway</code></em> :</span></p></td>
+<td>the IPv4 default gateway in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -501,28 +706,71 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-ip4-route-new"></a><h3>nm_ip4_route_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * nm_ip4_route_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates and returns a new <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-dup"></a><h3>nm_ip4_route_dup ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * nm_ip4_route_dup (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * nm_ip4_route_dup (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *source</code></em>);</pre>
<p>
+Copies a given <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> object and returns the copy.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> object to copy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the copy of the given <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-ref"></a><h3>nm_ip4_route_ref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_ref (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Increases the reference count of the object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-unref"></a><h3>nm_ip4_route_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_unref (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -530,14 +778,49 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_ip4_route_compare (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *other</code></em>);</pre>
<p>
+Determines if two <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> objects contain the same values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> to compare <em class="parameter"><code>route</code></em> to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the objects contain the same values, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if they do not.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-get-dest"></a><h3>nm_ip4_route_get_dest ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_route_get_dest (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv4 destination address property of this route object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -545,14 +828,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_set_dest (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dest</code></em>);</pre>
<p>
+Sets the IPv4 destination address property of this route object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>the destination address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-get-prefix"></a><h3>nm_ip4_route_get_prefix ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_route_get_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv4 prefix (ie "24" or "30" etc) of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 prefix</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -560,14 +873,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_set_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> prefix</code></em>);</pre>
<p>
+Sets the IPv4 prefix of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
+<td>the prefix, a number between 1 and 32 inclusive</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-get-next-hop"></a><h3>nm_ip4_route_get_next_hop ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_route_get_next_hop (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv4 address of the next hop of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 address in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -575,14 +918,45 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_set_next_hop (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> next_hop</code></em>);</pre>
<p>
+Sets the IPv4 address of the next hop of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>next_hop</code></em> :</span></p></td>
+<td>the IPv4 address of the next hop in network byte order</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip4-route-get-metric"></a><h3>nm_ip4_route_get_metric ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip4_route_get_metric (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Gets the route metric property of this route object; lower values indicate
+"better" or more preferred routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the route metric</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -590,7 +964,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip4_route_set_metric (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> metric</code></em>);</pre>
<p>
+Sets the route metric property of this route object; lower values indicate
+"better" or more preferred routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>metric</code></em> :</span></p></td>
+<td>the route metric</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -627,29 +1017,80 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-ip4-config-new"></a><h3>nm_setting_ip4_config_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_ip4_config_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-method"></a><h3>nm_setting_ip4_config_get_method ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip4_config_get_method (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--method" title='The "method" property'><span class="type">"method"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-num-dns"></a><h3>nm_setting_ip4_config_get_num_dns ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip4_config_get_num_dns (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured DNS servers</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-dns"></a><h3>nm_setting_ip4_config_get_dns ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip4_config_get_dns (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS server to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv4 address (network byte order) of the DNS server at index
+<em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -657,7 +1098,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_add_dns (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dns</code></em>);</pre>
<p>
+Adds a new DNS server to the setting.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dns</code></em> :</span></p></td>
+<td>the IPv4 address (network byte order) of the DNS server to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the DNS server was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the server was already
+known</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -665,22 +1127,58 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_remove_dns (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the DNS server at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS server to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-clear-dns"></a><h3>nm_setting_ip4_config_clear_dns ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_clear_dns (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured DNS servers.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-num-dns-searches"></a><h3>nm_setting_ip4_config_get_num_dns_searches ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip4_config_get_num_dns_searches
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured DNS search domains</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -688,8 +1186,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip4_config_get_dns_search
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS search domain to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the DNS search domain at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -698,7 +1213,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *dns_search</code></em>);</pre>
<p>
+Adds a new DNS search domain to the setting.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dns_search</code></em> :</span></p></td>
+<td>the search domain to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the DNS search domain was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the search
+domain was already known</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -707,7 +1243,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the DNS search domain at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS search domain</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -715,23 +1266,61 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_clear_dns_searches
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured DNS search domains.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-num-addresses"></a><h3>nm_setting_ip4_config_get_num_addresses ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip4_config_get_num_addresses
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured addresses</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-address"></a><h3>nm_setting_ip4_config_get_address ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="returnvalue">NMIP4Address</span></a> * nm_setting_ip4_config_get_address (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the address to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the address at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -739,7 +1328,29 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_add_address (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Address"><span class="type">NMIP4Address</span></a> *address</code></em>);</pre>
<p>
+Adds a new IPv4 address and associated information to the setting. The
+given address is duplicated internally and is not changed by this function.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the new address to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the address was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the address was already
+known.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -748,7 +1359,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the address at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the address to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -756,23 +1382,61 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_clear_addresses
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured addresses.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-num-routes"></a><h3>nm_setting_ip4_config_get_num_routes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip4_config_get_num_routes
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured routes</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-route"></a><h3>nm_setting_ip4_config_get_route ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="returnvalue">NMIP4Route</span></a> * nm_setting_ip4_config_get_route (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the route to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the route at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -780,7 +1444,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_add_route (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html#NMIP4Route"><span class="type">NMIP4Route</span></a> *route</code></em>);</pre>
<p>
+Adds a new IPv4 route and associated information to the setting. The
+given route is duplicated internally and is not changed by this function.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the route to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the route was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the route was already known.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -788,14 +1473,38 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_remove_route (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the route at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the route</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-clear-routes"></a><h3>nm_setting_ip4_config_clear_routes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip4_config_clear_routes (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -803,7 +1512,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_get_ignore_auto_routes
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--ignore-auto-routes" title='The "ignore-auto-routes" property'><span class="type">"ignore-auto-routes"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if automatically configured (ie via DHCP) routes should be
+ignored.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -811,7 +1538,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_get_ignore_auto_dns
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--ignore-auto-dns" title='The "ignore-auto-dns" property'><span class="type">"ignore-auto-dns"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if automatically configured (ie via DHCP) DNS information
+should be ignored.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -819,7 +1564,24 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip4_config_get_dhcp_client_id
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--dhcp-client-id" title='The "dhcp-client-id" property'><span class="type">"dhcp-client-id"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the configured Client ID to send to the DHCP server when requesting
+addresses via DHCP.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -827,7 +1589,26 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_get_dhcp_send_hostname
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--dhcp-send-hostname" title='The "dhcp-send-hostname" property'><span class="type">"dhcp-send-hostname"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if NetworkManager should send the machine hostname to the
+DHCP server when requesting addresses to allow the server to automatically
+update DNS information for this machine.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -835,7 +1616,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip4_config_get_dhcp_hostname
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--dhcp-hostname" title='The "dhcp-hostname" property'><span class="type">"dhcp-hostname"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the configured hostname to send to the DHCP server</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -843,14 +1640,50 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_get_never_default
(<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--never-default" title='The "never-default" property'><span class="type">"never-default"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if this connection should never be the default connection
+for IPv4 addressing</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip4-config-get-may-fail"></a><h3>nm_setting_ip4_config_get_may_fail ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip4_config_get_may_fail (<em class="parameter"><code><a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--may-fail" title='The "may-fail" property'><span class="type">"may-fail"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config"><span class="type">NMSettingIP4Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if this connection doesn't require IPv4 addressing to complete
+for the connection to succeed.</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
diff --git a/docs/libnm-util/html/NMSettingIP6Config.html b/docs/libnm-util/html/NMSettingIP6Config.html
index 060c80fe2..0fe4cc5b2 100644
--- a/docs/libnm-util/html/NMSettingIP6Config.html
+++ b/docs/libnm-util/html/NMSettingIP6Config.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingIP6Config.top_of_page"></a>NMSettingIP6Config</span></h2>
-<p>NMSettingIP6Config</p>
+<p>NMSettingIP6Config — Describes IPv6 addressing, routing, and name service properties</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingIP6Config.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingIP6ConfigError"></a><a name="NMIP6Address"></a><a name="NMIP6Route"></a><pre class="synopsis">#define <a class="link" href="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-SETTING-NAME:CAPS" title="NM_SETTING_IP6_CONFIG_SETTING_NAME">NM_SETTING_IP6_CONFIG_SETTING_NAME</a>
+<a name="NMSettingIP6ConfigError"></a><a name="NMIP6Address"></a><a name="NMIP6Route"></a><pre class="synopsis">
+#include &lt;nm-setting-ip6-config.h&gt;
+
+#define <a class="link" href="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-SETTING-NAME:CAPS" title="NM_SETTING_IP6_CONFIG_SETTING_NAME">NM_SETTING_IP6_CONFIG_SETTING_NAME</a>
enum <a class="link" href="NMSettingIP6Config.html#NMSettingIP6ConfigError">NMSettingIP6ConfigError</a>;
#define <a class="link" href="NMSettingIP6Config.html#NM-TYPE-SETTING-IP6-CONFIG-ERROR:CAPS" title="NM_TYPE_SETTING_IP6_CONFIG_ERROR">NM_TYPE_SETTING_IP6_CONFIG_ERROR</a>
#define <a class="link" href="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR:CAPS" title="NM_SETTING_IP6_CONFIG_ERROR">NM_SETTING_IP6_CONFIG_ERROR</a>
@@ -77,11 +80,11 @@ const struct <span class="returnvalue">in6_addr</span> * <a class="link" href="N
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> prefix</code></em>);
const struct <span class="returnvalue">in6_addr</span> * <a class="link" href="NMSettingIP6Config.html#nm-ip6-address-get-gateway" title="nm_ip6_address_get_gateway ()">nm_ip6_address_get_gateway</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSettingIP6Config.html#nm-ip6-address-set-gateway" title="nm_ip6_address_set_gateway ()">nm_ip6_address_set_gateway</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>,
- <em class="parameter"><code>const <span class="type">struct in6_addr</span> *gw</code></em>);
+ <em class="parameter"><code>const <span class="type">struct in6_addr</span> *gateway</code></em>);
typedef <a class="link" href="NMSettingIP6Config.html#NMIP6Route">NMIP6Route</a>;
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-get-type" title="nm_ip6_route_get_type ()">nm_ip6_route_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-new" title="nm_ip6_route_new ()">nm_ip6_route_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-dup" title="nm_ip6_route_dup ()">nm_ip6_route_dup</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);
+<a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-dup" title="nm_ip6_route_dup ()">nm_ip6_route_dup</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *source</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-ref" title="nm_ip6_route_ref ()">nm_ip6_route_ref</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-unref" title="nm_ip6_route_unref ()">nm_ip6_route_unref</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingIP6Config.html#nm-ip6-route-compare" title="nm_ip6_route_compare ()">nm_ip6_route_compare</a> (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
@@ -192,6 +195,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<div class="refsect1">
<a name="NMSettingIP6Config.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties related to IPv6 addressing, routing, and Domain Name Service
</p>
</div>
<div class="refsect1">
@@ -206,16 +211,40 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<hr>
<div class="refsect2">
<a name="NMSettingIP6ConfigError"></a><h3>enum NMSettingIP6ConfigError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN = 0,
NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY,
NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY,
NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD
} NMSettingIP6ConfigError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-IP6-CONFIG-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP6-CONFIG-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP6-CONFIG-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-IP6-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS"></a><span class="term"><code class="literal">NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD</code></span></p></td>
+<td>the property's value is
+not valid with the given IPv6 method
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -238,7 +267,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<a name="nm-setting-ip6-config-error-quark"></a><h3>nm_setting_ip6_config_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_ip6_config_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -318,6 +355,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_IGNORE "ignore"
</pre>
<p>
+IPv6 is not required or is handled by some other mechanism, and NetworkManager
+should not configure IPv6 for this connection.
</p>
</div>
<hr>
@@ -326,6 +365,9 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_AUTO "auto"
</pre>
<p>
+IPv6 configuration should be automatically determined via a method appropriate
+for the hardware interface, ie router advertisements, DHCP, or PPP or some
+other device-specific manner.
</p>
</div>
<hr>
@@ -334,6 +376,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_DHCP "dhcp"
</pre>
<p>
+IPv6 configuration should be automatically determined via DHCPv6 only and
+router advertisements should be ignored.
</p>
</div>
<hr>
@@ -342,6 +386,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL "link-local"
</pre>
<p>
+IPv6 configuration should be automatically configured for link-local-only
+operation.
</p>
</div>
<hr>
@@ -350,6 +396,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_MANUAL "manual"
</pre>
<p>
+All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified
+in the setting's properties.
</p>
</div>
<hr>
@@ -358,6 +406,13 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">#define NM_SETTING_IP6_CONFIG_METHOD_SHARED "shared"
</pre>
<p>
+This connection specifies configuration that allows other computers to
+connect through it to the default network (usually the Internet). The
+connection's interface will be assigned a private address, and router
+advertisements, a caching DNS server, and Network Address Translation (NAT)
+functionality will be started on this connection's interface to allow other
+devices to connect through that interface to the default network. (not yet
+supported for IPv6)
</p>
</div>
<hr>
@@ -380,28 +435,71 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<a name="nm-ip6-address-new"></a><h3>nm_ip6_address_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="returnvalue">NMIP6Address</span></a> * nm_ip6_address_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates and returns a new <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-dup"></a><h3>nm_ip6_address_dup ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="returnvalue">NMIP6Address</span></a> * nm_ip6_address_dup (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *source</code></em>);</pre>
<p>
+Copies a given <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> object and returns the copy.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> object to copy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the copy of the given <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-ref"></a><h3>nm_ip6_address_ref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_address_ref (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Increases the reference count of the object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-unref"></a><h3>nm_ip6_address_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_address_unref (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -409,14 +507,50 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_ip6_address_compare (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *other</code></em>);</pre>
<p>
+Determines if two <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> objects contain the same values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> to compare <em class="parameter"><code>address</code></em> to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the objects contain the same values, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if they do not.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-get-address"></a><h3>nm_ip6_address_get_address ()</h3>
<pre class="programlisting">const struct <span class="returnvalue">in6_addr</span> * nm_ip6_address_get_address (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv6 address property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 address. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -424,14 +558,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_address_set_address (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>,
<em class="parameter"><code>const <span class="type">struct in6_addr</span> *addr</code></em>);</pre>
<p>
+Sets the IPv6 address property of this object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>addr</code></em> :</span></p></td>
+<td>the IPv6 address</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-get-prefix"></a><h3>nm_ip6_address_get_prefix ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip6_address_get_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv6 address prefix property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 address prefix</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -439,22 +603,68 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_address_set_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> prefix</code></em>);</pre>
<p>
+Sets the IPv6 address prefix.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
+<td>the address prefix, a number between 0 and 128 inclusive</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-get-gateway"></a><h3>nm_ip6_address_get_gateway ()</h3>
<pre class="programlisting">const struct <span class="returnvalue">in6_addr</span> * nm_ip6_address_get_gateway (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Gets the IPv6 default gateway property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 gateway address. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-address-set-gateway"></a><h3>nm_ip6_address_set_gateway ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_address_set_gateway (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>,
- <em class="parameter"><code>const <span class="type">struct in6_addr</span> *gw</code></em>);</pre>
+ <em class="parameter"><code>const <span class="type">struct in6_addr</span> *gateway</code></em>);</pre>
<p>
+Sets the IPv6 default gateway property of this address object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>gateway</code></em> :</span></p></td>
+<td>the IPv6 default gateway</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -476,28 +686,71 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<a name="nm-ip6-route-new"></a><h3>nm_ip6_route_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * nm_ip6_route_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates and returns a new <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-dup"></a><h3>nm_ip6_route_dup ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * nm_ip6_route_dup (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * nm_ip6_route_dup (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *source</code></em>);</pre>
<p>
+Copies a given <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> object and returns the copy.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> object to copy</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the copy of the given <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-ref"></a><h3>nm_ip6_route_ref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_ref (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Increases the reference count of the object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-unref"></a><h3>nm_ip6_route_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_unref (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -505,14 +758,49 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_ip6_route_compare (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *other</code></em>);</pre>
<p>
+Determines if two <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> objects contain the same values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>other</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> to compare <em class="parameter"><code>route</code></em> to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the objects contain the same values, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if they do not.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-get-dest"></a><h3>nm_ip6_route_get_dest ()</h3>
<pre class="programlisting">const struct <span class="returnvalue">in6_addr</span> * nm_ip6_route_get_dest (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv6 destination address property of this route object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 address</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -520,14 +808,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_set_dest (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
<em class="parameter"><code>const <span class="type">struct in6_addr</span> *dest</code></em>);</pre>
<p>
+Sets the IPv6 destination address property of this route object.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>the destination address</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-get-prefix"></a><h3>nm_ip6_route_get_prefix ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip6_route_get_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv6 prefix (ie "32" or "64" etc) of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 prefix</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -535,14 +853,44 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_set_prefix (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> prefix</code></em>);</pre>
<p>
+Sets the IPv6 prefix of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prefix</code></em> :</span></p></td>
+<td>the prefix, a number between 1 and 128 inclusive</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-get-next-hop"></a><h3>nm_ip6_route_get_next_hop ()</h3>
<pre class="programlisting">const struct <span class="returnvalue">in6_addr</span> * nm_ip6_route_get_next_hop (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Gets the IPv6 address of the next hop of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 address</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -550,14 +898,45 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_set_next_hop (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
<em class="parameter"><code>const <span class="type">struct in6_addr</span> *next_hop</code></em>);</pre>
<p>
+Sets the IPv6 address of the next hop of this route.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>next_hop</code></em> :</span></p></td>
+<td>the IPv6 address of the next hop</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-ip6-route-get-metric"></a><h3>nm_ip6_route_get_metric ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_ip6_route_get_metric (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Gets the route metric property of this route object; lower values indicate
+"better" or more preferred routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the route metric</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -565,7 +944,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_ip6_route_set_metric (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> metric</code></em>);</pre>
<p>
+Sets the route metric property of this route object; lower values indicate
+"better" or more preferred routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>metric</code></em> :</span></p></td>
+<td>the route metric</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -602,30 +997,80 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<a name="nm-setting-ip6-config-new"></a><h3>nm_setting_ip6_config_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_ip6_config_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-method"></a><h3>nm_setting_ip6_config_get_method ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip6_config_get_method
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html#NMSettingIP6Config--method" title='The "method" property'><span class="type">"method"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-num-dns"></a><h3>nm_setting_ip6_config_get_num_dns ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip6_config_get_num_dns (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured DNS servers</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-dns"></a><h3>nm_setting_ip6_config_get_dns ()</h3>
<pre class="programlisting">const struct <span class="returnvalue">in6_addr</span> * nm_setting_ip6_config_get_dns (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS server to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IPv6 address of the DNS server at index <em class="parameter"><code>i</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -633,7 +1078,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_add_dns (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">struct in6_addr</span> *dns</code></em>);</pre>
<p>
+Adds a new DNS server to the setting.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dns</code></em> :</span></p></td>
+<td>the IPv6 address of the DNS server to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the DNS server was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the server was already
+known</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -641,22 +1107,58 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_remove_dns (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the DNS server at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS server to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-clear-dns"></a><h3>nm_setting_ip6_config_clear_dns ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_clear_dns (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured DNS servers.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-num-dns-searches"></a><h3>nm_setting_ip6_config_get_num_dns_searches ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip6_config_get_num_dns_searches
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured DNS search domains</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -664,8 +1166,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_ip6_config_get_dns_search
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS search domain to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the DNS search domain at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -674,7 +1193,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *dns_search</code></em>);</pre>
<p>
+Adds a new DNS search domain to the setting.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dns_search</code></em> :</span></p></td>
+<td>the search domain to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the DNS search domain was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the search
+domain was already known</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -683,7 +1223,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the DNS search domain at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the DNS search domain</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -691,15 +1246,36 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_clear_dns_searches
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured DNS search domains.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-num-addresses"></a><h3>nm_setting_ip6_config_get_num_addresses ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip6_config_get_num_addresses
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured addresses</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -707,8 +1283,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="returnvalue">NMIP6Address</span></a> * nm_setting_ip6_config_get_address
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the address to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the address at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -716,7 +1309,29 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_add_address (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Address"><span class="type">NMIP6Address</span></a> *address</code></em>);</pre>
<p>
+Adds a new IPv6 address and associated information to the setting. The
+given address is duplicated internally and is not changed by this function.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>the new address to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the address was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the address was already
+known.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -725,7 +1340,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the address at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the address to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -733,23 +1363,61 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_clear_addresses
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured addresses.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-num-routes"></a><h3>nm_setting_ip6_config_get_num_routes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_ip6_config_get_num_routes
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of configured routes</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-route"></a><h3>nm_setting_ip6_config_get_route ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="returnvalue">NMIP6Route</span></a> * nm_setting_ip6_config_get_route (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the route to return</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the route at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -757,7 +1425,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_add_route (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html#NMIP6Route"><span class="type">NMIP6Route</span></a> *route</code></em>);</pre>
<p>
+Adds a new IPv6 route and associated information to the setting. The
+given route is duplicated internally and is not changed by this function.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>route</code></em> :</span></p></td>
+<td>the route to add</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the route was added; <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the route was already known.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -765,14 +1454,38 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_remove_route (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes the route at index <em class="parameter"><code>i</code></em>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index number of the route</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-clear-routes"></a><h3>nm_setting_ip6_config_clear_routes ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_ip6_config_clear_routes (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Removes all configured routes.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -780,7 +1493,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_get_ignore_auto_routes
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP6Config.html#NMSettingIP6Config--ignore-auto-routes" title='The "ignore-auto-routes" property'><span class="type">"ignore-auto-routes"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if automatically configured (ie via DHCP) routes should be
+ignored.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -788,7 +1519,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_get_ignore_auto_dns
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP6Config.html#NMSettingIP6Config--ignore-auto-dns" title='The "ignore-auto-dns" property'><span class="type">"ignore-auto-dns"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if automatically configured (ie via DHCP or router
+advertisements) DNS information should be ignored.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -796,14 +1545,50 @@ const <span class="returnvalue">char</span> * <a class="link" href="N
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_get_never_default
(<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP6Config.html#NMSettingIP6Config--never-default" title='The "never-default" property'><span class="type">"never-default"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if this connection should never be the default connection
+for IPv6 addressing</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-ip6-config-get-may-fail"></a><h3>nm_setting_ip6_config_get_may_fail ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_ip6_config_get_may_fail (<em class="parameter"><code><a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a> *setting</code></em>);</pre>
<p>
+Returns the value contained in the <a class="link" href="NMSettingIP6Config.html#NMSettingIP6Config--may-fail" title='The "may-fail" property'><span class="type">"may-fail"</span></a>
+property.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config"><span class="type">NMSettingIP6Config</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if this connection doesn't require IPv6 addressing to complete
+for the connection to succeed.</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
@@ -886,7 +1671,7 @@ example, in IPv4-only networks, setting this property to TRUE allows
the overall network configuration to succeed if IPv6 configuration fails
but IPv4 configuration completes successfully.
</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
diff --git a/docs/libnm-util/html/NMSettingOlpcMesh.html b/docs/libnm-util/html/NMSettingOlpcMesh.html
index 43ea8d274..03a1fd221 100644
--- a/docs/libnm-util/html/NMSettingOlpcMesh.html
+++ b/docs/libnm-util/html/NMSettingOlpcMesh.html
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="up" href="ch01.html" title="libnm-util API Reference">
-<link rel="prev" href="NMSettingGsm.html" title="NMSettingGsm">
+<link rel="prev" href="NMSettingWimax.html" title="NMSettingWimax">
<link rel="next" href="NMSetting8021x.html" title="NMSetting8021x">
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -14,7 +14,7 @@
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="NMSettingGsm.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="NMSettingWimax.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libnm-util Reference Manual</th>
diff --git a/docs/libnm-util/html/NMSettingPPP.html b/docs/libnm-util/html/NMSettingPPP.html
index eade54a59..ea9a7c78a 100644
--- a/docs/libnm-util/html/NMSettingPPP.html
+++ b/docs/libnm-util/html/NMSettingPPP.html
@@ -35,13 +35,17 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingPPP.top_of_page"></a>NMSettingPPP</span></h2>
-<p>NMSettingPPP</p>
+<p>NMSettingPPP — Describes connection properties for devices/networks
+that require PPP to deliver IP capability</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingPPP.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingPPPError"></a><pre class="synopsis">#define <a class="link" href="NMSettingPPP.html#NM-SETTING-PPP-SETTING-NAME:CAPS" title="NM_SETTING_PPP_SETTING_NAME">NM_SETTING_PPP_SETTING_NAME</a>
+<a name="NMSettingPPPError"></a><pre class="synopsis">
+#include &lt;nm-setting-ppp.h&gt;
+
+#define <a class="link" href="NMSettingPPP.html#NM-SETTING-PPP-SETTING-NAME:CAPS" title="NM_SETTING_PPP_SETTING_NAME">NM_SETTING_PPP_SETTING_NAME</a>
enum <a class="link" href="NMSettingPPP.html#NMSettingPPPError">NMSettingPPPError</a>;
#define <a class="link" href="NMSettingPPP.html#NM-TYPE-SETTING-PPP-ERROR:CAPS" title="NM_TYPE_SETTING_PPP_ERROR">NM_TYPE_SETTING_PPP_ERROR</a>
#define <a class="link" href="NMSettingPPP.html#NM-SETTING-PPP-ERROR:CAPS" title="NM_SETTING_PPP_ERROR">NM_SETTING_PPP_ERROR</a>
@@ -127,6 +131,9 @@ enum <a class="link" href="NMSettingPPP.html#NMSettingPPPError">N
<div class="refsect1">
<a name="NMSettingPPP.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties
+necessary for connection to networks that require PPP transport, like PPPoE
+cable and DSL modems and some mobile broadband devices.
</p>
</div>
<div class="refsect1">
@@ -141,16 +148,40 @@ enum <a class="link" href="NMSettingPPP.html#NMSettingPPPError">N
<hr>
<div class="refsect2">
<a name="NMSettingPPPError"></a><h3>enum NMSettingPPPError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_PPP_ERROR_UNKNOWN = 0,
NM_SETTING_PPP_ERROR_INVALID_PROPERTY,
NM_SETTING_PPP_ERROR_MISSING_PROPERTY,
NM_SETTING_PPP_ERROR_REQUIRE_MPPE_NOT_ALLOWED
} NMSettingPPPError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-PPP-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPP_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPP-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPP_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPP-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPP_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPP-ERROR-REQUIRE-MPPE-NOT-ALLOWED:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPP_ERROR_REQUIRE_MPPE_NOT_ALLOWED</code></span></p></td>
+<td>requiring MPPE is not compatible
+with other setting configuration parameters
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -173,7 +204,15 @@ enum <a class="link" href="NMSettingPPP.html#NMSettingPPPError">N
<a name="nm-setting-ppp-error-quark"></a><h3>nm_setting_ppp_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_ppp_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -354,7 +393,16 @@ enum <a class="link" href="NMSettingPPP.html#NMSettingPPPError">N
<a name="nm-setting-ppp-new"></a><h3>nm_setting_ppp_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_ppp_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
diff --git a/docs/libnm-util/html/NMSettingPPPOE.html b/docs/libnm-util/html/NMSettingPPPOE.html
index 876692547..6ea0af492 100644
--- a/docs/libnm-util/html/NMSettingPPPOE.html
+++ b/docs/libnm-util/html/NMSettingPPPOE.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingPPPOE.top_of_page"></a>NMSettingPPPOE</span></h2>
-<p>NMSettingPPPOE</p>
+<p>NMSettingPPPOE — Describes PPPoE connection properties</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingPPPOE.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingPPPOEError"></a><pre class="synopsis">#define <a class="link" href="NMSettingPPPOE.html#NM-SETTING-PPPOE-SETTING-NAME:CAPS" title="NM_SETTING_PPPOE_SETTING_NAME">NM_SETTING_PPPOE_SETTING_NAME</a>
+<a name="NMSettingPPPOEError"></a><pre class="synopsis">
+#include &lt;nm-setting-pppoe.h&gt;
+
+#define <a class="link" href="NMSettingPPPOE.html#NM-SETTING-PPPOE-SETTING-NAME:CAPS" title="NM_SETTING_PPPOE_SETTING_NAME">NM_SETTING_PPPOE_SETTING_NAME</a>
enum <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOEError">NMSettingPPPOEError</a>;
#define <a class="link" href="NMSettingPPPOE.html#NM-TYPE-SETTING-PPPOE-ERROR:CAPS" title="NM_TYPE_SETTING_PPPOE_ERROR">NM_TYPE_SETTING_PPPOE_ERROR</a>
#define <a class="link" href="NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR:CAPS" title="NM_SETTING_PPPOE_ERROR">NM_SETTING_PPPOE_ERROR</a>
@@ -85,6 +88,9 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingPPPOE.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties necessary for connection to networks that require PPPoE connections
+to provide IP transport, for example cable or DSL modems.
</p>
</div>
<div class="refsect1">
@@ -99,16 +105,40 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingPPPOEError"></a><h3>enum NMSettingPPPOEError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_PPPOE_ERROR_UNKNOWN = 0,
NM_SETTING_PPPOE_ERROR_INVALID_PROPERTY,
NM_SETTING_PPPOE_ERROR_MISSING_PROPERTY,
NM_SETTING_PPPOE_ERROR_MISSING_PPP_SETTING
} NMSettingPPPOEError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-PPPOE-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPPOE_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPPOE-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPPOE_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPPOE-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPPOE_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-PPPOE-ERROR-MISSING-PPP-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_PPPOE_ERROR_MISSING_PPP_SETTING</code></span></p></td>
+<td>the connection
+did not contain a required PPP setting for PPP related options
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -131,7 +161,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-pppoe-error-quark"></a><h3>nm_setting_pppoe_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_pppoe_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -200,14 +238,35 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-pppoe-new"></a><h3>nm_setting_pppoe_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_pppoe_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-pppoe-get-service"></a><h3>nm_setting_pppoe_get_service ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_pppoe_get_service (<em class="parameter"><code><a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE"><span class="type">NMSettingPPPOE</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingPPPOE.html#NMSettingPPPOE--password" title='The "password" property'><span class="type">"password"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
diff --git a/docs/libnm-util/html/NMSettingSerial.html b/docs/libnm-util/html/NMSettingSerial.html
index 5e5483ec0..0340eb261 100644
--- a/docs/libnm-util/html/NMSettingSerial.html
+++ b/docs/libnm-util/html/NMSettingSerial.html
@@ -35,13 +35,17 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingSerial.top_of_page"></a>NMSettingSerial</span></h2>
-<p>NMSettingSerial</p>
+<p>NMSettingSerial — Describes connection properties for devices that use
+serial communications</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingSerial.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingSerialError"></a><pre class="synopsis">#define <a class="link" href="NMSettingSerial.html#NM-SETTING-SERIAL-SETTING-NAME:CAPS" title="NM_SETTING_SERIAL_SETTING_NAME">NM_SETTING_SERIAL_SETTING_NAME</a>
+<a name="NMSettingSerialError"></a><pre class="synopsis">
+#include &lt;nm-setting-serial.h&gt;
+
+#define <a class="link" href="NMSettingSerial.html#NM-SETTING-SERIAL-SETTING-NAME:CAPS" title="NM_SETTING_SERIAL_SETTING_NAME">NM_SETTING_SERIAL_SETTING_NAME</a>
enum <a class="link" href="NMSettingSerial.html#NMSettingSerialError">NMSettingSerialError</a>;
#define <a class="link" href="NMSettingSerial.html#NM-TYPE-SETTING-SERIAL-ERROR:CAPS" title="NM_TYPE_SETTING_SERIAL_ERROR">NM_TYPE_SETTING_SERIAL_ERROR</a>
#define <a class="link" href="NMSettingSerial.html#NM-SETTING-SERIAL-ERROR:CAPS" title="NM_SETTING_SERIAL_ERROR">NM_SETTING_SERIAL_ERROR</a>
@@ -87,6 +91,9 @@ enum <a class="link" href="NMSettingSerial.html#NMSettingSerialEr
<div class="refsect1">
<a name="NMSettingSerial.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties necessary for connections that may use serial communications,
+such as mobile broadband or analog telephone connections.
</p>
</div>
<div class="refsect1">
@@ -101,16 +108,40 @@ enum <a class="link" href="NMSettingSerial.html#NMSettingSerialEr
<hr>
<div class="refsect2">
<a name="NMSettingSerialError"></a><h3>enum NMSettingSerialError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_SERIAL_ERROR_UNKNOWN = 0,
NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY,
NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY,
NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING
} NMSettingSerialError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-SERIAL-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_SERIAL_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-SERIAL-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-SERIAL-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-SERIAL-ERROR-MISSING-PPP-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING</code></span></p></td>
+<td>one of the properties of the
+setting requires the connection to contain an <a class="link" href="NMSettingPPP.html" title="NMSettingPPP"><span class="type">NMSettingPPP</span></a> setting
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -133,7 +164,15 @@ enum <a class="link" href="NMSettingSerial.html#NMSettingSerialEr
<a name="nm-setting-serial-error-quark"></a><h3>nm_setting_serial_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_serial_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -210,42 +249,111 @@ enum <a class="link" href="NMSettingSerial.html#NMSettingSerialEr
<a name="nm-setting-serial-new"></a><h3>nm_setting_serial_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_serial_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-serial-get-baud"></a><h3>nm_setting_serial_get_baud ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> nm_setting_serial_get_baud (<em class="parameter"><code><a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html#NMSettingSerial--baud" title='The "baud" property'><span class="type">"baud"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-serial-get-bits"></a><h3>nm_setting_serial_get_bits ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> nm_setting_serial_get_bits (<em class="parameter"><code><a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html#NMSettingSerial--bits" title='The "bits" property'><span class="type">"bits"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-serial-get-parity"></a><h3>nm_setting_serial_get_parity ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> nm_setting_serial_get_parity (<em class="parameter"><code><a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html#NMSettingSerial--parity" title='The "parity" property'><span class="type">"parity"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-serial-get-stopbits"></a><h3>nm_setting_serial_get_stopbits ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> nm_setting_serial_get_stopbits (<em class="parameter"><code><a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html#NMSettingSerial--stopbits" title='The "stopbits" property'><span class="type">"stopbits"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-serial-get-send-delay"></a><h3>nm_setting_serial_get_send_delay ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> nm_setting_serial_get_send_delay (<em class="parameter"><code><a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html" title="NMSettingSerial"><span class="type">NMSettingSerial</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingSerial.html#NMSettingSerial--send-delay" title='The "send-delay" property'><span class="type">"send-delay"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
diff --git a/docs/libnm-util/html/NMSettingVPN.html b/docs/libnm-util/html/NMSettingVPN.html
index c2e4ce52f..1c6264d0d 100644
--- a/docs/libnm-util/html/NMSettingVPN.html
+++ b/docs/libnm-util/html/NMSettingVPN.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingVPN.top_of_page"></a>NMSettingVPN</span></h2>
-<p>NMSettingVPN</p>
+<p>NMSettingVPN — Describes connection properties for Virtual Private Networks</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingVPN.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingVpnError"></a><pre class="synopsis">#define <a class="link" href="NMSettingVPN.html#NM-SETTING-VPN-SETTING-NAME:CAPS" title="NM_SETTING_VPN_SETTING_NAME">NM_SETTING_VPN_SETTING_NAME</a>
+<a name="NMSettingVpnError"></a><pre class="synopsis">
+#include &lt;nm-setting-vpn.h&gt;
+
+#define <a class="link" href="NMSettingVPN.html#NM-SETTING-VPN-SETTING-NAME:CAPS" title="NM_SETTING_VPN_SETTING_NAME">NM_SETTING_VPN_SETTING_NAME</a>
enum <a class="link" href="NMSettingVPN.html#NMSettingVpnError">NMSettingVpnError</a>;
#define <a class="link" href="NMSettingVPN.html#NM-TYPE-SETTING-VPN-ERROR:CAPS" title="NM_TYPE_SETTING_VPN_ERROR">NM_TYPE_SETTING_VPN_ERROR</a>
#define <a class="link" href="NMSettingVPN.html#NM-SETTING-VPN-ERROR:CAPS" title="NM_SETTING_VPN_ERROR">NM_SETTING_VPN_ERROR</a>
@@ -105,6 +108,13 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingVPN.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties
+necessary for connection to Virtual Private Networks. NetworkManager uses
+a plugin architecture to allow easier use of new VPN types, and this
+setting abstracts the configuration for those plugins. Since the configuration
+options are only known to the VPN plugins themselves, the VPN configuration
+options are stored as key/value pairs of strings rather than GObject
+properties.
</p>
</div>
<div class="refsect1">
@@ -119,15 +129,33 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingVpnError"></a><h3>enum NMSettingVpnError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_VPN_ERROR_UNKNOWN = 0,
NM_SETTING_VPN_ERROR_INVALID_PROPERTY,
NM_SETTING_VPN_ERROR_MISSING_PROPERTY,
} NMSettingVpnError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-VPN-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VPN_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-VPN-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VPN_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-VPN-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_VPN_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -150,7 +178,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-vpn-error-quark"></a><h3>nm_setting_vpn_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_vpn_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -213,8 +249,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> (*NMVPNIterFunc) (<em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *value</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the name of the data or secret item</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>the value of the data or secret item</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data passed to <a class="link" href="NMSettingVPN.html#nm-setting-vpn-foreach-data-item" title="nm_setting_vpn_foreach_data_item ()"><code class="function">nm_setting_vpn_foreach_data_item()</code></a> or
+<a class="link" href="NMSettingVPN.html#nm-setting-vpn-foreach-secret" title="nm_setting_vpn_foreach_secret ()"><code class="function">nm_setting_vpn_foreach_secret()</code></a>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -228,21 +281,58 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-vpn-new"></a><h3>nm_setting_vpn_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_vpn_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-vpn-get-service-type"></a><h3>nm_setting_vpn_get_service_type ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vpn_get_service_type (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>);</pre>
<p>
+Returns the service name of the VPN, which identifies the specific VPN
+plugin that should be used to connect to this VPN.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the VPN plugin's service name</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-vpn-get-user-name"></a><h3>nm_setting_vpn_get_user_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vpn_get_user_name (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html#NMSettingVPN--user-name" title='The "user-name" property'><span class="type">"user-name"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -251,7 +341,30 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *item</code></em>);</pre>
<p>
+Establishes a relationship between <em class="parameter"><code>key</code></em> and <em class="parameter"><code>item</code></em> internally in the
+setting which may be retrieved later. Should not be used to store passwords
+or other secrets, which is what <a class="link" href="NMSettingVPN.html#nm-setting-vpn-add-secret" title="nm_setting_vpn_add_secret ()"><code class="function">nm_setting_vpn_add_secret()</code></a> is for.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a name that uniquely identifies the given value <em class="parameter"><code>item</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>item</code></em> :</span></p></td>
+<td>the value to be referenced by <em class="parameter"><code>key</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -259,7 +372,27 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vpn_get_data_item (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>
+Retrieves the data item of a key/value relationship previously established
+by <a class="link" href="NMSettingVPN.html#nm-setting-vpn-add-data-item" title="nm_setting_vpn_add_data_item ()"><code class="function">nm_setting_vpn_add_data_item()</code></a>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the name of the data item to retrieve</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the data item, if any</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -267,7 +400,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_vpn_remove_data_item (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>
+Deletes a key/value relationship previously established by
+<a class="link" href="NMSettingVPN.html#nm-setting-vpn-add-data-item" title="nm_setting_vpn_add_data_item ()"><code class="function">nm_setting_vpn_add_data_item()</code></a>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the name of the data item to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -308,7 +457,29 @@ during iteration will not be part of the iteration.
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *secret</code></em>);</pre>
<p>
+Establishes a relationship between <em class="parameter"><code>key</code></em> and <em class="parameter"><code>secret</code></em> internally in the
+setting which may be retrieved later.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>a name that uniquely identifies the given secret <em class="parameter"><code>secret</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>secret</code></em> :</span></p></td>
+<td>the secret to be referenced by <em class="parameter"><code>key</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -316,7 +487,27 @@ during iteration will not be part of the iteration.
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_vpn_get_secret (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>
+Retrieves the secret of a key/value relationship previously established
+by <a class="link" href="NMSettingVPN.html#nm-setting-vpn-add-secret" title="nm_setting_vpn_add_secret ()"><code class="function">nm_setting_vpn_add_secret()</code></a>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the name of the secret to retrieve</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the secret, if any</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -324,7 +515,23 @@ during iteration will not be part of the iteration.
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_vpn_remove_secret (<em class="parameter"><code><a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>
+Deletes a key/value relationship previously established by
+<a class="link" href="NMSettingVPN.html#nm-setting-vpn-add-secret" title="nm_setting_vpn_add_secret ()"><code class="function">nm_setting_vpn_add_secret()</code></a>.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingVPN.html" title="NMSettingVPN"><span class="type">NMSettingVPN</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the name of the secret to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -393,7 +600,7 @@ plugin.
<div class="refsect2">
<a name="NMSettingVPN--user-name"></a><h3>The <code class="literal">"user-name"</code> property</h3>
<pre class="programlisting"> "user-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
-<p>User name of the currently logged in user for connections provided by the user settings service. This name is provided to the VPN plugin to use in lieu of a custom username provided by that VPN plugins specific configuration. The VPN plugin itself decides which user name to use.</p>
+<p>If the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager will automatically supply the username of the user which requested the VPN connection.</p>
<p>Default value: NULL</p>
</div>
</div>
diff --git a/docs/libnm-util/html/NMSettingWimax.html b/docs/libnm-util/html/NMSettingWimax.html
new file mode 100644
index 000000000..919c9b0ab
--- /dev/null
+++ b/docs/libnm-util/html/NMSettingWimax.html
@@ -0,0 +1,288 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NMSettingWimax</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="libnm-util Reference Manual">
+<link rel="up" href="ch01.html" title="libnm-util API Reference">
+<link rel="prev" href="NMSettingGsm.html" title="NMSettingGsm">
+<link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
+<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="NMSettingGsm.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libnm-util Reference Manual</th>
+<td><a accesskey="n" href="NMSettingOlpcMesh.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#NMSettingWimax.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#NMSettingWimax.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMSettingWimax.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMSettingWimax.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="NMSettingWimax"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="NMSettingWimax.top_of_page"></a>NMSettingWimax</span></h2>
+<p>NMSettingWimax — Describes 802.16e Mobile WiMAX connection properties</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="NMSettingWimax.synopsis"></a><h2>Synopsis</h2>
+<a name="NMSettingWimaxError"></a><pre class="synopsis">
+#include &lt;nm-setting-wimax.h&gt;
+
+#define <a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-SETTING-NAME:CAPS" title="NM_SETTING_WIMAX_SETTING_NAME">NM_SETTING_WIMAX_SETTING_NAME</a>
+enum <a class="link" href="NMSettingWimax.html#NMSettingWimaxError">NMSettingWimaxError</a>;
+#define <a class="link" href="NMSettingWimax.html#NM-TYPE-SETTING-WIMAX-ERROR:CAPS" title="NM_TYPE_SETTING_WIMAX_ERROR">NM_TYPE_SETTING_WIMAX_ERROR</a>
+#define <a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR:CAPS" title="NM_SETTING_WIMAX_ERROR">NM_SETTING_WIMAX_ERROR</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="NMSettingWimax.html#nm-setting-wimax-error-quark" title="nm_setting_wimax_error_quark ()">nm_setting_wimax_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+#define <a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-NETWORK-NAME:CAPS" title="NM_SETTING_WIMAX_NETWORK_NAME">NM_SETTING_WIMAX_NETWORK_NAME</a>
+#define <a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-MAC-ADDRESS:CAPS" title="NM_SETTING_WIMAX_MAC_ADDRESS">NM_SETTING_WIMAX_MAC_ADDRESS</a>
+ <a class="link" href="NMSettingWimax.html#NMSettingWimax-struct" title="NMSettingWimax">NMSettingWimax</a>;
+ <a class="link" href="NMSettingWimax.html#NMSettingWimaxClass" title="NMSettingWimaxClass">NMSettingWimaxClass</a>;
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-type" title="nm_setting_wimax_get_type ()">nm_setting_wimax_get_type</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * <a class="link" href="NMSettingWimax.html#nm-setting-wimax-new" title="nm_setting_wimax_new ()">nm_setting_wimax_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-network-name" title="nm_setting_wimax_get_network_name ()">nm_setting_wimax_get_network_name</a> (<em class="parameter"><code><a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> *setting</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-mac-address" title="nm_setting_wimax_get_mac_address ()">nm_setting_wimax_get_mac_address</a> (<em class="parameter"><code><a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> *setting</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="NMSettingWimax.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ GEnum
+ +----NMSettingWimaxError
+</pre>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
+ +----NMSettingWimax
+</pre>
+</div>
+<div class="refsect1">
+<a name="NMSettingWimax.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMSettingWimax.html#NMSettingWimax--mac-address" title='The "mac-address" property'>mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write
+ "<a class="link" href="NMSettingWimax.html#NMSettingWimax--network-name" title='The "network-name" property'>network-name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="NMSettingWimax.description"></a><h2>Description</h2>
+<p>
+The <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties
+necessary for connection to 802.16e Mobile WiMAX networks.
+</p>
+</div>
+<div class="refsect1">
+<a name="NMSettingWimax.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="NM-SETTING-WIMAX-SETTING-NAME:CAPS"></a><h3>NM_SETTING_WIMAX_SETTING_NAME</h3>
+<pre class="programlisting">#define NM_SETTING_WIMAX_SETTING_NAME "wimax"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NMSettingWimaxError"></a><h3>enum NMSettingWimaxError</h3>
+<pre class="programlisting">typedef enum {
+ NM_SETTING_WIMAX_ERROR_UNKNOWN = 0,
+ NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY,
+ NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY
+} NMSettingWimaxError;
+</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-WIMAX-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIMAX_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIMAX-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIMAX-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-TYPE-SETTING-WIMAX-ERROR:CAPS"></a><h3>NM_TYPE_SETTING_WIMAX_ERROR</h3>
+<pre class="programlisting">#define NM_TYPE_SETTING_WIMAX_ERROR (nm_setting_wimax_error_get_type ())
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-SETTING-WIMAX-ERROR:CAPS"></a><h3>NM_SETTING_WIMAX_ERROR</h3>
+<pre class="programlisting">#define NM_SETTING_WIMAX_ERROR nm_setting_wimax_error_quark ()
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wimax-error-quark"></a><h3>nm_setting_wimax_error_quark ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_wimax_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Registers an error quark for <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> if necessary.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> errors.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-SETTING-WIMAX-NETWORK-NAME:CAPS"></a><h3>NM_SETTING_WIMAX_NETWORK_NAME</h3>
+<pre class="programlisting">#define NM_SETTING_WIMAX_NETWORK_NAME "network-name"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NM-SETTING-WIMAX-MAC-ADDRESS:CAPS"></a><h3>NM_SETTING_WIMAX_MAC_ADDRESS</h3>
+<pre class="programlisting">#define NM_SETTING_WIMAX_MAC_ADDRESS "mac-address"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NMSettingWimax-struct"></a><h3>NMSettingWimax</h3>
+<pre class="programlisting">typedef struct _NMSettingWimax NMSettingWimax;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NMSettingWimaxClass"></a><h3>NMSettingWimaxClass</h3>
+<pre class="programlisting">typedef struct {
+ NMSettingClass parent;
+} NMSettingWimaxClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wimax-get-type"></a><h3>nm_setting_wimax_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> nm_setting_wimax_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wimax-new"></a><h3>nm_setting_wimax_new ()</h3>
+<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_wimax_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> object with default values.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> object</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wimax-get-network-name"></a><h3>nm_setting_wimax_get_network_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wimax_get_network_name (<em class="parameter"><code><a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> *setting</code></em>);</pre>
+<p>
+Returns the WiMAX NSP name (ex "Sprint" or "CLEAR") which identifies the
+specific WiMAX network this setting describes a connection to.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the WiMAX NSP name</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wimax-get-mac-address"></a><h3>nm_setting_wimax_get_mac_address ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wimax_get_mac_address (<em class="parameter"><code><a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a> *setting</code></em>);</pre>
+<p>
+Returns the MAC address of a WiMAX device which this connection is locked
+to.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWimax.html" title="NMSettingWimax"><span class="type">NMSettingWimax</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the MAC address</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="NMSettingWimax.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="NMSettingWimax--mac-address"></a><h3>The <code class="literal">"mac-address"</code> property</h3>
+<pre class="programlisting"> "mac-address" <span class="type">GArray_guchar_</span>* : Read / Write</pre>
+<p>
+If specified, this connection will only apply to the WiMAX device
+whose MAC address matches. This property does not change the MAC address
+of the device (known as MAC spoofing).
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="NMSettingWimax--network-name"></a><h3>The <code class="literal">"network-name"</code> property</h3>
+<pre class="programlisting"> "network-name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
+<p>
+Network Service Provider (NSP) name of the WiMAX network this connection
+should use.
+</p>
+<p>Default value: NULL</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.17</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingWired.html b/docs/libnm-util/html/NMSettingWired.html
index d079de3aa..dc01f9656 100644
--- a/docs/libnm-util/html/NMSettingWired.html
+++ b/docs/libnm-util/html/NMSettingWired.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingWired.top_of_page"></a>NMSettingWired</span></h2>
-<p>NMSettingWired</p>
+<p>NMSettingWired — Describes connection properties for Ethernet-based networks</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingWired.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingWiredError"></a><pre class="synopsis">#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-SETTING-NAME:CAPS" title="NM_SETTING_WIRED_SETTING_NAME">NM_SETTING_WIRED_SETTING_NAME</a>
+<a name="NMSettingWiredError"></a><pre class="synopsis">
+#include &lt;nm-setting-wired.h&gt;
+
+#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-SETTING-NAME:CAPS" title="NM_SETTING_WIRED_SETTING_NAME">NM_SETTING_WIRED_SETTING_NAME</a>
enum <a class="link" href="NMSettingWired.html#NMSettingWiredError">NMSettingWiredError</a>;
#define <a class="link" href="NMSettingWired.html#NM-TYPE-SETTING-WIRED-ERROR:CAPS" title="NM_TYPE_SETTING_WIRED_ERROR">NM_TYPE_SETTING_WIRED_ERROR</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-ERROR:CAPS" title="NM_SETTING_WIRED_ERROR">NM_SETTING_WIRED_ERROR</a>
@@ -52,6 +55,7 @@ enum <a class="link" href="NMSettingWired.html#NMSettingWiredErro
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-AUTO-NEGOTIATE:CAPS" title="NM_SETTING_WIRED_AUTO_NEGOTIATE">NM_SETTING_WIRED_AUTO_NEGOTIATE</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRED_MAC_ADDRESS">NM_SETTING_WIRED_MAC_ADDRESS</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-CLONED-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRED_CLONED_MAC_ADDRESS">NM_SETTING_WIRED_CLONED_MAC_ADDRESS</a>
+#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS" title="NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST">NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-MTU:CAPS" title="NM_SETTING_WIRED_MTU">NM_SETTING_WIRED_MTU</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-S390-SUBCHANNELS:CAPS" title="NM_SETTING_WIRED_S390_SUBCHANNELS">NM_SETTING_WIRED_S390_SUBCHANNELS</a>
#define <a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-S390-NETTYPE:CAPS" title="NM_SETTING_WIRED_S390_NETTYPE">NM_SETTING_WIRED_S390_NETTYPE</a>
@@ -67,6 +71,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWired.html#nm-setting-wired-get-mac-address" title="nm_setting_wired_get_mac_address ()">nm_setting_wired_get_mac_address</a> (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWired.html#nm-setting-wired-get-cloned-mac-address" title="nm_setting_wired_get_cloned_mac_address ()">nm_setting_wired_get_cloned_mac_address</a>
(<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist" title="nm_setting_wired_get_mac_address_blacklist ()">nm_setting_wired_get_mac_address_blacklist</a>
+ (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingWired.html#nm-setting-wired-get-mtu" title="nm_setting_wired_get_mtu ()">nm_setting_wired_get_mtu</a> (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> * <a class="link" href="NMSettingWired.html#nm-setting-wired-get-s390-subchannels" title="nm_setting_wired_get_s390_subchannels ()">nm_setting_wired_get_s390_subchannels</a>
(<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);
@@ -106,6 +112,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
"<a class="link" href="NMSettingWired.html#NMSettingWired--cloned-mac-address" title='The "cloned-mac-address" property'>cloned-mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write
"<a class="link" href="NMSettingWired.html#NMSettingWired--duplex" title='The "duplex" property'>duplex</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" title='The "mac-address" property'>mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write
+ "<a class="link" href="NMSettingWired.html#NMSettingWired--mac-address-blacklist" title='The "mac-address-blacklist" property'>mac-address-blacklist</a>" <span class="type">GSList_gchararray_</span>* : Read / Write
"<a class="link" href="NMSettingWired.html#NMSettingWired--mtu" title='The "mtu" property'>mtu</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct
"<a class="link" href="NMSettingWired.html#NMSettingWired--port" title='The "port" property'>port</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSettingWired.html#NMSettingWired--s390-nettype" title='The "s390-nettype" property'>s390-nettype</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
@@ -117,6 +124,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingWired.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties
+necessary for connection to Ethernet networks.
</p>
</div>
<div class="refsect1">
@@ -131,15 +140,33 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingWiredError"></a><h3>enum NMSettingWiredError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_WIRED_ERROR_UNKNOWN = 0,
NM_SETTING_WIRED_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRED_ERROR_MISSING_PROPERTY
} NMSettingWiredError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-WIRED-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRED_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRED-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRED_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRED-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRED_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -162,7 +189,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wired-error-quark"></a><h3>nm_setting_wired_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_wired_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -214,6 +249,14 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
</div>
<hr>
<div class="refsect2">
+<a name="NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS"></a><h3>NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST</h3>
+<pre class="programlisting">#define NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST "mac-address-blacklist"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NM-SETTING-WIRED-MTU:CAPS"></a><h3>NM_SETTING_WIRED_MTU</h3>
<pre class="programlisting">#define NM_SETTING_WIRED_MTU "mtu"
</pre>
@@ -279,57 +322,172 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wired-new"></a><h3>nm_setting_wired_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_wired_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-port"></a><h3>nm_setting_wired_get_port ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wired_get_port (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--port" title='The "port" property'><span class="type">"port"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-speed"></a><h3>nm_setting_wired_get_speed ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wired_get_speed (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--speed" title='The "speed" property'><span class="type">"speed"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-duplex"></a><h3>nm_setting_wired_get_duplex ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wired_get_duplex (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--duplex" title='The "duplex" property'><span class="type">"duplex"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-auto-negotiate"></a><h3>nm_setting_wired_get_auto_negotiate ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_wired_get_auto_negotiate (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--auto-negotiate" title='The "auto-negotiate" property'><span class="type">"auto-negotiate"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-mac-address"></a><h3>nm_setting_wired_get_mac_address ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wired_get_mac_address (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-cloned-mac-address"></a><h3>nm_setting_wired_get_cloned_mac_address ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wired_get_cloned_mac_address
(<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--cloned-mac-address" title='The "cloned-mac-address" property'><span class="type">"cloned-mac-address"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wired-get-mac-address-blacklist"></a><h3>nm_setting_wired_get_mac_address_blacklist ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * nm_setting_wired_get_mac_address_blacklist
+ (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address-blacklist" title='The "mac-address-blacklist" property'><span class="type">"mac-address-blacklist"</span></a>
+property of the setting. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GLib.ByteArray]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wired-get-mtu"></a><h3>nm_setting_wired_get_mtu ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wired_get_mtu (<em class="parameter"><code><a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html" title="NMSettingWired"><span class="type">NMSettingWired</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWired.html#NMSettingWired--mtu" title='The "mtu" property'><span class="type">"mtu"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -351,8 +509,10 @@ conjunction with that device.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of strings, each specifying one subchannel the
-s390 device uses to communicate to the host.</td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> of strings, each specifying one
+subchannel the s390 device uses to communicate to the host. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
+</td>
</tr>
</tbody>
</table></div>
@@ -434,13 +594,15 @@ such as during option iteration.
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>out_key</code></em> :</span></p></td>
-<td>on return, the key name of the s390 specific option; this value is
-owned by the setting and should not be modified</td>
+<td>on return, the key name of the s390 specific option; this
+value is owned by the setting and should not be modified. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>out_value</code></em> :</span></p></td>
-<td>on return, the value of the key of the s390 specific option; this
-value is owned by the setting and should not be modified</td>
+<td>on return, the value of the key of the s390 specific
+option; this value is owned by the setting and should not be modified. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -539,6 +701,17 @@ of the device (i.e. MAC spoofing).
</div>
<hr>
<div class="refsect2">
+<a name="NMSettingWired--mac-address-blacklist"></a><h3>The <code class="literal">"mac-address-blacklist"</code> property</h3>
+<pre class="programlisting"> "mac-address-blacklist" <span class="type">GSList_gchararray_</span>* : Read / Write</pre>
+<p>
+If specified, this connection will never apply to the ethernet device
+whose permanent MAC address matches an address in the list. Each
+MAC address is in the standard hex-digits-and-colons notation
+(00:11:22:33:44:55).
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSettingWired--mtu"></a><h3>The <code class="literal">"mtu"</code> property</h3>
<pre class="programlisting"> "mtu" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre>
<p>
diff --git a/docs/libnm-util/html/NMSettingWireless.html b/docs/libnm-util/html/NMSettingWireless.html
index 21d51d294..c719a2487 100644
--- a/docs/libnm-util/html/NMSettingWireless.html
+++ b/docs/libnm-util/html/NMSettingWireless.html
@@ -35,13 +35,16 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingWireless.top_of_page"></a>NMSettingWireless</span></h2>
-<p>NMSettingWireless</p>
+<p>NMSettingWireless — Describes connection properties for 802.11 WiFi networks</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingWireless.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingWirelessError"></a><pre class="synopsis">#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-SETTING-NAME:CAPS" title="NM_SETTING_WIRELESS_SETTING_NAME">NM_SETTING_WIRELESS_SETTING_NAME</a>
+<a name="NMSettingWirelessError"></a><pre class="synopsis">
+#include &lt;nm-setting-wireless.h&gt;
+
+#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-SETTING-NAME:CAPS" title="NM_SETTING_WIRELESS_SETTING_NAME">NM_SETTING_WIRELESS_SETTING_NAME</a>
enum <a class="link" href="NMSettingWireless.html#NMSettingWirelessError">NMSettingWirelessError</a>;
#define <a class="link" href="NMSettingWireless.html#NM-TYPE-SETTING-WIRELESS-ERROR:CAPS" title="NM_TYPE_SETTING_WIRELESS_ERROR">NM_TYPE_SETTING_WIRELESS_ERROR</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR:CAPS" title="NM_SETTING_WIRELESS_ERROR">NM_SETTING_WIRELESS_ERROR</a>
@@ -55,6 +58,7 @@ enum <a class="link" href="NMSettingWireless.html#NMSettingWirele
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-TX-POWER:CAPS" title="NM_SETTING_WIRELESS_TX_POWER">NM_SETTING_WIRELESS_TX_POWER</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS">NM_SETTING_WIRELESS_MAC_ADDRESS</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS" title="NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS">NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS</a>
+#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST">NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MTU:CAPS" title="NM_SETTING_WIRELESS_MTU">NM_SETTING_WIRELESS_MTU</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-SEEN-BSSIDS:CAPS" title="NM_SETTING_WIRELESS_SEEN_BSSIDS">NM_SETTING_WIRELESS_SEEN_BSSIDS</a>
#define <a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-SEC:CAPS" title="NM_SETTING_WIRELESS_SEC">NM_SETTING_WIRELESS_SEC</a>
@@ -74,6 +78,8 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.htm
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address" title="nm_setting_wireless_get_mac_address ()">nm_setting_wireless_get_mac_address</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address" title="nm_setting_wireless_get_cloned_mac_address ()">nm_setting_wireless_get_cloned_mac_address</a>
(<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist" title="nm_setting_wireless_get_mac_address_blacklist ()">nm_setting_wireless_get_mac_address_blacklist</a>
+ (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mtu" title="nm_setting_wireless_get_mtu ()">nm_setting_wireless_get_mtu</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);
const <span class="returnvalue">char</span> * <a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-security" title="nm_setting_wireless_get_security ()">nm_setting_wireless_get_security</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="NMSettingWireless.html#nm-setting-wireless-add-seen-bssid" title="nm_setting_wireless_add_seen_bssid ()">nm_setting_wireless_add_seen_bssid</a> (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>,
@@ -111,6 +117,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--channel" title='The "channel" property'>channel</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--cloned-mac-address" title='The "cloned-mac-address" property'>cloned-mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address" title='The "mac-address" property'>mac-address</a>" <span class="type">GArray_guchar_</span>* : Read / Write
+ "<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist" title='The "mac-address-blacklist" property'>mac-address-blacklist</a>" <span class="type">GSList_gchararray_</span>* : Read / Write
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--mode" title='The "mode" property'>mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--mtu" title='The "mtu" property'>mtu</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct
"<a class="link" href="NMSettingWireless.html#NMSettingWireless--rate" title='The "rate" property'>rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct
@@ -123,6 +130,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingWireless.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes properties
+necessary for connection to 802.11 WiFi networks.
</p>
</div>
<div class="refsect1">
@@ -137,8 +146,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingWirelessError"></a><h3>enum NMSettingWirelessError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_WIRELESS_ERROR_UNKNOWN = 0,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY,
@@ -146,8 +154,39 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
NM_SETTING_WIRELESS_ERROR_CHANNEL_REQUIRES_BAND
} NMSettingWirelessError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was missing and is
+required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-ERROR-MISSING-SECURITY-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_ERROR_MISSING_SECURITY_SETTING</code></span></p></td>
+<td>property values require
+the presence of an <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> object in the connection
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-ERROR-CHANNEL-REQUIRES-BAND:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_ERROR_CHANNEL_REQUIRES_BAND</code></span></p></td>
+<td>the property channel was
+set to a value that requires the <a class="link" href="NMSettingWireless.html#NMSettingWireless--band" title='The "band" property'><span class="type">"band"</span></a> property to be set
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -170,7 +209,15 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wireless-error-quark"></a><h3>nm_setting_wireless_error_quark ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> nm_setting_wireless_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Registers an error quark for <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> if necessary.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the error quark used for <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> errors.</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -246,6 +293,14 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
</div>
<hr>
<div class="refsect2">
+<a name="NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS"></a><h3>NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST</h3>
+<pre class="programlisting">#define NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST "mac-address-blacklist"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NM-SETTING-WIRELESS-MTU:CAPS"></a><h3>NM_SETTING_WIRELESS_MTU</h3>
<pre class="programlisting">#define NM_SETTING_WIRELESS_MTU "mtu"
</pre>
@@ -274,6 +329,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_WIRELESS_MODE_ADHOC "adhoc"
</pre>
<p>
+Indicates Ad-Hoc mode where no access point is expected to be present.
</p>
</div>
<hr>
@@ -282,6 +338,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">#define NM_SETTING_WIRELESS_MODE_INFRA "infrastructure"
</pre>
<p>
+Indicates infrastructure mode where an access point is expected to be present
+for this connection.
</p>
</div>
<hr>
@@ -319,85 +377,248 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wireless-new"></a><h3>nm_setting_wireless_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_wireless_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-ssid"></a><h3>nm_setting_wireless_get_ssid ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wireless_get_ssid (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--ssid" title='The "ssid" property'><span class="type">"ssid"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-mode"></a><h3>nm_setting_wireless_get_mode ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_get_mode (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--mode" title='The "mode" property'><span class="type">"mode"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-band"></a><h3>nm_setting_wireless_get_band ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_get_band (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--band" title='The "band" property'><span class="type">"band"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-channel"></a><h3>nm_setting_wireless_get_channel ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_get_channel (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--channel" title='The "channel" property'><span class="type">"channel"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-bssid"></a><h3>nm_setting_wireless_get_bssid ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wireless_get_bssid (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--bssid" title='The "bssid" property'><span class="type">"bssid"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-rate"></a><h3>nm_setting_wireless_get_rate ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_get_rate (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--rate" title='The "rate" property'><span class="type">"rate"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-tx-power"></a><h3>nm_setting_wireless_get_tx_power ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_get_tx_power (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--tx-power" title='The "tx-power" property'><span class="type">"tx-power"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-mac-address"></a><h3>nm_setting_wireless_get_mac_address ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wireless_get_mac_address (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address" title='The "mac-address" property'><span class="type">"mac-address"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-cloned-mac-address"></a><h3>nm_setting_wireless_get_cloned_mac_address ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GByteArray"><span class="returnvalue">GByteArray</span></a> * nm_setting_wireless_get_cloned_mac_address
(<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--cloned-mac-address" title='The "cloned-mac-address" property'><span class="type">"cloned-mac-address"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="nm-setting-wireless-get-mac-address-blacklist"></a><h3>nm_setting_wireless_get_mac_address_blacklist ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * nm_setting_wireless_get_mac_address_blacklist
+ (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the
+<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist" title='The "mac-address-blacklist" property'><span class="type">"mac-address-blacklist"</span></a> property of the setting. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GLib.ByteArray]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-mtu"></a><h3>nm_setting_wireless_get_mtu ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_get_mtu (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--mtu" title='The "mtu" property'><span class="type">"mtu"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-security"></a><h3>nm_setting_wireless_get_security ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_get_security (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html#NMSettingWireless--security" title='The "security" property'><span class="type">"security"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -405,23 +626,74 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_setting_wireless_add_seen_bssid (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *bssid</code></em>);</pre>
<p>
+Adds a new WiFi AP's BSSID to the previously seen BSSID list of the setting.
+NetworkManager tracks previously seen BSSIDs internally so this function
+no longer has much use.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bssid</code></em> :</span></p></td>
+<td>the new BSSID to add to the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>bssid</code></em> was already known, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-num-seen-bssids"></a><h3>nm_setting_wireless_get_num_seen_bssids ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_get_num_seen_bssids
(<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of BSSIDs in the previously seen BSSID list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-get-seen-bssid"></a><h3>nm_setting_wireless_get_seen_bssid ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_get_seen_bssid (<em class="parameter"><code><a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of a BSSID in the previously seen BSSID list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the BSSID at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -434,7 +706,52 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<em class="parameter"><code><span class="type">NM80211ApSecurityFlags</span> ap_rsn</code></em>,
<em class="parameter"><code><span class="type">NM80211Mode</span> ap_mode</code></em>);</pre>
<p>
-</p>
+Given a <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a> and an optional <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>,
+determine if the configuration given by the settings is compatible with
+the security of an access point using that access point's capability flags
+and mode. Useful for clients that wish to filter a set of connections
+against a set of access points and determine which connections are
+compatible with which access points.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s_wireless</code></em> :</span></p></td>
+<td>a <a class="link" href="NMSettingWireless.html" title="NMSettingWireless"><span class="type">NMSettingWireless</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>s_wireless_sec</code></em> :</span></p></td>
+<td>a <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ap_flags</code></em> :</span></p></td>
+<td>the <code class="literal">NM80211ApFlags</code> of the given access point</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ap_wpa</code></em> :</span></p></td>
+<td>the <code class="literal">NM80211ApSecurityFlags</code> of the given access point's WPA
+capabilities</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ap_rsn</code></em> :</span></p></td>
+<td>the <code class="literal">NM80211ApSecurityFlags</code> of the given access point's WPA2/RSN
+capabilities</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ap_mode</code></em> :</span></p></td>
+<td>the 802.11 mode of the AP, either Ad-Hoc or Infrastructure</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the given settings are compatible with the access point's
+security flags and mode, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if they are not.</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
@@ -496,6 +813,17 @@ of the device (i.e. MAC spoofing).
</div>
<hr>
<div class="refsect2">
+<a name="NMSettingWireless--mac-address-blacklist"></a><h3>The <code class="literal">"mac-address-blacklist"</code> property</h3>
+<pre class="programlisting"> "mac-address-blacklist" <span class="type">GSList_gchararray_</span>* : Read / Write</pre>
+<p>
+If specified, this connection will never apply to the WiFi device
+whose permanent MAC address matches an address in the list. Each
+MAC address is in the standard hex-digits-and-colons notation.
+(00:11:22:33:44:55).
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="NMSettingWireless--mode"></a><h3>The <code class="literal">"mode"</code> property</h3>
<pre class="programlisting"> "mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write</pre>
<p>
@@ -544,11 +872,8 @@ the connection contains a valid 802-11-wireless-security setting.
<p>
A list of BSSIDs (each BSSID formatted as a MAC address like
'00:11:22:33:44:55') that have been detected as part of the WiFI network.
-The settings service will usually populate this property by periodically
-asking NetworkManager what the device's current AP is while connected
-to the network (or monitoring the device's 'active-ap' property) and
-adding the current AP'sBSSID to this list. This list helps NetworkManager
-find hidden APs by matching up scan results with the BSSIDs in this list.
+NetworkManager internally tracks previously seen BSSIDs so this property
+is no longer of much use.
</p>
</div>
<hr>
diff --git a/docs/libnm-util/html/NMSettingWirelessSecurity.html b/docs/libnm-util/html/NMSettingWirelessSecurity.html
index 7fdbc9528..0d13105c2 100644
--- a/docs/libnm-util/html/NMSettingWirelessSecurity.html
+++ b/docs/libnm-util/html/NMSettingWirelessSecurity.html
@@ -35,13 +35,17 @@
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="NMSettingWirelessSecurity.top_of_page"></a>NMSettingWirelessSecurity</span></h2>
-<p>NMSettingWirelessSecurity</p>
+<p>NMSettingWirelessSecurity — Describes connection properties for WiFi networks that
+use WEP, LEAP, WPA or WPA2/RSN security</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="NMSettingWirelessSecurity.synopsis"></a><h2>Synopsis</h2>
-<a name="NMSettingWirelessSecurityError"></a><pre class="synopsis">#define <a class="link" href="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-SETTING-NAME:CAPS" title="NM_SETTING_WIRELESS_SECURITY_SETTING_NAME">NM_SETTING_WIRELESS_SECURITY_SETTING_NAME</a>
+<a name="NMSettingWirelessSecurityError"></a><pre class="synopsis">
+#include &lt;nm-setting-wireless-security.h&gt;
+
+#define <a class="link" href="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-SETTING-NAME:CAPS" title="NM_SETTING_WIRELESS_SECURITY_SETTING_NAME">NM_SETTING_WIRELESS_SECURITY_SETTING_NAME</a>
enum <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurityError">NMSettingWirelessSecurityError</a>;
#define <a class="link" href="NMSettingWirelessSecurity.html#NM-TYPE-SETTING-WIRELESS-SECURITY-ERROR:CAPS" title="NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR">NM_TYPE_SETTING_WIRELESS_SECURITY_ERROR</a>
#define <a class="link" href="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR:CAPS" title="NM_SETTING_WIRELESS_SECURITY_ERROR">NM_SETTING_WIRELESS_SECURITY_ERROR</a>
@@ -175,6 +179,24 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<div class="refsect1">
<a name="NMSettingWirelessSecurity.description"></a><h2>Description</h2>
<p>
+The <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> object is a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> subclass that describes
+properties necessary for connection to encrypted WiFi networks.
+</p>
+<p>
+It's a good idea to read up on wpa_supplicant configuration before using this
+setting extensively, since most of the options here correspond closely with
+the relevant wpa_supplicant configuration options. To get a better overview
+of how WiFi security works, you may want to get copies of the following books.
+</p>
+<p>
+ 802.11 Wireless Networks: The Definitive Guide, Second Edition
+ Author: Matthew Gast
+ ISBN: 978-0596100520
+</p>
+<p>
+ Cisco Wireless LAN Security
+ Authors: Krishna Sankar, Sri Sundaralingam, Darrin Miller, and Andrew Balinsky
+ ISBN: 978-1587051548
</p>
</div>
<div class="refsect1">
@@ -189,8 +211,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<hr>
<div class="refsect2">
<a name="NMSettingWirelessSecurityError"></a><h3>enum NMSettingWirelessSecurityError</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN = 0,
NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY,
@@ -200,8 +221,52 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP
} NMSettingWirelessSecurityError;
</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN</code></span></p></td>
+<td>unknown or unclassified error
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-INVALID-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY</code></span></p></td>
+<td>the property was invalid
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-PROPERTY:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY</code></span></p></td>
+<td>the property was
+missing and is required
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-802-1X-SETTING:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_802_1X_SETTING</code></span></p></td>
+<td>a property contained
+a value that requires the connection to contain a <a class="link" href="NMSetting8021x.html" title="NMSetting8021x"><span class="type">NMSetting8021x</span></a> setting
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-802-1X:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_802_1X</code></span></p></td>
+<td>LEAP authentication
+was specified but key management was not set to "8021x"
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-USERNAME:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_USERNAME</code></span></p></td>
+<td>LEAP authentication
+was specified but no LEAP username was given
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-WIRELESS-SECURITY-ERROR-SHARED-KEY-REQUIRES-WEP:CAPS"></a><span class="term"><code class="literal">NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP</code></span></p></td>
+<td>Shared Key
+authentication was specified but the setting did not specify WEP as the
+encryption protocol
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -239,7 +304,47 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
} NMWepKeyType;
</pre>
<p>
+The <a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType"><span class="type">NMWepKeyType</span></a> values specify how any WEP keys present in the setting
+are intepreted. There are no standards governing how to hash the various WEP
+key/passphrase formats into the actual WEP key. Unfortunately some WEP keys
+can be interpreted in multiple ways, requring the setting to specify how to
+interpret the any WEP keys. For example, the key "732f2d712e4a394a375d366931"
+is both a valid Hexadecimal WEP key and a WEP passphrase. Further, many
+ASCII keys are also valid WEP passphrases, but since passphrases and ASCII
+keys are hashed differently to determine the actual WEP key the type must be
+specified.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-WEP-KEY-TYPE-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_WEP_KEY_TYPE_UNKNOWN</code></span></p></td>
+<td>unknown WEP key type
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-WEP-KEY-TYPE-KEY:CAPS"></a><span class="term"><code class="literal">NM_WEP_KEY_TYPE_KEY</code></span></p></td>
+<td>indicates a hexadecimal or ASCII formatted WEP key.
+Hex keys are either 10 or 26 hexadecimal characters (ie "5f782f2f5f" or
+"732f2d712e4a394a375d366931"), while ASCII keys are either 5 or 13 ASCII
+characters (ie "abcde" or "blahblah99$*1").
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-WEP-KEY-TYPE-PASSPHRASE:CAPS"></a><span class="term"><code class="literal">NM_WEP_KEY_TYPE_PASSPHRASE</code></span></p></td>
+<td>indicates a WEP passphrase (ex "I bought a duck
+on my way back from the market 235Q&amp;^%^*%") instead of a hexadecimal or ASCII
+key. Passphrases are between 8 and 64 characters inclusive and are hashed
+the actual WEP key using the MD5 hash algorithm.
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-WEP-KEY-TYPE-LAST:CAPS"></a><span class="term"><code class="literal">NM_WEP_KEY_TYPE_LAST</code></span></p></td>
+<td>placeholder value for bounds-checking
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -413,23 +518,57 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wireless-security-new"></a><h3>nm_setting_wireless_security_new ()</h3>
<pre class="programlisting"><a class="link" href="NMSetting.html" title="NMSetting"><span class="returnvalue">NMSetting</span></a> * nm_setting_wireless_security_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
+Creates a new <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> object with default values.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new empty <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-key-mgmt"></a><h3>nm_setting_wireless_security_get_key_mgmt ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_key_mgmt
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--key-mgmt" title='The "key-mgmt" property'><span class="type">"key-mgmt"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-num-protos"></a><h3>nm_setting_wireless_security_get_num_protos ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_security_get_num_protos
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of security protocols this connection allows when
+connecting to secure WiFi networks</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -437,8 +576,25 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_proto
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>an index into the protocol list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the protocol at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -447,7 +603,33 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *proto</code></em>);</pre>
<p>
+Adds a WiFi security protocol (one of "wpa" or "rsn") to the allowed list;
+only protocols in this list will be used when finding and connecting to
+the WiFi network specified by this connection. For example, if the
+protocol list contains only "wpa" but the access point for the SSID specified
+by this connection only supports WPA2/RSN, the connection cannot be used
+with the access point.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>proto</code></em> :</span></p></td>
+<td>the protocol to add, one of "wpa" or "rsn"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the protocol was new and and was added to the allowed
+protocol list, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it was already in the list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -456,7 +638,22 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes a protocol from the allowed protocol list.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of the protocol to remove</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -464,15 +661,37 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_wireless_security_clear_protos
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
<p>
+Removes all protocols from the allowed list. If there are no protocols
+specified then all protocols are allowed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-num-pairwise"></a><h3>nm_setting_wireless_security_get_num_pairwise ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_security_get_num_pairwise
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of pairwise encryption algorithms in the allowed list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -481,7 +700,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Returns the allowed pairwise encryption algorithm from allowed algorithm
+list.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of an item in the allowed pairwise encryption algorithm list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the pairwise encryption algorithm at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -490,7 +730,32 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *pairwise</code></em>);</pre>
<p>
+Adds an encryption algorithm to the list of allowed pairwise encryption
+algorithms. If the list is not empty, then only access points that support
+one or more of the encryption algorithms in the list will be considered
+compatible with this connection.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pairwise</code></em> :</span></p></td>
+<td>the encryption algorithm to add, one of "wep40", "wep104",
+"tkip", or "ccmp"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the algorithm was added to the list, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it was
+already in the list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -499,7 +764,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes an encryption algorithm from the allowed pairwise encryption
+algorithm list.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the index of an item in the allowed pairwise encryption algorithm list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -507,15 +788,37 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_wireless_security_clear_pairwise
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
<p>
+Removes all algorithms from the allowed list. If there are no algorithms
+specified then all pairwise encryption algorithms are allowed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-num-groups"></a><h3>nm_setting_wireless_security_get_num_groups ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_security_get_num_groups
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of groupwise encryption algorithms in the allowed list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -524,7 +827,28 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Returns the allowed groupwise encryption algorithm from allowed algorithm
+list.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>index of an item in the allowed groupwise encryption algorithm list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the groupwise encryption algorithm at index <em class="parameter"><code>i</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -533,7 +857,32 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *group</code></em>);</pre>
<p>
+Adds an encryption algorithm to the list of allowed groupwise encryption
+algorithms. If the list is not empty, then only access points that support
+one or more of the encryption algorithms in the list will be considered
+compatible with this connection.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>group</code></em> :</span></p></td>
+<td>the encryption algorithm to add, one of "wep40", "wep104",
+"tkip", or "ccmp"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the algorithm was added to the list, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it was
+already in the list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -542,7 +891,23 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> i</code></em>);</pre>
<p>
+Removes an encryption algorithm from the allowed groupwise encryption
+algorithm list.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td>
+<td>the index of an item in the allowed groupwise encryption algorithm list</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -550,15 +915,37 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_wireless_security_clear_groups
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
<p>
+Removes all algorithms from the allowed list. If there are no algorithms
+specified then all groupwise encryption algorithms are allowed.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-psk"></a><h3>nm_setting_wireless_security_get_psk ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_psk
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--psk" title='The "psk" property'><span class="type">"psk"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -587,16 +974,40 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wireless-security-get-leap-username"></a><h3>nm_setting_wireless_security_get_leap_username ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_leap_username
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--leap-username" title='The "leap-username" property'><span class="type">"leap-username"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-leap-password"></a><h3>nm_setting_wireless_security_get_leap_password ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_leap_password
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--leap-password" title='The "leap-password" property'><span class="type">"leap-password"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -626,8 +1037,24 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_wep_key
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the WEP key index (0..3 inclusive)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the WEP key at the given index</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -637,23 +1064,68 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> idx</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>
+Sets a WEP key in the given index.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
+<td>the index of the key (0..3 inclusive)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>the WEP key as a string, in either hexadecimal, ASCII, or passphrase
+form as determiend by the value of the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--wep-key-type" title='The "wep-key-type" property'><span class="type">"wep-key-type"</span></a>
+property.</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-wep-tx-keyidx"></a><h3>nm_setting_wireless_security_get_wep_tx_keyidx ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> nm_setting_wireless_security_get_wep_tx_keyidx
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--wep-tx-keyidx" title='The "wep-tx-keyidx" property'><span class="type">"wep-tx-keyidx"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-setting-wireless-security-get-auth-alg"></a><h3>nm_setting_wireless_security_get_auth_alg ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_setting_wireless_security_get_auth_alg
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--auth-alg" title='The "auth-alg" property'><span class="type">"auth-alg"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -680,8 +1152,20 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMSet
<a name="nm-setting-wireless-security-get-wep-key-type"></a><h3>nm_setting_wireless_security_get_wep_key_type ()</h3>
<pre class="programlisting"><a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType"><span class="returnvalue">NMWepKeyType</span></a> nm_setting_wireless_security_get_wep_key_type
(<em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a> *setting</code></em>);</pre>
-<p>
-</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>setting</code></em> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity"><span class="type">NMSettingWirelessSecurity</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurity--wep-key-type" title='The "wep-key-type" property'><span class="type">"wep-key-type"</span></a> property of the setting</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
@@ -809,9 +1293,8 @@ Flags indicating how to handle <a class="link" href="NMSettingWirelessSecurity.h
<a name="NMSettingWirelessSecurity--wep-key-type"></a><h3>The <code class="literal">"wep-key-type"</code> property</h3>
<pre class="programlisting"> "wep-key-type" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct</pre>
<p>
-Controls the interpretation of WEP keys. Allowed values are 1 (interpret
-WEP keys as hexadecimal or ASCII keys) or 2 (interpret WEP keys as WEP
-Passphrases). If set to 1 and the keys are hexadecimal, they must be
+Controls the interpretation of WEP keys. Allowed values are those given
+by <a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType"><code class="literal">NMWepKeyType</code></a>. If set to 1 and the keys are hexadecimal, they must be
either 10 or 26 characters in length. If set to 1 and the keys are
ASCII keys, they must be either 5 or 13 characters in length. If set to
2, the passphrase is hashed using the de-facto MD5 method to derive the
diff --git a/docs/libnm-util/html/api-index-full.html b/docs/libnm-util/html/api-index-full.html
index 0ea92385a..f47ea2c9d 100644
--- a/docs/libnm-util/html/api-index-full.html
+++ b/docs/libnm-util/html/api-index-full.html
@@ -21,10 +21,20 @@
<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxC">C</a>
+<a class="shortcut" href="#idx8">8</a>
+  | 
+ <a class="shortcut" href="#idxA">A</a>
+  | 
+ <a class="shortcut" href="#idxB">B</a>
+  | 
+ <a class="shortcut" href="#idxC">C</a>
+  | 
+ <a class="shortcut" href="#idxD">D</a>
 | 
<a class="shortcut" href="#idxI">I</a>
 | 
+ <a class="shortcut" href="#idxM">M</a>
+  | 
<a class="shortcut" href="#idxS">S</a>
 | 
<a class="shortcut" href="#idxT">T</a>
@@ -39,7 +49,34 @@
<div class="index">
<div class="titlepage"><div><div><h2 class="title">
<a name="api-index-full"></a>API Index</h2></div></div></div>
-<a name="idx"></a><a name="idxC"></a><h3 class="title">C</h3>
+<a name="idx"></a><a name="idx8"></a><h3 class="title">8</h3>
+<dt>
+NM80211ApFlags, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM80211ApSecurityFlags, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM80211Mode, enum in NetworkManager
+</dt>
+<dd></dd>
+<a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+NMActiveConnectionState, enum in NetworkManager
+</dt>
+<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+NMBluetoothCapabilities, enum in NetworkManager
+</dt>
+<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+NM_CHECK_VERSION, macro in nm-version
+</dt>
+<dd></dd>
<dt>
<a class="link" href="NMConnection.html#NMConnection-struct" title="NMConnection">NMConnection</a>, struct in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a>
</dt>
@@ -232,6 +269,275 @@
<a class="link" href="NMConnection.html#nm-connection-verify" title="nm_connection_verify ()">nm_connection_verify</a>, function in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a>
</dt>
<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+NM_DBUS_IFACE_SETTINGS, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_IFACE_SETTINGS_CONNECTION, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_IFACE_SETTINGS_CONNECTION_SECRETS, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_ACCESS_POINT, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_ACTIVE_CONNECTION, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_AGENT_MANAGER, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE_MODEM, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE_WIMAX, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE_WIRED, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DEVICE_WIRELESS, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DHCP4_CONFIG, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_DHCP6_CONFIG, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_IP4_CONFIG, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_IP6_CONFIG, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_SECRET_AGENT, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_VPN, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_VPN_CONNECTION, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INTERFACE_WIMAX_NSP, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_INVALID_VPN_CONNECTION, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_NO_ACTIVE_VPN_CONNECTION, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_NO_VPN_CONNECTIONS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_ACCESS_POINT, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_AGENT_MANAGER, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_SECRET_AGENT, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_SETTINGS, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_SETTINGS_CONNECTION, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_VPN, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_VPN_CONNECTION, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_PATH_WIMAX_NSP, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_SERVICE, macro in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UCHAR, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_ARRAY_OF_UINT, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_IP6_ADDRESS, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_IP6_ROUTE, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_STRING, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_ARRAY_OF_UINT, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_IP6_ADDRESS, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_IP6_ROUTE, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_LIST_OF_STRING, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_MAP_OF_STRING, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+DBUS_TYPE_G_MAP_OF_VARIANT, macro in nm-dbus-glib-types
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_ALREADY_STARTED, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_ALREADY_STOPPED, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_BAD_ARGUMENTS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_CONNECT_FAILED, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_IP4_CONFIG, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_LOGIN_BANNER, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_LOGIN_FAILED, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_STATE_CHANGE, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_STARTING_IN_PROGRESS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_STOPPING_IN_PROGRESS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_DBUS_VPN_WRONG_STATE, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NMDeviceCapabilities, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NMDeviceModemCapabilities, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NMDeviceState, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NMDeviceStateReason, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NMDeviceType, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NMDeviceWifiCapabilities, enum in NetworkManager
+</dt>
+<dd></dd>
<a name="idxI"></a><h3 class="title">I</h3>
<dt>
<a class="link" href="NMSettingIP4Config.html#NMIP4Address">NMIP4Address</a>, typedef in <a class="link" href="NMSettingIP4Config.html" title="NMSettingIP4Config">NMSettingIP4Config</a>
@@ -457,6 +763,19 @@
<a class="link" href="NMSettingIP6Config.html#nm-ip6-route-unref" title="nm_ip6_route_unref ()">nm_ip6_route_unref</a>, function in <a class="link" href="NMSettingIP6Config.html" title="NMSettingIP6Config">NMSettingIP6Config</a>
</dt>
<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+NM_MAJOR_VERSION, macro in nm-version
+</dt>
+<dd></dd>
+<dt>
+NM_MICRO_VERSION, macro in nm-version
+</dt>
+<dd></dd>
+<dt>
+NM_MINOR_VERSION, macro in nm-version
+</dt>
+<dd></dd>
<a name="idxS"></a><h3 class="title">S</h3>
<dt>
<a class="link" href="NMSetting.html#NMSetting-struct" title="NMSetting">NMSetting</a>, struct in <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
@@ -467,6 +786,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--altsubject-matches" title='The "altsubject-matches" property'>NMSetting8021x:altsubject-matches</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NMSetting8021x--anonymous-identity" title='The "anonymous-identity" property'>NMSetting8021x:anonymous-identity</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -511,6 +834,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches" title='The "phase2-altsubject-matches" property'>NMSetting8021x:phase2-altsubject-matches</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-auth" title='The "phase2-auth" property'>NMSetting8021x:phase2-auth</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -543,6 +870,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--phase2-subject-match" title='The "phase2-subject-match" property'>NMSetting8021x:phase2-subject-match</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NMSetting8021x--private-key" title='The "private-key" property'>NMSetting8021x:private-key</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -555,6 +886,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NMSetting8021x--subject-match" title='The "subject-match" property'>NMSetting8021x:subject-match</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NMSetting8021x--system-ca-certs" title='The "system-ca-certs" property'>NMSetting8021x:system-ca-certs</a>, object property in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1063,23 +1398,23 @@
</dt>
<dd></dd>
<dt>
-NMSettingWimax, struct in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NMSettingWimax-struct" title="NMSettingWimax">NMSettingWimax</a>, struct in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NMSettingWimax:mac-address, object property in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NMSettingWimax--mac-address" title='The "mac-address" property'>NMSettingWimax:mac-address</a>, object property in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NMSettingWimax:network-name, object property in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NMSettingWimax--network-name" title='The "network-name" property'>NMSettingWimax:network-name</a>, object property in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NMSettingWimaxClass, struct in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NMSettingWimaxClass" title="NMSettingWimaxClass">NMSettingWimaxClass</a>, struct in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NMSettingWimaxError, enum in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NMSettingWimaxError">NMSettingWimaxError</a>, enum in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
@@ -1103,6 +1438,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWired.html#NMSettingWired--mac-address-blacklist" title='The "mac-address-blacklist" property'>NMSettingWired:mac-address-blacklist</a>, object property in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWired.html#NMSettingWired--mtu" title='The "mtu" property'>NMSettingWired:mtu</a>, object property in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
</dt>
<dd></dd>
@@ -1159,6 +1498,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist" title='The "mac-address-blacklist" property'>NMSettingWireless:mac-address-blacklist</a>, object property in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWireless.html#NMSettingWireless--mode" title='The "mode" property'>NMSettingWireless:mode</a>, object property in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
</dt>
<dd></dd>
@@ -1275,10 +1618,22 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-add-altsubject-match" title="nm_setting_802_1x_add_altsubject_match ()">nm_setting_802_1x_add_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-add-eap-method" title="nm_setting_802_1x_add_eap_method ()">nm_setting_802_1x_add_eap_method</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-add-phase2-altsubject-match" title="nm_setting_802_1x_add_phase2_altsubject_match ()">nm_setting_802_1x_add_phase2_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS" title="NM_SETTING_802_1X_ALTSUBJECT_MATCHES">NM_SETTING_802_1X_ALTSUBJECT_MATCHES</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS" title="NM_SETTING_802_1X_ANONYMOUS_IDENTITY">NM_SETTING_802_1X_ANONYMOUS_IDENTITY</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1291,10 +1646,18 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-clear-altsubject-matches" title="nm_setting_802_1x_clear_altsubject_matches ()">nm_setting_802_1x_clear_altsubject_matches</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-clear-eap-methods" title="nm_setting_802_1x_clear_eap_methods ()">nm_setting_802_1x_clear_eap_methods</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-clear-phase2-altsubject-matches" title="nm_setting_802_1x_clear_phase2_altsubject_matches ()">nm_setting_802_1x_clear_phase2_altsubject_matches</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-CLIENT-CERT:CAPS" title="NM_SETTING_802_1X_CLIENT_CERT">NM_SETTING_802_1X_CLIENT_CERT</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1311,6 +1674,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-altsubject-match" title="nm_setting_802_1x_get_altsubject_match ()">nm_setting_802_1x_get_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-anonymous-identity" title="nm_setting_802_1x_get_anonymous_identity ()">nm_setting_802_1x_get_anonymous_identity</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1351,10 +1718,18 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-num-altsubject-matches" title="nm_setting_802_1x_get_num_altsubject_matches ()">nm_setting_802_1x_get_num_altsubject_matches</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-num-eap-methods" title="nm_setting_802_1x_get_num_eap_methods ()">nm_setting_802_1x_get_num_eap_methods</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-num-phase2-altsubject-matches" title="nm_setting_802_1x_get_num_phase2_altsubject_matches ()">nm_setting_802_1x_get_num_phase2_altsubject_matches</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-password" title="nm_setting_802_1x_get_password ()">nm_setting_802_1x_get_password</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1375,6 +1750,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-altsubject-match" title="nm_setting_802_1x_get_phase2_altsubject_match ()">nm_setting_802_1x_get_phase2_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-auth" title="nm_setting_802_1x_get_phase2_auth ()">nm_setting_802_1x_get_phase2_auth</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1435,6 +1814,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-phase2-subject-match" title="nm_setting_802_1x_get_phase2_subject_match ()">nm_setting_802_1x_get_phase2_subject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-pin" title="nm_setting_802_1x_get_pin ()">nm_setting_802_1x_get_pin</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1467,6 +1850,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-subject-match" title="nm_setting_802_1x_get_subject_match ()">nm_setting_802_1x_get_subject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-get-system-ca-certs" title="nm_setting_802_1x_get_system_ca_certs ()">nm_setting_802_1x_get_system_ca_certs</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1503,6 +1890,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS" title="NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES">NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-AUTH:CAPS" title="NM_SETTING_802_1X_PHASE2_AUTH">NM_SETTING_802_1X_PHASE2_AUTH</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1535,6 +1926,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS" title="NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH">NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-PIN:CAPS" title="NM_SETTING_802_1X_PIN">NM_SETTING_802_1X_PIN</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1555,10 +1950,18 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-remove-altsubject-match" title="nm_setting_802_1x_remove_altsubject_match ()">nm_setting_802_1x_remove_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-remove-eap-method" title="nm_setting_802_1x_remove_eap_method ()">nm_setting_802_1x_remove_eap_method</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#nm-setting-802-1x-remove-phase2-altsubject-match" title="nm_setting_802_1x_remove_phase2_altsubject_match ()">nm_setting_802_1x_remove_phase2_altsubject_match</a>, function in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-SETTING-NAME:CAPS" title="NM_SETTING_802_1X_SETTING_NAME">NM_SETTING_802_1X_SETTING_NAME</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -1587,6 +1990,10 @@ NMSettingWimaxError, enum in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-SUBJECT-MATCH:CAPS" title="NM_SETTING_802_1X_SUBJECT_MATCH">NM_SETTING_802_1X_SUBJECT_MATCH</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting8021x.html#NM-SETTING-802-1X-SYSTEM-CA-CERTS:CAPS" title="NM_SETTING_802_1X_SYSTEM_CA_CERTS">NM_SETTING_802_1X_SYSTEM_CA_CERTS</a>, macro in <a class="link" href="NMSetting8021x.html" title="NMSetting8021x">NMSetting8021x</a>
</dt>
<dd></dd>
@@ -2755,39 +3162,39 @@ NM_SETTING_SECRET_FLAGS_ALL, macro in nm-setting-private
</dt>
<dd></dd>
<dt>
-NM_SETTING_WIMAX_ERROR, macro in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR:CAPS" title="NM_SETTING_WIMAX_ERROR">NM_SETTING_WIMAX_ERROR</a>, macro in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-nm_setting_wimax_error_quark, function in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#nm-setting-wimax-error-quark" title="nm_setting_wimax_error_quark ()">nm_setting_wimax_error_quark</a>, function in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-nm_setting_wimax_get_mac_address, function in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-mac-address" title="nm_setting_wimax_get_mac_address ()">nm_setting_wimax_get_mac_address</a>, function in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-nm_setting_wimax_get_network_name, function in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-network-name" title="nm_setting_wimax_get_network_name ()">nm_setting_wimax_get_network_name</a>, function in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-nm_setting_wimax_get_type, function in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#nm-setting-wimax-get-type" title="nm_setting_wimax_get_type ()">nm_setting_wimax_get_type</a>, function in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NM_SETTING_WIMAX_MAC_ADDRESS, macro in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-MAC-ADDRESS:CAPS" title="NM_SETTING_WIMAX_MAC_ADDRESS">NM_SETTING_WIMAX_MAC_ADDRESS</a>, macro in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NM_SETTING_WIMAX_NETWORK_NAME, macro in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-NETWORK-NAME:CAPS" title="NM_SETTING_WIMAX_NETWORK_NAME">NM_SETTING_WIMAX_NETWORK_NAME</a>, macro in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-nm_setting_wimax_new, function in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#nm-setting-wimax-new" title="nm_setting_wimax_new ()">nm_setting_wimax_new</a>, function in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
-NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NM-SETTING-WIMAX-SETTING-NAME:CAPS" title="NM_SETTING_WIMAX_SETTING_NAME">NM_SETTING_WIMAX_SETTING_NAME</a>, macro in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
@@ -2831,6 +3238,10 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist" title="nm_setting_wired_get_mac_address_blacklist ()">nm_setting_wired_get_mac_address_blacklist</a>, function in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWired.html#nm-setting-wired-get-mtu" title="nm_setting_wired_get_mtu ()">nm_setting_wired_get_mtu</a>, function in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
</dt>
<dd></dd>
@@ -2871,6 +3282,10 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS" title="NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST">NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST</a>, macro in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWired.html#NM-SETTING-WIRED-MTU:CAPS" title="NM_SETTING_WIRED_MTU">NM_SETTING_WIRED_MTU</a>, macro in <a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
</dt>
<dd></dd>
@@ -2959,6 +3374,10 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist" title="nm_setting_wireless_get_mac_address_blacklist ()">nm_setting_wireless_get_mac_address_blacklist</a>, function in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWireless.html#nm-setting-wireless-get-mode" title="nm_setting_wireless_get_mode ()">nm_setting_wireless_get_mode</a>, function in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
</dt>
<dd></dd>
@@ -2999,6 +3418,10 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS" title="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST">NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST</a>, macro in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-MODE:CAPS" title="NM_SETTING_WIRELESS_MODE">NM_SETTING_WIRELESS_MODE</a>, macro in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
</dt>
<dd></dd>
@@ -3238,6 +3661,14 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
<a class="link" href="NMSettingWireless.html#NM-SETTING-WIRELESS-TX-POWER:CAPS" title="NM_SETTING_WIRELESS_TX_POWER">NM_SETTING_WIRELESS_TX_POWER</a>, macro in <a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
</dt>
<dd></dd>
+<dt>
+NMState, enum in NetworkManager
+</dt>
+<dd></dd>
+<dt>
+NM_STATE_CONNECTED, macro in NetworkManager
+</dt>
+<dd></dd>
<a name="idxT"></a><h3 class="title">T</h3>
<dt>
<a class="link" href="NMConnection.html#NM-TYPE-CONNECTION-ERROR:CAPS" title="NM_TYPE_CONNECTION_ERROR">NM_TYPE_CONNECTION_ERROR</a>, macro in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a>
@@ -3296,7 +3727,7 @@ NM_SETTING_WIMAX_SETTING_NAME, macro in NMSettingWimax
</dt>
<dd></dd>
<dt>
-NM_TYPE_SETTING_WIMAX_ERROR, macro in NMSettingWimax
+<a class="link" href="NMSettingWimax.html#NM-TYPE-SETTING-WIMAX-ERROR:CAPS" title="NM_TYPE_SETTING_WIMAX_ERROR">NM_TYPE_SETTING_WIMAX_ERROR</a>, macro in <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
</dt>
<dd></dd>
<dt>
@@ -3434,9 +3865,93 @@ NM_TYPE_SETTING_WIMAX_ERROR, macro in NMSettingWimax
<dd></dd>
<a name="idxV"></a><h3 class="title">V</h3>
<dt>
+NMVPNConnectionState, enum in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NMVPNConnectionStateReason, enum in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSettingVPN.html#NMVPNIterFunc" title="NMVPNIterFunc ()">NMVPNIterFunc</a>, user_function in <a class="link" href="NMSettingVPN.html" title="NMSettingVPN">NMSettingVPN</a>
</dt>
<dd></dd>
+<dt>
+NMVPNPluginFailure, enum in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NMVPNServiceState, enum in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_DBUS_PLUGIN_INTERFACE, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_DBUS_PLUGIN_PATH, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_BANNER, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_DNS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_MSS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_MTU, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_NBNS, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_PTP, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_ROUTES, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
+<dt>
+NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, macro in NetworkManagerVPN
+</dt>
+<dd></dd>
<a name="idxW"></a><h3 class="title">W</h3>
<dt>
<a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType">NMWepKeyType</a>, enum in <a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">NMSettingWirelessSecurity</a>
diff --git a/docs/libnm-util/html/ch01.html b/docs/libnm-util/html/ch01.html
index 52f73af96..d97a89395 100644
--- a/docs/libnm-util/html/ch01.html
+++ b/docs/libnm-util/html/ch01.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id501566"></a>libnm-util API Reference</h2></div></div></div>
+<a name="id503033"></a>libnm-util API Reference</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="NMConnection.html">NMConnection</a></span><span class="refpurpose"> — Describes a connection to specific network or provider</span>
@@ -33,25 +33,30 @@
<span class="refentrytitle"><a href="NMSettingConnection.html">NMSettingConnection</a></span><span class="refpurpose"> — Describes general connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWired.html">NMSettingWired</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWired.html">NMSettingWired</a></span><span class="refpurpose"> — Describes connection properties for Ethernet-based networks</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWireless.html">NMSettingWireless</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWireless.html">NMSettingWireless</a></span><span class="refpurpose"> — Describes connection properties for 802.11 WiFi networks</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWirelessSecurity.html">NMSettingWirelessSecurity</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWirelessSecurity.html">NMSettingWirelessSecurity</a></span><span class="refpurpose"> — Describes connection properties for WiFi networks that
+use WEP, LEAP, WPA or WPA2/RSN security</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingBluetooth.html">NMSettingBluetooth</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingBluetooth.html">NMSettingBluetooth</a></span><span class="refpurpose"> — Describes Bluetooth connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingSerial.html">NMSettingSerial</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingSerial.html">NMSettingSerial</a></span><span class="refpurpose"> — Describes connection properties for devices that use
+serial communications</span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMSettingCdma.html">NMSettingCdma</a></span><span class="refpurpose"> — Describes CDMA-based mobile broadband properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingGsm.html">NMSettingGsm</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingGsm.html">NMSettingGsm</a></span><span class="refpurpose"> — Describes GSM/3GPP-based mobile broadband properties</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="NMSettingWimax.html">NMSettingWimax</a></span><span class="refpurpose"> — Describes 802.16e Mobile WiMAX connection properties</span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMSettingOlpcMesh.html">NMSettingOlpcMesh</a></span><span class="refpurpose"></span>
@@ -60,19 +65,20 @@
<span class="refentrytitle"><a href="NMSetting8021x.html">NMSetting8021x</a></span><span class="refpurpose"> — Describes 802.1x-authenticated connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingIP4Config.html">NMSettingIP4Config</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingIP4Config.html">NMSettingIP4Config</a></span><span class="refpurpose"> — Describes IPv4 addressing, routing, and name service properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingIP6Config.html">NMSettingIP6Config</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingIP6Config.html">NMSettingIP6Config</a></span><span class="refpurpose"> — Describes IPv6 addressing, routing, and name service properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingPPP.html">NMSettingPPP</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingPPP.html">NMSettingPPP</a></span><span class="refpurpose"> — Describes connection properties for devices/networks
+that require PPP to deliver IP capability</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingPPPOE.html">NMSettingPPPOE</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingPPPOE.html">NMSettingPPPOE</a></span><span class="refpurpose"> — Describes PPPoE connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingVPN.html">NMSettingVPN</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingVPN.html">NMSettingVPN</a></span><span class="refpurpose"> — Describes connection properties for Virtual Private Networks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-util-nm-utils.html">nm-utils</a></span><span class="refpurpose"> — Utility functions</span>
diff --git a/docs/libnm-util/html/index.html b/docs/libnm-util/html/index.html
index feb9a71be..51f90c6ab 100644
--- a/docs/libnm-util/html/index.html
+++ b/docs/libnm-util/html/index.html
@@ -35,25 +35,30 @@
<span class="refentrytitle"><a href="NMSettingConnection.html">NMSettingConnection</a></span><span class="refpurpose"> — Describes general connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWired.html">NMSettingWired</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWired.html">NMSettingWired</a></span><span class="refpurpose"> — Describes connection properties for Ethernet-based networks</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWireless.html">NMSettingWireless</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWireless.html">NMSettingWireless</a></span><span class="refpurpose"> — Describes connection properties for 802.11 WiFi networks</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingWirelessSecurity.html">NMSettingWirelessSecurity</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingWirelessSecurity.html">NMSettingWirelessSecurity</a></span><span class="refpurpose"> — Describes connection properties for WiFi networks that
+use WEP, LEAP, WPA or WPA2/RSN security</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingBluetooth.html">NMSettingBluetooth</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingBluetooth.html">NMSettingBluetooth</a></span><span class="refpurpose"> — Describes Bluetooth connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingSerial.html">NMSettingSerial</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingSerial.html">NMSettingSerial</a></span><span class="refpurpose"> — Describes connection properties for devices that use
+serial communications</span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMSettingCdma.html">NMSettingCdma</a></span><span class="refpurpose"> — Describes CDMA-based mobile broadband properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingGsm.html">NMSettingGsm</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingGsm.html">NMSettingGsm</a></span><span class="refpurpose"> — Describes GSM/3GPP-based mobile broadband properties</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="NMSettingWimax.html">NMSettingWimax</a></span><span class="refpurpose"> — Describes 802.16e Mobile WiMAX connection properties</span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMSettingOlpcMesh.html">NMSettingOlpcMesh</a></span><span class="refpurpose"></span>
@@ -62,19 +67,20 @@
<span class="refentrytitle"><a href="NMSetting8021x.html">NMSetting8021x</a></span><span class="refpurpose"> — Describes 802.1x-authenticated connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingIP4Config.html">NMSettingIP4Config</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingIP4Config.html">NMSettingIP4Config</a></span><span class="refpurpose"> — Describes IPv4 addressing, routing, and name service properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingIP6Config.html">NMSettingIP6Config</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingIP6Config.html">NMSettingIP6Config</a></span><span class="refpurpose"> — Describes IPv6 addressing, routing, and name service properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingPPP.html">NMSettingPPP</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingPPP.html">NMSettingPPP</a></span><span class="refpurpose"> — Describes connection properties for devices/networks
+that require PPP to deliver IP capability</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingPPPOE.html">NMSettingPPPOE</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingPPPOE.html">NMSettingPPPOE</a></span><span class="refpurpose"> — Describes PPPoE connection properties</span>
</dt>
<dt>
-<span class="refentrytitle"><a href="NMSettingVPN.html">NMSettingVPN</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMSettingVPN.html">NMSettingVPN</a></span><span class="refpurpose"> — Describes connection properties for Virtual Private Networks</span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-util-nm-utils.html">nm-utils</a></span><span class="refpurpose"> — Utility functions</span>
diff --git a/docs/libnm-util/html/index.sgml b/docs/libnm-util/html/index.sgml
index 4140e8969..eda2a542e 100644
--- a/docs/libnm-util/html/index.sgml
+++ b/docs/libnm-util/html/index.sgml
@@ -11,6 +11,7 @@
<ANCHOR id="NM-CONNECTION-ERROR-UNKNOWN:CAPS" href="libnm-util/NMConnection.html#NM-CONNECTION-ERROR-UNKNOWN:CAPS">
<ANCHOR id="NM-CONNECTION-ERROR-CONNECTION-SETTING-NOT-FOUND:CAPS" href="libnm-util/NMConnection.html#NM-CONNECTION-ERROR-CONNECTION-SETTING-NOT-FOUND:CAPS">
<ANCHOR id="NM-CONNECTION-ERROR-CONNECTION-TYPE-INVALID:CAPS" href="libnm-util/NMConnection.html#NM-CONNECTION-ERROR-CONNECTION-TYPE-INVALID:CAPS">
+<ANCHOR id="NM-CONNECTION-ERROR-SETTING-NOT-FOUND:CAPS" href="libnm-util/NMConnection.html#NM-CONNECTION-ERROR-SETTING-NOT-FOUND:CAPS">
<ANCHOR id="NM-TYPE-CONNECTION-ERROR:CAPS" href="libnm-util/NMConnection.html#NM-TYPE-CONNECTION-ERROR:CAPS">
<ANCHOR id="NM-CONNECTION-ERROR:CAPS" href="libnm-util/NMConnection.html#NM-CONNECTION-ERROR:CAPS">
<ANCHOR id="nm-connection-error-quark" href="libnm-util/NMConnection.html#nm-connection-error-quark">
@@ -86,6 +87,13 @@
<ANCHOR id="NM-SETTING-SECRET-FLAG-AGENT-OWNED:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-SECRET-FLAG-AGENT-OWNED:CAPS">
<ANCHOR id="NM-SETTING-SECRET-FLAG-NOT-SAVED:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-SECRET-FLAG-NOT-SAVED:CAPS">
<ANCHOR id="NM-SETTING-SECRET-FLAG-NOT-REQUIRED:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-SECRET-FLAG-NOT-REQUIRED:CAPS">
+<ANCHOR id="NMSettingCompareFlags" href="libnm-util/NMSetting.html#NMSettingCompareFlags">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-EXACT:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-EXACT:CAPS">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-FUZZY:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-FUZZY:CAPS">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-AGENT-OWNED-SECRETS:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-AGENT-OWNED-SECRETS:CAPS">
+<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-NOT-SAVED-SECRETS:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-NOT-SAVED-SECRETS:CAPS">
<ANCHOR id="NMSetting-struct" href="libnm-util/NMSetting.html#NMSetting-struct">
<ANCHOR id="NMSettingClass" href="libnm-util/NMSetting.html#NMSettingClass">
<ANCHOR id="NMSettingValueIterFn" href="libnm-util/NMSetting.html#NMSettingValueIterFn">
@@ -99,11 +107,6 @@
<ANCHOR id="nm-setting-duplicate" href="libnm-util/NMSetting.html#nm-setting-duplicate">
<ANCHOR id="nm-setting-get-name" href="libnm-util/NMSetting.html#nm-setting-get-name">
<ANCHOR id="nm-setting-verify" href="libnm-util/NMSetting.html#nm-setting-verify">
-<ANCHOR id="NMSettingCompareFlags" href="libnm-util/NMSetting.html#NMSettingCompareFlags">
-<ANCHOR id="NM-SETTING-COMPARE-FLAG-EXACT:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-EXACT:CAPS">
-<ANCHOR id="NM-SETTING-COMPARE-FLAG-FUZZY:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-FUZZY:CAPS">
-<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS">
-<ANCHOR id="NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS">
<ANCHOR id="nm-setting-compare" href="libnm-util/NMSetting.html#nm-setting-compare">
<ANCHOR id="NMSettingDiffResult" href="libnm-util/NMSetting.html#NMSettingDiffResult">
<ANCHOR id="NM-SETTING-DIFF-RESULT-UNKNOWN:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-DIFF-RESULT-UNKNOWN:CAPS">
@@ -174,6 +177,9 @@
<ANCHOR id="NMSettingWired.details" href="libnm-util/NMSettingWired.html#NMSettingWired.details">
<ANCHOR id="NM-SETTING-WIRED-SETTING-NAME:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingWiredError" href="libnm-util/NMSettingWired.html#NMSettingWiredError">
+<ANCHOR id="NM-SETTING-WIRED-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-WIRED-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIRED-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-ERROR-MISSING-PROPERTY:CAPS">
<ANCHOR id="NM-TYPE-SETTING-WIRED-ERROR:CAPS" href="libnm-util/NMSettingWired.html#NM-TYPE-SETTING-WIRED-ERROR:CAPS">
<ANCHOR id="NM-SETTING-WIRED-ERROR:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-ERROR:CAPS">
<ANCHOR id="nm-setting-wired-error-quark" href="libnm-util/NMSettingWired.html#nm-setting-wired-error-quark">
@@ -183,6 +189,7 @@
<ANCHOR id="NM-SETTING-WIRED-AUTO-NEGOTIATE:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-AUTO-NEGOTIATE:CAPS">
<ANCHOR id="NM-SETTING-WIRED-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS:CAPS">
<ANCHOR id="NM-SETTING-WIRED-CLONED-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-CLONED-MAC-ADDRESS:CAPS">
+<ANCHOR id="NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS">
<ANCHOR id="NM-SETTING-WIRED-MTU:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-MTU:CAPS">
<ANCHOR id="NM-SETTING-WIRED-S390-SUBCHANNELS:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-S390-SUBCHANNELS:CAPS">
<ANCHOR id="NM-SETTING-WIRED-S390-NETTYPE:CAPS" href="libnm-util/NMSettingWired.html#NM-SETTING-WIRED-S390-NETTYPE:CAPS">
@@ -197,6 +204,7 @@
<ANCHOR id="nm-setting-wired-get-auto-negotiate" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-auto-negotiate">
<ANCHOR id="nm-setting-wired-get-mac-address" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-mac-address">
<ANCHOR id="nm-setting-wired-get-cloned-mac-address" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-cloned-mac-address">
+<ANCHOR id="nm-setting-wired-get-mac-address-blacklist" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist">
<ANCHOR id="nm-setting-wired-get-mtu" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-mtu">
<ANCHOR id="nm-setting-wired-get-s390-subchannels" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-s390-subchannels">
<ANCHOR id="nm-setting-wired-get-s390-nettype" href="libnm-util/NMSettingWired.html#nm-setting-wired-get-s390-nettype">
@@ -210,6 +218,7 @@
<ANCHOR id="NMSettingWired--cloned-mac-address" href="libnm-util/NMSettingWired.html#NMSettingWired--cloned-mac-address">
<ANCHOR id="NMSettingWired--duplex" href="libnm-util/NMSettingWired.html#NMSettingWired--duplex">
<ANCHOR id="NMSettingWired--mac-address" href="libnm-util/NMSettingWired.html#NMSettingWired--mac-address">
+<ANCHOR id="NMSettingWired--mac-address-blacklist" href="libnm-util/NMSettingWired.html#NMSettingWired--mac-address-blacklist">
<ANCHOR id="NMSettingWired--mtu" href="libnm-util/NMSettingWired.html#NMSettingWired--mtu">
<ANCHOR id="NMSettingWired--port" href="libnm-util/NMSettingWired.html#NMSettingWired--port">
<ANCHOR id="NMSettingWired--s390-nettype" href="libnm-util/NMSettingWired.html#NMSettingWired--s390-nettype">
@@ -225,6 +234,11 @@
<ANCHOR id="NMSettingWireless.details" href="libnm-util/NMSettingWireless.html#NMSettingWireless.details">
<ANCHOR id="NM-SETTING-WIRELESS-SETTING-NAME:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingWirelessError" href="libnm-util/NMSettingWireless.html#NMSettingWirelessError">
+<ANCHOR id="NM-SETTING-WIRELESS-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-ERROR-MISSING-SECURITY-SETTING:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-MISSING-SECURITY-SETTING:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-ERROR-CHANNEL-REQUIRES-BAND:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-CHANNEL-REQUIRES-BAND:CAPS">
<ANCHOR id="NM-TYPE-SETTING-WIRELESS-ERROR:CAPS" href="libnm-util/NMSettingWireless.html#NM-TYPE-SETTING-WIRELESS-ERROR:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-ERROR:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR:CAPS">
<ANCHOR id="nm-setting-wireless-error-quark" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-error-quark">
@@ -237,6 +251,7 @@
<ANCHOR id="NM-SETTING-WIRELESS-TX-POWER:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-TX-POWER:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-MTU:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-MTU:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SEEN-BSSIDS:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-SEEN-BSSIDS:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SEC:CAPS" href="libnm-util/NMSettingWireless.html#NM-SETTING-WIRELESS-SEC:CAPS">
@@ -255,6 +270,7 @@
<ANCHOR id="nm-setting-wireless-get-tx-power" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-tx-power">
<ANCHOR id="nm-setting-wireless-get-mac-address" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mac-address">
<ANCHOR id="nm-setting-wireless-get-cloned-mac-address" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address">
+<ANCHOR id="nm-setting-wireless-get-mac-address-blacklist" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist">
<ANCHOR id="nm-setting-wireless-get-mtu" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-mtu">
<ANCHOR id="nm-setting-wireless-get-security" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-get-security">
<ANCHOR id="nm-setting-wireless-add-seen-bssid" href="libnm-util/NMSettingWireless.html#nm-setting-wireless-add-seen-bssid">
@@ -267,6 +283,7 @@
<ANCHOR id="NMSettingWireless--channel" href="libnm-util/NMSettingWireless.html#NMSettingWireless--channel">
<ANCHOR id="NMSettingWireless--cloned-mac-address" href="libnm-util/NMSettingWireless.html#NMSettingWireless--cloned-mac-address">
<ANCHOR id="NMSettingWireless--mac-address" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mac-address">
+<ANCHOR id="NMSettingWireless--mac-address-blacklist" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mac-address-blacklist">
<ANCHOR id="NMSettingWireless--mode" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mode">
<ANCHOR id="NMSettingWireless--mtu" href="libnm-util/NMSettingWireless.html#NMSettingWireless--mtu">
<ANCHOR id="NMSettingWireless--rate" href="libnm-util/NMSettingWireless.html#NMSettingWireless--rate">
@@ -283,10 +300,21 @@
<ANCHOR id="NMSettingWirelessSecurity.details" href="libnm-util/NMSettingWirelessSecurity.html#NMSettingWirelessSecurity.details">
<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-SETTING-NAME:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingWirelessSecurityError" href="libnm-util/NMSettingWirelessSecurity.html#NMSettingWirelessSecurityError">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-802-1X-SETTING:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-802-1X-SETTING:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-802-1X:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-802-1X:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-USERNAME:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-USERNAME:CAPS">
+<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR-SHARED-KEY-REQUIRES-WEP:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-SHARED-KEY-REQUIRES-WEP:CAPS">
<ANCHOR id="NM-TYPE-SETTING-WIRELESS-SECURITY-ERROR:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-TYPE-SETTING-WIRELESS-SECURITY-ERROR:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-ERROR:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR:CAPS">
<ANCHOR id="nm-setting-wireless-security-error-quark" href="libnm-util/NMSettingWirelessSecurity.html#nm-setting-wireless-security-error-quark">
<ANCHOR id="NMWepKeyType" href="libnm-util/NMSettingWirelessSecurity.html#NMWepKeyType">
+<ANCHOR id="NM-WEP-KEY-TYPE-UNKNOWN:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-UNKNOWN:CAPS">
+<ANCHOR id="NM-WEP-KEY-TYPE-KEY:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-KEY:CAPS">
+<ANCHOR id="NM-WEP-KEY-TYPE-PASSPHRASE:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-PASSPHRASE:CAPS">
+<ANCHOR id="NM-WEP-KEY-TYPE-LAST:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-LAST:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-KEY-MGMT:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-KEY-MGMT:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-WEP-TX-KEYIDX:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-WEP-TX-KEYIDX:CAPS">
<ANCHOR id="NM-SETTING-WIRELESS-SECURITY-AUTH-ALG:CAPS" href="libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-AUTH-ALG:CAPS">
@@ -362,6 +390,10 @@
<ANCHOR id="NMSettingBluetooth.details" href="libnm-util/NMSettingBluetooth.html#NMSettingBluetooth.details">
<ANCHOR id="NM-SETTING-BLUETOOTH-SETTING-NAME:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingBluetoothError" href="libnm-util/NMSettingBluetooth.html#NMSettingBluetoothError">
+<ANCHOR id="NM-SETTING-BLUETOOTH-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-BLUETOOTH-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-BLUETOOTH-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-BLUETOOTH-ERROR-TYPE-SETTING-NOT-FOUND:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-TYPE-SETTING-NOT-FOUND:CAPS">
<ANCHOR id="NM-TYPE-SETTING-BLUETOOTH-ERROR:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-TYPE-SETTING-BLUETOOTH-ERROR:CAPS">
<ANCHOR id="NM-SETTING-BLUETOOTH-ERROR:CAPS" href="libnm-util/NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR:CAPS">
<ANCHOR id="nm-setting-bluetooth-error-quark" href="libnm-util/NMSettingBluetooth.html#nm-setting-bluetooth-error-quark">
@@ -387,6 +419,10 @@
<ANCHOR id="NMSettingSerial.details" href="libnm-util/NMSettingSerial.html#NMSettingSerial.details">
<ANCHOR id="NM-SETTING-SERIAL-SETTING-NAME:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingSerialError" href="libnm-util/NMSettingSerial.html#NMSettingSerialError">
+<ANCHOR id="NM-SETTING-SERIAL-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-SERIAL-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-SERIAL-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-SERIAL-ERROR-MISSING-PPP-SETTING:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-MISSING-PPP-SETTING:CAPS">
<ANCHOR id="NM-TYPE-SETTING-SERIAL-ERROR:CAPS" href="libnm-util/NMSettingSerial.html#NM-TYPE-SETTING-SERIAL-ERROR:CAPS">
<ANCHOR id="NM-SETTING-SERIAL-ERROR:CAPS" href="libnm-util/NMSettingSerial.html#NM-SETTING-SERIAL-ERROR:CAPS">
<ANCHOR id="nm-setting-serial-error-quark" href="libnm-util/NMSettingSerial.html#nm-setting-serial-error-quark">
@@ -419,6 +455,10 @@
<ANCHOR id="NMSettingCdma.details" href="libnm-util/NMSettingCdma.html#NMSettingCdma.details">
<ANCHOR id="NM-SETTING-CDMA-SETTING-NAME:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingCdmaError" href="libnm-util/NMSettingCdma.html#NMSettingCdmaError">
+<ANCHOR id="NM-SETTING-CDMA-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-CDMA-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-CDMA-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-CDMA-ERROR-MISSING-SERIAL-SETTING:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-ERROR-MISSING-SERIAL-SETTING:CAPS">
<ANCHOR id="NM-TYPE-SETTING-CDMA-ERROR:CAPS" href="libnm-util/NMSettingCdma.html#NM-TYPE-SETTING-CDMA-ERROR:CAPS">
<ANCHOR id="NM-SETTING-CDMA-ERROR:CAPS" href="libnm-util/NMSettingCdma.html#NM-SETTING-CDMA-ERROR:CAPS">
<ANCHOR id="nm-setting-cdma-error-quark" href="libnm-util/NMSettingCdma.html#nm-setting-cdma-error-quark">
@@ -448,6 +488,10 @@
<ANCHOR id="NMSettingGsm.details" href="libnm-util/NMSettingGsm.html#NMSettingGsm.details">
<ANCHOR id="NM-SETTING-GSM-SETTING-NAME:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingGsmError" href="libnm-util/NMSettingGsm.html#NMSettingGsmError">
+<ANCHOR id="NM-SETTING-GSM-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-GSM-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-GSM-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-GSM-ERROR-MISSING-SERIAL-SETTING:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-ERROR-MISSING-SERIAL-SETTING:CAPS">
<ANCHOR id="NM-TYPE-SETTING-GSM-ERROR:CAPS" href="libnm-util/NMSettingGsm.html#NM-TYPE-SETTING-GSM-ERROR:CAPS">
<ANCHOR id="NM-SETTING-GSM-ERROR:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-ERROR:CAPS">
<ANCHOR id="nm-setting-gsm-error-quark" href="libnm-util/NMSettingGsm.html#nm-setting-gsm-error-quark">
@@ -463,7 +507,27 @@
<ANCHOR id="NM-SETTING-GSM-PIN-FLAGS:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-PIN-FLAGS:CAPS">
<ANCHOR id="NM-SETTING-GSM-HOME-ONLY:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-HOME-ONLY:CAPS">
<ANCHOR id="NMSettingGsmNetworkType" href="libnm-util/NMSettingGsm.html#NMSettingGsmNetworkType">
+<ANCHOR id="NM-SETTING-GSM-NETWORK-TYPE-ANY:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-ANY:CAPS">
+<ANCHOR id="NM-SETTING-GSM-NETWORK-TYPE-UMTS-HSPA:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-UMTS-HSPA:CAPS">
+<ANCHOR id="NM-SETTING-GSM-NETWORK-TYPE-GPRS-EDGE:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-GPRS-EDGE:CAPS">
+<ANCHOR id="NM-SETTING-GSM-NETWORK-TYPE-PREFER-UMTS-HSPA:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-PREFER-UMTS-HSPA:CAPS">
+<ANCHOR id="NM-SETTING-GSM-NETWORK-TYPE-PREFER-GPRS-EDGE:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-PREFER-GPRS-EDGE:CAPS">
<ANCHOR id="NMSettingGsmNetworkBand" href="libnm-util/NMSettingGsm.html#NMSettingGsmNetworkBand">
+<ANCHOR id="NM-SETTING-GSM-BAND-UNKNOWN:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-ANY:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-ANY:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-EGSM:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-EGSM:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-DCS:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-DCS:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-PCS:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-PCS:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-G850:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-G850:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U2100:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U2100:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U1800:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U1800:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U17IV:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U17IV:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U800:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U800:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U850:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U850:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U900:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U900:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U17IX:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U17IX:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U1900:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U1900:CAPS">
+<ANCHOR id="NM-SETTING-GSM-BAND-U2600:CAPS" href="libnm-util/NMSettingGsm.html#NM-SETTING-GSM-BAND-U2600:CAPS">
<ANCHOR id="NMSettingGsm-struct" href="libnm-util/NMSettingGsm.html#NMSettingGsm-struct">
<ANCHOR id="NMSettingGsmClass" href="libnm-util/NMSettingGsm.html#NMSettingGsmClass">
<ANCHOR id="nm-setting-gsm-get-type" href="libnm-util/NMSettingGsm.html#nm-setting-gsm-get-type">
@@ -491,6 +555,32 @@
<ANCHOR id="NMSettingGsm--pin" href="libnm-util/NMSettingGsm.html#NMSettingGsm--pin">
<ANCHOR id="NMSettingGsm--pin-flags" href="libnm-util/NMSettingGsm.html#NMSettingGsm--pin-flags">
<ANCHOR id="NMSettingGsm--username" href="libnm-util/NMSettingGsm.html#NMSettingGsm--username">
+<ANCHOR id="NMSettingWimax" href="libnm-util/NMSettingWimax.html">
+<ANCHOR id="NMSettingWimax.synopsis" href="libnm-util/NMSettingWimax.html#NMSettingWimax.synopsis">
+<ANCHOR id="NMSettingWimaxError" href="libnm-util/NMSettingWimax.html#NMSettingWimaxError">
+<ANCHOR id="NMSettingWimax.object-hierarchy" href="libnm-util/NMSettingWimax.html#NMSettingWimax.object-hierarchy">
+<ANCHOR id="NMSettingWimax.properties" href="libnm-util/NMSettingWimax.html#NMSettingWimax.properties">
+<ANCHOR id="NMSettingWimax.description" href="libnm-util/NMSettingWimax.html#NMSettingWimax.description">
+<ANCHOR id="NMSettingWimax.details" href="libnm-util/NMSettingWimax.html#NMSettingWimax.details">
+<ANCHOR id="NM-SETTING-WIMAX-SETTING-NAME:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-SETTING-NAME:CAPS">
+<ANCHOR id="NMSettingWimaxError" href="libnm-util/NMSettingWimax.html#NMSettingWimaxError">
+<ANCHOR id="NM-SETTING-WIMAX-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-WIMAX-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-WIMAX-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-TYPE-SETTING-WIMAX-ERROR:CAPS" href="libnm-util/NMSettingWimax.html#NM-TYPE-SETTING-WIMAX-ERROR:CAPS">
+<ANCHOR id="NM-SETTING-WIMAX-ERROR:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-ERROR:CAPS">
+<ANCHOR id="nm-setting-wimax-error-quark" href="libnm-util/NMSettingWimax.html#nm-setting-wimax-error-quark">
+<ANCHOR id="NM-SETTING-WIMAX-NETWORK-NAME:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-NETWORK-NAME:CAPS">
+<ANCHOR id="NM-SETTING-WIMAX-MAC-ADDRESS:CAPS" href="libnm-util/NMSettingWimax.html#NM-SETTING-WIMAX-MAC-ADDRESS:CAPS">
+<ANCHOR id="NMSettingWimax-struct" href="libnm-util/NMSettingWimax.html#NMSettingWimax-struct">
+<ANCHOR id="NMSettingWimaxClass" href="libnm-util/NMSettingWimax.html#NMSettingWimaxClass">
+<ANCHOR id="nm-setting-wimax-get-type" href="libnm-util/NMSettingWimax.html#nm-setting-wimax-get-type">
+<ANCHOR id="nm-setting-wimax-new" href="libnm-util/NMSettingWimax.html#nm-setting-wimax-new">
+<ANCHOR id="nm-setting-wimax-get-network-name" href="libnm-util/NMSettingWimax.html#nm-setting-wimax-get-network-name">
+<ANCHOR id="nm-setting-wimax-get-mac-address" href="libnm-util/NMSettingWimax.html#nm-setting-wimax-get-mac-address">
+<ANCHOR id="NMSettingWimax.property-details" href="libnm-util/NMSettingWimax.html#NMSettingWimax.property-details">
+<ANCHOR id="NMSettingWimax--mac-address" href="libnm-util/NMSettingWimax.html#NMSettingWimax--mac-address">
+<ANCHOR id="NMSettingWimax--network-name" href="libnm-util/NMSettingWimax.html#NMSettingWimax--network-name">
<ANCHOR id="NMSettingOlpcMesh" href="libnm-util/NMSettingOlpcMesh.html">
<ANCHOR id="NMSettingOlpcMesh.synopsis" href="libnm-util/NMSettingOlpcMesh.html#NMSettingOlpcMesh.synopsis">
<ANCHOR id="NMSettingOlpcMeshError" href="libnm-util/NMSettingOlpcMesh.html#NMSettingOlpcMeshError">
@@ -535,6 +625,9 @@
<ANCHOR id="NM-SETTING-802-1X-CK-SCHEME-PATH:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-CK-SCHEME-PATH:CAPS">
<ANCHOR id="NM-SETTING-802-1X-SETTING-NAME:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-SETTING-NAME:CAPS">
<ANCHOR id="NMSetting8021xError" href="libnm-util/NMSetting8021x.html#NMSetting8021xError">
+<ANCHOR id="NM-SETTING-802-1X-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ERROR-MISSING-PROPERTY:CAPS">
<ANCHOR id="NM-TYPE-SETTING-802-1X-ERROR:CAPS" href="libnm-util/NMSetting8021x.html#NM-TYPE-SETTING-802-1X-ERROR:CAPS">
<ANCHOR id="NM-SETTING-802-1X-ERROR:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ERROR:CAPS">
<ANCHOR id="nm-setting-802-1x-error-quark" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-error-quark">
@@ -543,6 +636,8 @@
<ANCHOR id="NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS">
<ANCHOR id="NM-SETTING-802-1X-CA-CERT:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-CA-CERT:CAPS">
<ANCHOR id="NM-SETTING-802-1X-CA-PATH:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-CA-PATH:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-SUBJECT-MATCH:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-SUBJECT-MATCH:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS">
<ANCHOR id="NM-SETTING-802-1X-CLIENT-CERT:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-CLIENT-CERT:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PHASE1-PEAPVER:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPVER:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PHASE1-PEAPLABEL:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPLABEL:CAPS">
@@ -551,6 +646,8 @@
<ANCHOR id="NM-SETTING-802-1X-PHASE2-AUTHEAP:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-AUTHEAP:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PHASE2-CA-CERT:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-CERT:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PHASE2-CA-PATH:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-PATH:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS">
+<ANCHOR id="NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PASSWORD:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD:CAPS">
<ANCHOR id="NM-SETTING-802-1X-PASSWORD-FLAGS:CAPS" href="libnm-util/NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD-FLAGS:CAPS">
@@ -581,6 +678,12 @@
<ANCHOR id="nm-setting-802-1x-get-ca-cert-blob" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-blob">
<ANCHOR id="nm-setting-802-1x-get-ca-cert-path" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-path">
<ANCHOR id="nm-setting-802-1x-set-ca-cert" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-set-ca-cert">
+<ANCHOR id="nm-setting-802-1x-get-subject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-subject-match">
+<ANCHOR id="nm-setting-802-1x-get-num-altsubject-matches" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-num-altsubject-matches">
+<ANCHOR id="nm-setting-802-1x-get-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-add-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-add-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-remove-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-remove-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-clear-altsubject-matches" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-clear-altsubject-matches">
<ANCHOR id="nm-setting-802-1x-get-client-cert-scheme" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-client-cert-scheme">
<ANCHOR id="nm-setting-802-1x-get-client-cert-blob" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-client-cert-blob">
<ANCHOR id="nm-setting-802-1x-get-client-cert-path" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-client-cert-path">
@@ -594,6 +697,12 @@
<ANCHOR id="nm-setting-802-1x-get-phase2-ca-cert-blob" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-blob">
<ANCHOR id="nm-setting-802-1x-get-phase2-ca-cert-path" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-path">
<ANCHOR id="nm-setting-802-1x-set-phase2-ca-cert" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-set-phase2-ca-cert">
+<ANCHOR id="nm-setting-802-1x-get-phase2-subject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-subject-match">
+<ANCHOR id="nm-setting-802-1x-get-num-phase2-altsubject-matches" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-num-phase2-altsubject-matches">
+<ANCHOR id="nm-setting-802-1x-get-phase2-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-add-phase2-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-add-phase2-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-remove-phase2-altsubject-match" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-remove-phase2-altsubject-match">
+<ANCHOR id="nm-setting-802-1x-clear-phase2-altsubject-matches" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-clear-phase2-altsubject-matches">
<ANCHOR id="nm-setting-802-1x-get-phase2-client-cert-scheme" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-scheme">
<ANCHOR id="nm-setting-802-1x-get-phase2-client-cert-blob" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-blob">
<ANCHOR id="nm-setting-802-1x-get-phase2-client-cert-path" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-path">
@@ -617,6 +726,7 @@
<ANCHOR id="nm-setting-802-1x-get-phase2-private-key-password-flags" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-password-flags">
<ANCHOR id="nm-setting-802-1x-get-phase2-private-key-format" href="libnm-util/NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-format">
<ANCHOR id="NMSetting8021x.property-details" href="libnm-util/NMSetting8021x.html#NMSetting8021x.property-details">
+<ANCHOR id="NMSetting8021x--altsubject-matches" href="libnm-util/NMSetting8021x.html#NMSetting8021x--altsubject-matches">
<ANCHOR id="NMSetting8021x--anonymous-identity" href="libnm-util/NMSetting8021x.html#NMSetting8021x--anonymous-identity">
<ANCHOR id="NMSetting8021x--ca-cert" href="libnm-util/NMSetting8021x.html#NMSetting8021x--ca-cert">
<ANCHOR id="NMSetting8021x--ca-path" href="libnm-util/NMSetting8021x.html#NMSetting8021x--ca-path">
@@ -628,6 +738,7 @@
<ANCHOR id="NMSetting8021x--phase1-fast-provisioning" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase1-fast-provisioning">
<ANCHOR id="NMSetting8021x--phase1-peaplabel" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase1-peaplabel">
<ANCHOR id="NMSetting8021x--phase1-peapver" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase1-peapver">
+<ANCHOR id="NMSetting8021x--phase2-altsubject-matches" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches">
<ANCHOR id="NMSetting8021x--phase2-auth" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-auth">
<ANCHOR id="NMSetting8021x--phase2-autheap" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-autheap">
<ANCHOR id="NMSetting8021x--phase2-ca-cert" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-ca-cert">
@@ -636,9 +747,11 @@
<ANCHOR id="NMSetting8021x--phase2-private-key" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-private-key">
<ANCHOR id="NMSetting8021x--phase2-private-key-password" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-private-key-password">
<ANCHOR id="NMSetting8021x--phase2-private-key-password-flags" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-private-key-password-flags">
+<ANCHOR id="NMSetting8021x--phase2-subject-match" href="libnm-util/NMSetting8021x.html#NMSetting8021x--phase2-subject-match">
<ANCHOR id="NMSetting8021x--private-key" href="libnm-util/NMSetting8021x.html#NMSetting8021x--private-key">
<ANCHOR id="NMSetting8021x--private-key-password" href="libnm-util/NMSetting8021x.html#NMSetting8021x--private-key-password">
<ANCHOR id="NMSetting8021x--private-key-password-flags" href="libnm-util/NMSetting8021x.html#NMSetting8021x--private-key-password-flags">
+<ANCHOR id="NMSetting8021x--subject-match" href="libnm-util/NMSetting8021x.html#NMSetting8021x--subject-match">
<ANCHOR id="NMSetting8021x--system-ca-certs" href="libnm-util/NMSetting8021x.html#NMSetting8021x--system-ca-certs">
<ANCHOR id="NMSettingIP4Config" href="libnm-util/NMSettingIP4Config.html">
<ANCHOR id="NMSettingIP4Config.synopsis" href="libnm-util/NMSettingIP4Config.html#NMSettingIP4Config.synopsis">
@@ -651,6 +764,10 @@
<ANCHOR id="NMSettingIP4Config.details" href="libnm-util/NMSettingIP4Config.html#NMSettingIP4Config.details">
<ANCHOR id="NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingIP4ConfigError" href="libnm-util/NMSettingIP4Config.html#NMSettingIP4ConfigError">
+<ANCHOR id="NM-SETTING-IP4-CONFIG-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-IP4-CONFIG-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-IP4-CONFIG-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-IP4-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS">
<ANCHOR id="NM-TYPE-SETTING-IP4-CONFIG-ERROR:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-TYPE-SETTING-IP4-CONFIG-ERROR:CAPS">
<ANCHOR id="NM-SETTING-IP4-CONFIG-ERROR:CAPS" href="libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR:CAPS">
<ANCHOR id="nm-setting-ip4-config-error-quark" href="libnm-util/NMSettingIP4Config.html#nm-setting-ip4-config-error-quark">
@@ -755,6 +872,10 @@
<ANCHOR id="NMSettingIP6Config.details" href="libnm-util/NMSettingIP6Config.html#NMSettingIP6Config.details">
<ANCHOR id="NM-SETTING-IP6-CONFIG-SETTING-NAME:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingIP6ConfigError" href="libnm-util/NMSettingIP6Config.html#NMSettingIP6ConfigError">
+<ANCHOR id="NM-SETTING-IP6-CONFIG-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-IP6-CONFIG-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-IP6-CONFIG-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-IP6-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS">
<ANCHOR id="NM-TYPE-SETTING-IP6-CONFIG-ERROR:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-TYPE-SETTING-IP6-CONFIG-ERROR:CAPS">
<ANCHOR id="NM-SETTING-IP6-CONFIG-ERROR:CAPS" href="libnm-util/NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR:CAPS">
<ANCHOR id="nm-setting-ip6-config-error-quark" href="libnm-util/NMSettingIP6Config.html#nm-setting-ip6-config-error-quark">
@@ -849,6 +970,10 @@
<ANCHOR id="NMSettingPPP.details" href="libnm-util/NMSettingPPP.html#NMSettingPPP.details">
<ANCHOR id="NM-SETTING-PPP-SETTING-NAME:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingPPPError" href="libnm-util/NMSettingPPP.html#NMSettingPPPError">
+<ANCHOR id="NM-SETTING-PPP-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-PPP-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-PPP-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-PPP-ERROR-REQUIRE-MPPE-NOT-ALLOWED:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-ERROR-REQUIRE-MPPE-NOT-ALLOWED:CAPS">
<ANCHOR id="NM-TYPE-SETTING-PPP-ERROR:CAPS" href="libnm-util/NMSettingPPP.html#NM-TYPE-SETTING-PPP-ERROR:CAPS">
<ANCHOR id="NM-SETTING-PPP-ERROR:CAPS" href="libnm-util/NMSettingPPP.html#NM-SETTING-PPP-ERROR:CAPS">
<ANCHOR id="nm-setting-ppp-error-quark" href="libnm-util/NMSettingPPP.html#nm-setting-ppp-error-quark">
@@ -920,6 +1045,10 @@
<ANCHOR id="NMSettingPPPOE.details" href="libnm-util/NMSettingPPPOE.html#NMSettingPPPOE.details">
<ANCHOR id="NM-SETTING-PPPOE-SETTING-NAME:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingPPPOEError" href="libnm-util/NMSettingPPPOE.html#NMSettingPPPOEError">
+<ANCHOR id="NM-SETTING-PPPOE-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-PPPOE-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-PPPOE-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-MISSING-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-PPPOE-ERROR-MISSING-PPP-SETTING:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-MISSING-PPP-SETTING:CAPS">
<ANCHOR id="NM-TYPE-SETTING-PPPOE-ERROR:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-TYPE-SETTING-PPPOE-ERROR:CAPS">
<ANCHOR id="NM-SETTING-PPPOE-ERROR:CAPS" href="libnm-util/NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR:CAPS">
<ANCHOR id="nm-setting-pppoe-error-quark" href="libnm-util/NMSettingPPPOE.html#nm-setting-pppoe-error-quark">
@@ -949,6 +1078,9 @@
<ANCHOR id="NMSettingVPN.details" href="libnm-util/NMSettingVPN.html#NMSettingVPN.details">
<ANCHOR id="NM-SETTING-VPN-SETTING-NAME:CAPS" href="libnm-util/NMSettingVPN.html#NM-SETTING-VPN-SETTING-NAME:CAPS">
<ANCHOR id="NMSettingVpnError" href="libnm-util/NMSettingVPN.html#NMSettingVpnError">
+<ANCHOR id="NM-SETTING-VPN-ERROR-UNKNOWN:CAPS" href="libnm-util/NMSettingVPN.html#NM-SETTING-VPN-ERROR-UNKNOWN:CAPS">
+<ANCHOR id="NM-SETTING-VPN-ERROR-INVALID-PROPERTY:CAPS" href="libnm-util/NMSettingVPN.html#NM-SETTING-VPN-ERROR-INVALID-PROPERTY:CAPS">
+<ANCHOR id="NM-SETTING-VPN-ERROR-MISSING-PROPERTY:CAPS" href="libnm-util/NMSettingVPN.html#NM-SETTING-VPN-ERROR-MISSING-PROPERTY:CAPS">
<ANCHOR id="NM-TYPE-SETTING-VPN-ERROR:CAPS" href="libnm-util/NMSettingVPN.html#NM-TYPE-SETTING-VPN-ERROR:CAPS">
<ANCHOR id="NM-SETTING-VPN-ERROR:CAPS" href="libnm-util/NMSettingVPN.html#NM-SETTING-VPN-ERROR:CAPS">
<ANCHOR id="nm-setting-vpn-error-quark" href="libnm-util/NMSettingVPN.html#nm-setting-vpn-error-quark">
@@ -989,6 +1121,15 @@
<ANCHOR id="nm-utils-gvalue-hash-dup" href="libnm-util/libnm-util-nm-utils.html#nm-utils-gvalue-hash-dup">
<ANCHOR id="nm-utils-slist-free" href="libnm-util/libnm-util-nm-utils.html#nm-utils-slist-free">
<ANCHOR id="NMUtilsSecurityType" href="libnm-util/libnm-util-nm-utils.html#NMUtilsSecurityType">
+<ANCHOR id="NMU-SEC-INVALID:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-INVALID:CAPS">
+<ANCHOR id="NMU-SEC-NONE:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-NONE:CAPS">
+<ANCHOR id="NMU-SEC-STATIC-WEP:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-STATIC-WEP:CAPS">
+<ANCHOR id="NMU-SEC-LEAP:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-LEAP:CAPS">
+<ANCHOR id="NMU-SEC-DYNAMIC-WEP:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-DYNAMIC-WEP:CAPS">
+<ANCHOR id="NMU-SEC-WPA-PSK:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-WPA-PSK:CAPS">
+<ANCHOR id="NMU-SEC-WPA-ENTERPRISE:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-WPA-ENTERPRISE:CAPS">
+<ANCHOR id="NMU-SEC-WPA2-PSK:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-WPA2-PSK:CAPS">
+<ANCHOR id="NMU-SEC-WPA2-ENTERPRISE:CAPS" href="libnm-util/libnm-util-nm-utils.html#NMU-SEC-WPA2-ENTERPRISE:CAPS">
<ANCHOR id="nm-utils-security-valid" href="libnm-util/libnm-util-nm-utils.html#nm-utils-security-valid">
<ANCHOR id="nm-utils-ip4-addresses-from-gvalue" href="libnm-util/libnm-util-nm-utils.html#nm-utils-ip4-addresses-from-gvalue">
<ANCHOR id="nm-utils-ip4-addresses-to-gvalue" href="libnm-util/libnm-util-nm-utils.html#nm-utils-ip4-addresses-to-gvalue">
diff --git a/docs/libnm-util/html/libnm-util-nm-utils.html b/docs/libnm-util/html/libnm-util-nm-utils.html
index f26503392..00c111267 100644
--- a/docs/libnm-util/html/libnm-util-nm-utils.html
+++ b/docs/libnm-util/html/libnm-util-nm-utils.html
@@ -55,12 +55,12 @@ const <span class="returnvalue">char</span> * <a class="link" href="libnm
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> elem_destroy_fn</code></em>);
enum <a class="link" href="libnm-util-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType">NMUtilsSecurityType</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="libnm-util-nm-utils.html#nm-utils-security-valid" title="nm_utils_security_valid ()">nm_utils_security_valid</a> (<em class="parameter"><code><a class="link" href="libnm-util-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType"><span class="type">NMUtilsSecurityType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> wifi_caps</code></em>,
+ <em class="parameter"><code><span class="type">NMDeviceWifiCapabilities</span> wifi_caps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> have_ap</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> adhoc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_flags</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_wpa</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_rsn</code></em>);
+ <em class="parameter"><code><span class="type">NM80211ApFlags</span> ap_flags</code></em>,
+ <em class="parameter"><code><span class="type">NM80211ApSecurityFlags</span> ap_wpa</code></em>,
+ <em class="parameter"><code><span class="type">NM80211ApSecurityFlags</span> ap_rsn</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * <a class="link" href="libnm-util-nm-utils.html#nm-utils-ip4-addresses-from-gvalue" title="nm_utils_ip4_addresses_from_gvalue ()">nm_utils_ip4_addresses_from_gvalue</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
<span class="returnvalue">void</span> <a class="link" href="libnm-util-nm-utils.html#nm-utils-ip4-addresses-to-gvalue" title="nm_utils_ip4_addresses_to_gvalue ()">nm_utils_ip4_addresses_to_gvalue</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *list</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
@@ -118,7 +118,7 @@ libnm-util can also be done. This function can be called more than once.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>location to store error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>location to store error, or <a href="/usr/share/gtk-doc/html/liboil/liboil-liboiljunk.html#NULL:CAPS"><code class="literal">NULL</code></a>
</td>
</tr>
<tr>
@@ -346,18 +346,73 @@ Utility function to free a <a href="http://library.gnome.org/devel/glib/unstable
} NMUtilsSecurityType;
</pre>
<p>
+Describes generic security mechanisms that 802.11 access points may offer.
+Used with <a class="link" href="libnm-util-nm-utils.html#nm-utils-security-valid" title="nm_utils_security_valid ()"><code class="function">nm_utils_security_valid()</code></a> for checking whether a given access
+point is compatible with a network device.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NMU-SEC-INVALID:CAPS"></a><span class="term"><code class="literal">NMU_SEC_INVALID</code></span></p></td>
+<td>unknown or invalid security, placeholder and not used
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-NONE:CAPS"></a><span class="term"><code class="literal">NMU_SEC_NONE</code></span></p></td>
+<td>unencrypted and open
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-STATIC-WEP:CAPS"></a><span class="term"><code class="literal">NMU_SEC_STATIC_WEP</code></span></p></td>
+<td>static WEP keys are used for encryption
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-LEAP:CAPS"></a><span class="term"><code class="literal">NMU_SEC_LEAP</code></span></p></td>
+<td>Cisco LEAP is used for authentication and for generating the
+dynamic WEP keys automatically
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-DYNAMIC-WEP:CAPS"></a><span class="term"><code class="literal">NMU_SEC_DYNAMIC_WEP</code></span></p></td>
+<td>standard 802.1x is used for authentication and
+generating the dynamic WEP keys automatically
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-WPA-PSK:CAPS"></a><span class="term"><code class="literal">NMU_SEC_WPA_PSK</code></span></p></td>
+<td>WPA1 is used with Pre-Shared Keys (PSK)
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-WPA-ENTERPRISE:CAPS"></a><span class="term"><code class="literal">NMU_SEC_WPA_ENTERPRISE</code></span></p></td>
+<td>WPA1 is used with 802.1x authentication
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-WPA2-PSK:CAPS"></a><span class="term"><code class="literal">NMU_SEC_WPA2_PSK</code></span></p></td>
+<td>WPA2/RSN is used with Pre-Shared Keys (PSK)
+</td>
+</tr>
+<tr>
+<td><p><a name="NMU-SEC-WPA2-ENTERPRISE:CAPS"></a><span class="term"><code class="literal">NMU_SEC_WPA2_ENTERPRISE</code></span></p></td>
+<td>WPA2 is used with 802.1x authentication
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="nm-utils-security-valid"></a><h3>nm_utils_security_valid ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> nm_utils_security_valid (<em class="parameter"><code><a class="link" href="libnm-util-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType"><span class="type">NMUtilsSecurityType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> wifi_caps</code></em>,
+ <em class="parameter"><code><span class="type">NMDeviceWifiCapabilities</span> wifi_caps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> have_ap</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> adhoc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_flags</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_wpa</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ap_rsn</code></em>);</pre>
+ <em class="parameter"><code><span class="type">NM80211ApFlags</span> ap_flags</code></em>,
+ <em class="parameter"><code><span class="type">NM80211ApSecurityFlags</span> ap_wpa</code></em>,
+ <em class="parameter"><code><span class="type">NM80211ApSecurityFlags</span> ap_rsn</code></em>);</pre>
<p>
Given a set of device capabilities, and a desired security type to check
against, determines whether the combination of device, desired security
@@ -369,7 +424,7 @@ type, and AP capabilities intersect.
<tr>
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
<td>the security type to check AP flags and device capabilties against,
-e.g. <span class="type">NMU_SEC_STATIC_WEP</span>
+e.g. <a class="link" href="libnm-util-nm-utils.html#NMU-SEC-STATIC-WEP:CAPS"><span class="type">NMU_SEC_STATIC_WEP</span></a>
</td>
</tr>
<tr>
diff --git a/docs/libnm-util/html/libnm-util.devhelp b/docs/libnm-util/html/libnm-util.devhelp
index b8b98e40f..21ba39f23 100644
--- a/docs/libnm-util/html/libnm-util.devhelp
+++ b/docs/libnm-util/html/libnm-util.devhelp
@@ -13,6 +13,7 @@
<sub name="NMSettingSerial" link="NMSettingSerial.html"/>
<sub name="NMSettingCdma" link="NMSettingCdma.html"/>
<sub name="NMSettingGsm" link="NMSettingGsm.html"/>
+ <sub name="NMSettingWimax" link="NMSettingWimax.html"/>
<sub name="NMSettingOlpcMesh" link="NMSettingOlpcMesh.html"/>
<sub name="NMSetting8021x" link="NMSetting8021x.html"/>
<sub name="NMSettingIP4Config" link="NMSettingIP4Config.html"/>
@@ -86,6 +87,7 @@
<function name="NM_SETTING_PARAM_FUZZY_IGNORE" link="NMSetting.html#NM-SETTING-PARAM-FUZZY-IGNORE:CAPS"/>
<function name="NM_SETTING_NAME" link="NMSetting.html#NM-SETTING-NAME:CAPS"/>
<function name="enum NMSettingSecretFlags" link="NMSetting.html#NMSettingSecretFlags"/>
+ <function name="enum NMSettingCompareFlags" link="NMSetting.html#NMSettingCompareFlags"/>
<function name="NMSetting" link="NMSetting.html#NMSetting-struct"/>
<function name="NMSettingClass" link="NMSetting.html#NMSettingClass"/>
<function name="NMSettingValueIterFn ()" link="NMSetting.html#NMSettingValueIterFn"/>
@@ -96,7 +98,6 @@
<function name="nm_setting_duplicate ()" link="NMSetting.html#nm-setting-duplicate"/>
<function name="nm_setting_get_name ()" link="NMSetting.html#nm-setting-get-name"/>
<function name="nm_setting_verify ()" link="NMSetting.html#nm-setting-verify"/>
- <function name="enum NMSettingCompareFlags" link="NMSetting.html#NMSettingCompareFlags"/>
<function name="nm_setting_compare ()" link="NMSetting.html#nm-setting-compare"/>
<function name="enum NMSettingDiffResult" link="NMSetting.html#NMSettingDiffResult"/>
<function name="nm_setting_diff ()" link="NMSetting.html#nm-setting-diff"/>
@@ -153,6 +154,7 @@
<function name="NM_SETTING_WIRED_AUTO_NEGOTIATE" link="NMSettingWired.html#NM-SETTING-WIRED-AUTO-NEGOTIATE:CAPS"/>
<function name="NM_SETTING_WIRED_MAC_ADDRESS" link="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS:CAPS"/>
<function name="NM_SETTING_WIRED_CLONED_MAC_ADDRESS" link="NMSettingWired.html#NM-SETTING-WIRED-CLONED-MAC-ADDRESS:CAPS"/>
+ <function name="NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST" link="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS"/>
<function name="NM_SETTING_WIRED_MTU" link="NMSettingWired.html#NM-SETTING-WIRED-MTU:CAPS"/>
<function name="NM_SETTING_WIRED_S390_SUBCHANNELS" link="NMSettingWired.html#NM-SETTING-WIRED-S390-SUBCHANNELS:CAPS"/>
<function name="NM_SETTING_WIRED_S390_NETTYPE" link="NMSettingWired.html#NM-SETTING-WIRED-S390-NETTYPE:CAPS"/>
@@ -167,6 +169,7 @@
<function name="nm_setting_wired_get_auto_negotiate ()" link="NMSettingWired.html#nm-setting-wired-get-auto-negotiate"/>
<function name="nm_setting_wired_get_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address"/>
<function name="nm_setting_wired_get_cloned_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-cloned-mac-address"/>
+ <function name="nm_setting_wired_get_mac_address_blacklist ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist"/>
<function name="nm_setting_wired_get_mtu ()" link="NMSettingWired.html#nm-setting-wired-get-mtu"/>
<function name="nm_setting_wired_get_s390_subchannels ()" link="NMSettingWired.html#nm-setting-wired-get-s390-subchannels"/>
<function name="nm_setting_wired_get_s390_nettype ()" link="NMSettingWired.html#nm-setting-wired-get-s390-nettype"/>
@@ -179,6 +182,7 @@
<function name="The &quot;cloned-mac-address&quot; property" link="NMSettingWired.html#NMSettingWired--cloned-mac-address"/>
<function name="The &quot;duplex&quot; property" link="NMSettingWired.html#NMSettingWired--duplex"/>
<function name="The &quot;mac-address&quot; property" link="NMSettingWired.html#NMSettingWired--mac-address"/>
+ <function name="The &quot;mac-address-blacklist&quot; property" link="NMSettingWired.html#NMSettingWired--mac-address-blacklist"/>
<function name="The &quot;mtu&quot; property" link="NMSettingWired.html#NMSettingWired--mtu"/>
<function name="The &quot;port&quot; property" link="NMSettingWired.html#NMSettingWired--port"/>
<function name="The &quot;s390-nettype&quot; property" link="NMSettingWired.html#NMSettingWired--s390-nettype"/>
@@ -199,6 +203,7 @@
<function name="NM_SETTING_WIRELESS_TX_POWER" link="NMSettingWireless.html#NM-SETTING-WIRELESS-TX-POWER:CAPS"/>
<function name="NM_SETTING_WIRELESS_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS"/>
<function name="NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS"/>
+ <function name="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS"/>
<function name="NM_SETTING_WIRELESS_MTU" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MTU:CAPS"/>
<function name="NM_SETTING_WIRELESS_SEEN_BSSIDS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-SEEN-BSSIDS:CAPS"/>
<function name="NM_SETTING_WIRELESS_SEC" link="NMSettingWireless.html#NM-SETTING-WIRELESS-SEC:CAPS"/>
@@ -217,6 +222,7 @@
<function name="nm_setting_wireless_get_tx_power ()" link="NMSettingWireless.html#nm-setting-wireless-get-tx-power"/>
<function name="nm_setting_wireless_get_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address"/>
<function name="nm_setting_wireless_get_cloned_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address"/>
+ <function name="nm_setting_wireless_get_mac_address_blacklist ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist"/>
<function name="nm_setting_wireless_get_mtu ()" link="NMSettingWireless.html#nm-setting-wireless-get-mtu"/>
<function name="nm_setting_wireless_get_security ()" link="NMSettingWireless.html#nm-setting-wireless-get-security"/>
<function name="nm_setting_wireless_add_seen_bssid ()" link="NMSettingWireless.html#nm-setting-wireless-add-seen-bssid"/>
@@ -228,6 +234,7 @@
<function name="The &quot;channel&quot; property" link="NMSettingWireless.html#NMSettingWireless--channel"/>
<function name="The &quot;cloned-mac-address&quot; property" link="NMSettingWireless.html#NMSettingWireless--cloned-mac-address"/>
<function name="The &quot;mac-address&quot; property" link="NMSettingWireless.html#NMSettingWireless--mac-address"/>
+ <function name="The &quot;mac-address-blacklist&quot; property" link="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist"/>
<function name="The &quot;mode&quot; property" link="NMSettingWireless.html#NMSettingWireless--mode"/>
<function name="The &quot;mtu&quot; property" link="NMSettingWireless.html#NMSettingWireless--mtu"/>
<function name="The &quot;rate&quot; property" link="NMSettingWireless.html#NMSettingWireless--rate"/>
@@ -412,6 +419,21 @@
<function name="The &quot;pin&quot; property" link="NMSettingGsm.html#NMSettingGsm--pin"/>
<function name="The &quot;pin-flags&quot; property" link="NMSettingGsm.html#NMSettingGsm--pin-flags"/>
<function name="The &quot;username&quot; property" link="NMSettingGsm.html#NMSettingGsm--username"/>
+ <function name="NM_SETTING_WIMAX_SETTING_NAME" link="NMSettingWimax.html#NM-SETTING-WIMAX-SETTING-NAME:CAPS"/>
+ <function name="enum NMSettingWimaxError" link="NMSettingWimax.html#NMSettingWimaxError"/>
+ <function name="NM_TYPE_SETTING_WIMAX_ERROR" link="NMSettingWimax.html#NM-TYPE-SETTING-WIMAX-ERROR:CAPS"/>
+ <function name="NM_SETTING_WIMAX_ERROR" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR:CAPS"/>
+ <function name="nm_setting_wimax_error_quark ()" link="NMSettingWimax.html#nm-setting-wimax-error-quark"/>
+ <function name="NM_SETTING_WIMAX_NETWORK_NAME" link="NMSettingWimax.html#NM-SETTING-WIMAX-NETWORK-NAME:CAPS"/>
+ <function name="NM_SETTING_WIMAX_MAC_ADDRESS" link="NMSettingWimax.html#NM-SETTING-WIMAX-MAC-ADDRESS:CAPS"/>
+ <function name="NMSettingWimax" link="NMSettingWimax.html#NMSettingWimax-struct"/>
+ <function name="NMSettingWimaxClass" link="NMSettingWimax.html#NMSettingWimaxClass"/>
+ <function name="nm_setting_wimax_get_type ()" link="NMSettingWimax.html#nm-setting-wimax-get-type"/>
+ <function name="nm_setting_wimax_new ()" link="NMSettingWimax.html#nm-setting-wimax-new"/>
+ <function name="nm_setting_wimax_get_network_name ()" link="NMSettingWimax.html#nm-setting-wimax-get-network-name"/>
+ <function name="nm_setting_wimax_get_mac_address ()" link="NMSettingWimax.html#nm-setting-wimax-get-mac-address"/>
+ <function name="The &quot;mac-address&quot; property" link="NMSettingWimax.html#NMSettingWimax--mac-address"/>
+ <function name="The &quot;network-name&quot; property" link="NMSettingWimax.html#NMSettingWimax--network-name"/>
<function name="NM_SETTING_OLPC_MESH_SETTING_NAME" link="NMSettingOlpcMesh.html#NM-SETTING-OLPC-MESH-SETTING-NAME:CAPS"/>
<function name="enum NMSettingOlpcMeshError" link="NMSettingOlpcMesh.html#NMSettingOlpcMeshError"/>
<function name="NM_TYPE_SETTING_OLPC_MESH_ERROR" link="NMSettingOlpcMesh.html#NM-TYPE-SETTING-OLPC-MESH-ERROR:CAPS"/>
@@ -442,6 +464,8 @@
<function name="NM_SETTING_802_1X_ANONYMOUS_IDENTITY" link="NMSetting8021x.html#NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS"/>
<function name="NM_SETTING_802_1X_CA_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-CA-CERT:CAPS"/>
<function name="NM_SETTING_802_1X_CA_PATH" link="NMSetting8021x.html#NM-SETTING-802-1X-CA-PATH:CAPS"/>
+ <function name="NM_SETTING_802_1X_SUBJECT_MATCH" link="NMSetting8021x.html#NM-SETTING-802-1X-SUBJECT-MATCH:CAPS"/>
+ <function name="NM_SETTING_802_1X_ALTSUBJECT_MATCHES" link="NMSetting8021x.html#NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS"/>
<function name="NM_SETTING_802_1X_CLIENT_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-CLIENT-CERT:CAPS"/>
<function name="NM_SETTING_802_1X_PHASE1_PEAPVER" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPVER:CAPS"/>
<function name="NM_SETTING_802_1X_PHASE1_PEAPLABEL" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPLABEL:CAPS"/>
@@ -450,6 +474,8 @@
<function name="NM_SETTING_802_1X_PHASE2_AUTHEAP" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-AUTHEAP:CAPS"/>
<function name="NM_SETTING_802_1X_PHASE2_CA_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-CERT:CAPS"/>
<function name="NM_SETTING_802_1X_PHASE2_CA_PATH" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-PATH:CAPS"/>
+ <function name="NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS"/>
+ <function name="NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS"/>
<function name="NM_SETTING_802_1X_PHASE2_CLIENT_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS"/>
<function name="NM_SETTING_802_1X_PASSWORD" link="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD:CAPS"/>
<function name="NM_SETTING_802_1X_PASSWORD_FLAGS" link="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD-FLAGS:CAPS"/>
@@ -480,6 +506,12 @@
<function name="nm_setting_802_1x_get_ca_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-blob"/>
<function name="nm_setting_802_1x_get_ca_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-path"/>
<function name="nm_setting_802_1x_set_ca_cert ()" link="NMSetting8021x.html#nm-setting-802-1x-set-ca-cert"/>
+ <function name="nm_setting_802_1x_get_subject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-subject-match"/>
+ <function name="nm_setting_802_1x_get_num_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-get-num-altsubject-matches"/>
+ <function name="nm_setting_802_1x_get_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-altsubject-match"/>
+ <function name="nm_setting_802_1x_add_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-add-altsubject-match"/>
+ <function name="nm_setting_802_1x_remove_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-remove-altsubject-match"/>
+ <function name="nm_setting_802_1x_clear_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-clear-altsubject-matches"/>
<function name="nm_setting_802_1x_get_client_cert_scheme ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-scheme"/>
<function name="nm_setting_802_1x_get_client_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-blob"/>
<function name="nm_setting_802_1x_get_client_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-path"/>
@@ -493,6 +525,12 @@
<function name="nm_setting_802_1x_get_phase2_ca_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-blob"/>
<function name="nm_setting_802_1x_get_phase2_ca_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-path"/>
<function name="nm_setting_802_1x_set_phase2_ca_cert ()" link="NMSetting8021x.html#nm-setting-802-1x-set-phase2-ca-cert"/>
+ <function name="nm_setting_802_1x_get_phase2_subject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-subject-match"/>
+ <function name="nm_setting_802_1x_get_num_phase2_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-get-num-phase2-altsubject-matches"/>
+ <function name="nm_setting_802_1x_get_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-altsubject-match"/>
+ <function name="nm_setting_802_1x_add_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-add-phase2-altsubject-match"/>
+ <function name="nm_setting_802_1x_remove_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-remove-phase2-altsubject-match"/>
+ <function name="nm_setting_802_1x_clear_phase2_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-clear-phase2-altsubject-matches"/>
<function name="nm_setting_802_1x_get_phase2_client_cert_scheme ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-scheme"/>
<function name="nm_setting_802_1x_get_phase2_client_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-blob"/>
<function name="nm_setting_802_1x_get_phase2_client_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-path"/>
@@ -515,6 +553,7 @@
<function name="nm_setting_802_1x_get_phase2_private_key_password ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-password"/>
<function name="nm_setting_802_1x_get_phase2_private_key_password_flags ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-password-flags"/>
<function name="nm_setting_802_1x_get_phase2_private_key_format ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-format"/>
+ <function name="The &quot;altsubject-matches&quot; property" link="NMSetting8021x.html#NMSetting8021x--altsubject-matches"/>
<function name="The &quot;anonymous-identity&quot; property" link="NMSetting8021x.html#NMSetting8021x--anonymous-identity"/>
<function name="The &quot;ca-cert&quot; property" link="NMSetting8021x.html#NMSetting8021x--ca-cert"/>
<function name="The &quot;ca-path&quot; property" link="NMSetting8021x.html#NMSetting8021x--ca-path"/>
@@ -526,6 +565,7 @@
<function name="The &quot;phase1-fast-provisioning&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-fast-provisioning"/>
<function name="The &quot;phase1-peaplabel&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-peaplabel"/>
<function name="The &quot;phase1-peapver&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-peapver"/>
+ <function name="The &quot;phase2-altsubject-matches&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches"/>
<function name="The &quot;phase2-auth&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-auth"/>
<function name="The &quot;phase2-autheap&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-autheap"/>
<function name="The &quot;phase2-ca-cert&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-ca-cert"/>
@@ -534,9 +574,11 @@
<function name="The &quot;phase2-private-key&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key"/>
<function name="The &quot;phase2-private-key-password&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password"/>
<function name="The &quot;phase2-private-key-password-flags&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password-flags"/>
+ <function name="The &quot;phase2-subject-match&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-subject-match"/>
<function name="The &quot;private-key&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key"/>
<function name="The &quot;private-key-password&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key-password"/>
<function name="The &quot;private-key-password-flags&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key-password-flags"/>
+ <function name="The &quot;subject-match&quot; property" link="NMSetting8021x.html#NMSetting8021x--subject-match"/>
<function name="The &quot;system-ca-certs&quot; property" link="NMSetting8021x.html#NMSetting8021x--system-ca-certs"/>
<function name="NM_SETTING_IP4_CONFIG_SETTING_NAME" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS"/>
<function name="enum NMSettingIP4ConfigError" link="NMSettingIP4Config.html#NMSettingIP4ConfigError"/>
diff --git a/docs/libnm-util/html/libnm-util.devhelp2 b/docs/libnm-util/html/libnm-util.devhelp2
index 0104b4d08..a6544dddb 100644
--- a/docs/libnm-util/html/libnm-util.devhelp2
+++ b/docs/libnm-util/html/libnm-util.devhelp2
@@ -13,6 +13,7 @@
<sub name="NMSettingSerial" link="NMSettingSerial.html"/>
<sub name="NMSettingCdma" link="NMSettingCdma.html"/>
<sub name="NMSettingGsm" link="NMSettingGsm.html"/>
+ <sub name="NMSettingWimax" link="NMSettingWimax.html"/>
<sub name="NMSettingOlpcMesh" link="NMSettingOlpcMesh.html"/>
<sub name="NMSetting8021x" link="NMSetting8021x.html"/>
<sub name="NMSettingIP4Config" link="NMSettingIP4Config.html"/>
@@ -86,6 +87,7 @@
<keyword type="macro" name="NM_SETTING_PARAM_FUZZY_IGNORE" link="NMSetting.html#NM-SETTING-PARAM-FUZZY-IGNORE:CAPS"/>
<keyword type="macro" name="NM_SETTING_NAME" link="NMSetting.html#NM-SETTING-NAME:CAPS"/>
<keyword type="enum" name="enum NMSettingSecretFlags" link="NMSetting.html#NMSettingSecretFlags"/>
+ <keyword type="enum" name="enum NMSettingCompareFlags" link="NMSetting.html#NMSettingCompareFlags"/>
<keyword type="struct" name="NMSetting" link="NMSetting.html#NMSetting-struct"/>
<keyword type="struct" name="NMSettingClass" link="NMSetting.html#NMSettingClass"/>
<keyword type="function" name="NMSettingValueIterFn ()" link="NMSetting.html#NMSettingValueIterFn"/>
@@ -96,7 +98,6 @@
<keyword type="function" name="nm_setting_duplicate ()" link="NMSetting.html#nm-setting-duplicate"/>
<keyword type="function" name="nm_setting_get_name ()" link="NMSetting.html#nm-setting-get-name"/>
<keyword type="function" name="nm_setting_verify ()" link="NMSetting.html#nm-setting-verify"/>
- <keyword type="enum" name="enum NMSettingCompareFlags" link="NMSetting.html#NMSettingCompareFlags"/>
<keyword type="function" name="nm_setting_compare ()" link="NMSetting.html#nm-setting-compare"/>
<keyword type="enum" name="enum NMSettingDiffResult" link="NMSetting.html#NMSettingDiffResult"/>
<keyword type="function" name="nm_setting_diff ()" link="NMSetting.html#nm-setting-diff"/>
@@ -153,6 +154,7 @@
<keyword type="macro" name="NM_SETTING_WIRED_AUTO_NEGOTIATE" link="NMSettingWired.html#NM-SETTING-WIRED-AUTO-NEGOTIATE:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRED_MAC_ADDRESS" link="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRED_CLONED_MAC_ADDRESS" link="NMSettingWired.html#NM-SETTING-WIRED-CLONED-MAC-ADDRESS:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST" link="NMSettingWired.html#NM-SETTING-WIRED-MAC-ADDRESS-BLACKLIST:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRED_MTU" link="NMSettingWired.html#NM-SETTING-WIRED-MTU:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRED_S390_SUBCHANNELS" link="NMSettingWired.html#NM-SETTING-WIRED-S390-SUBCHANNELS:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRED_S390_NETTYPE" link="NMSettingWired.html#NM-SETTING-WIRED-S390-NETTYPE:CAPS"/>
@@ -167,6 +169,7 @@
<keyword type="function" name="nm_setting_wired_get_auto_negotiate ()" link="NMSettingWired.html#nm-setting-wired-get-auto-negotiate"/>
<keyword type="function" name="nm_setting_wired_get_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address"/>
<keyword type="function" name="nm_setting_wired_get_cloned_mac_address ()" link="NMSettingWired.html#nm-setting-wired-get-cloned-mac-address"/>
+ <keyword type="function" name="nm_setting_wired_get_mac_address_blacklist ()" link="NMSettingWired.html#nm-setting-wired-get-mac-address-blacklist"/>
<keyword type="function" name="nm_setting_wired_get_mtu ()" link="NMSettingWired.html#nm-setting-wired-get-mtu"/>
<keyword type="function" name="nm_setting_wired_get_s390_subchannels ()" link="NMSettingWired.html#nm-setting-wired-get-s390-subchannels"/>
<keyword type="function" name="nm_setting_wired_get_s390_nettype ()" link="NMSettingWired.html#nm-setting-wired-get-s390-nettype"/>
@@ -179,6 +182,7 @@
<keyword type="property" name="The &quot;cloned-mac-address&quot; property" link="NMSettingWired.html#NMSettingWired--cloned-mac-address"/>
<keyword type="property" name="The &quot;duplex&quot; property" link="NMSettingWired.html#NMSettingWired--duplex"/>
<keyword type="property" name="The &quot;mac-address&quot; property" link="NMSettingWired.html#NMSettingWired--mac-address"/>
+ <keyword type="property" name="The &quot;mac-address-blacklist&quot; property" link="NMSettingWired.html#NMSettingWired--mac-address-blacklist"/>
<keyword type="property" name="The &quot;mtu&quot; property" link="NMSettingWired.html#NMSettingWired--mtu"/>
<keyword type="property" name="The &quot;port&quot; property" link="NMSettingWired.html#NMSettingWired--port"/>
<keyword type="property" name="The &quot;s390-nettype&quot; property" link="NMSettingWired.html#NMSettingWired--s390-nettype"/>
@@ -199,6 +203,7 @@
<keyword type="macro" name="NM_SETTING_WIRELESS_TX_POWER" link="NMSettingWireless.html#NM-SETTING-WIRELESS-TX-POWER:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRELESS_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-CLONED-MAC-ADDRESS:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MAC-ADDRESS-BLACKLIST:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRELESS_MTU" link="NMSettingWireless.html#NM-SETTING-WIRELESS-MTU:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRELESS_SEEN_BSSIDS" link="NMSettingWireless.html#NM-SETTING-WIRELESS-SEEN-BSSIDS:CAPS"/>
<keyword type="macro" name="NM_SETTING_WIRELESS_SEC" link="NMSettingWireless.html#NM-SETTING-WIRELESS-SEC:CAPS"/>
@@ -217,6 +222,7 @@
<keyword type="function" name="nm_setting_wireless_get_tx_power ()" link="NMSettingWireless.html#nm-setting-wireless-get-tx-power"/>
<keyword type="function" name="nm_setting_wireless_get_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address"/>
<keyword type="function" name="nm_setting_wireless_get_cloned_mac_address ()" link="NMSettingWireless.html#nm-setting-wireless-get-cloned-mac-address"/>
+ <keyword type="function" name="nm_setting_wireless_get_mac_address_blacklist ()" link="NMSettingWireless.html#nm-setting-wireless-get-mac-address-blacklist"/>
<keyword type="function" name="nm_setting_wireless_get_mtu ()" link="NMSettingWireless.html#nm-setting-wireless-get-mtu"/>
<keyword type="function" name="nm_setting_wireless_get_security ()" link="NMSettingWireless.html#nm-setting-wireless-get-security"/>
<keyword type="function" name="nm_setting_wireless_add_seen_bssid ()" link="NMSettingWireless.html#nm-setting-wireless-add-seen-bssid"/>
@@ -228,6 +234,7 @@
<keyword type="property" name="The &quot;channel&quot; property" link="NMSettingWireless.html#NMSettingWireless--channel"/>
<keyword type="property" name="The &quot;cloned-mac-address&quot; property" link="NMSettingWireless.html#NMSettingWireless--cloned-mac-address"/>
<keyword type="property" name="The &quot;mac-address&quot; property" link="NMSettingWireless.html#NMSettingWireless--mac-address"/>
+ <keyword type="property" name="The &quot;mac-address-blacklist&quot; property" link="NMSettingWireless.html#NMSettingWireless--mac-address-blacklist"/>
<keyword type="property" name="The &quot;mode&quot; property" link="NMSettingWireless.html#NMSettingWireless--mode"/>
<keyword type="property" name="The &quot;mtu&quot; property" link="NMSettingWireless.html#NMSettingWireless--mtu"/>
<keyword type="property" name="The &quot;rate&quot; property" link="NMSettingWireless.html#NMSettingWireless--rate"/>
@@ -412,6 +419,21 @@
<keyword type="property" name="The &quot;pin&quot; property" link="NMSettingGsm.html#NMSettingGsm--pin"/>
<keyword type="property" name="The &quot;pin-flags&quot; property" link="NMSettingGsm.html#NMSettingGsm--pin-flags"/>
<keyword type="property" name="The &quot;username&quot; property" link="NMSettingGsm.html#NMSettingGsm--username"/>
+ <keyword type="macro" name="NM_SETTING_WIMAX_SETTING_NAME" link="NMSettingWimax.html#NM-SETTING-WIMAX-SETTING-NAME:CAPS"/>
+ <keyword type="enum" name="enum NMSettingWimaxError" link="NMSettingWimax.html#NMSettingWimaxError"/>
+ <keyword type="macro" name="NM_TYPE_SETTING_WIMAX_ERROR" link="NMSettingWimax.html#NM-TYPE-SETTING-WIMAX-ERROR:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_WIMAX_ERROR" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR:CAPS"/>
+ <keyword type="function" name="nm_setting_wimax_error_quark ()" link="NMSettingWimax.html#nm-setting-wimax-error-quark"/>
+ <keyword type="macro" name="NM_SETTING_WIMAX_NETWORK_NAME" link="NMSettingWimax.html#NM-SETTING-WIMAX-NETWORK-NAME:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_WIMAX_MAC_ADDRESS" link="NMSettingWimax.html#NM-SETTING-WIMAX-MAC-ADDRESS:CAPS"/>
+ <keyword type="struct" name="NMSettingWimax" link="NMSettingWimax.html#NMSettingWimax-struct"/>
+ <keyword type="struct" name="NMSettingWimaxClass" link="NMSettingWimax.html#NMSettingWimaxClass"/>
+ <keyword type="function" name="nm_setting_wimax_get_type ()" link="NMSettingWimax.html#nm-setting-wimax-get-type"/>
+ <keyword type="function" name="nm_setting_wimax_new ()" link="NMSettingWimax.html#nm-setting-wimax-new"/>
+ <keyword type="function" name="nm_setting_wimax_get_network_name ()" link="NMSettingWimax.html#nm-setting-wimax-get-network-name"/>
+ <keyword type="function" name="nm_setting_wimax_get_mac_address ()" link="NMSettingWimax.html#nm-setting-wimax-get-mac-address"/>
+ <keyword type="property" name="The &quot;mac-address&quot; property" link="NMSettingWimax.html#NMSettingWimax--mac-address"/>
+ <keyword type="property" name="The &quot;network-name&quot; property" link="NMSettingWimax.html#NMSettingWimax--network-name"/>
<keyword type="macro" name="NM_SETTING_OLPC_MESH_SETTING_NAME" link="NMSettingOlpcMesh.html#NM-SETTING-OLPC-MESH-SETTING-NAME:CAPS"/>
<keyword type="enum" name="enum NMSettingOlpcMeshError" link="NMSettingOlpcMesh.html#NMSettingOlpcMeshError"/>
<keyword type="macro" name="NM_TYPE_SETTING_OLPC_MESH_ERROR" link="NMSettingOlpcMesh.html#NM-TYPE-SETTING-OLPC-MESH-ERROR:CAPS"/>
@@ -442,6 +464,8 @@
<keyword type="macro" name="NM_SETTING_802_1X_ANONYMOUS_IDENTITY" link="NMSetting8021x.html#NM-SETTING-802-1X-ANONYMOUS-IDENTITY:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_CA_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-CA-CERT:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_CA_PATH" link="NMSetting8021x.html#NM-SETTING-802-1X-CA-PATH:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_802_1X_SUBJECT_MATCH" link="NMSetting8021x.html#NM-SETTING-802-1X-SUBJECT-MATCH:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_802_1X_ALTSUBJECT_MATCHES" link="NMSetting8021x.html#NM-SETTING-802-1X-ALTSUBJECT-MATCHES:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_CLIENT_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-CLIENT-CERT:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PHASE1_PEAPVER" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPVER:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PHASE1_PEAPLABEL" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE1-PEAPLABEL:CAPS"/>
@@ -450,6 +474,8 @@
<keyword type="macro" name="NM_SETTING_802_1X_PHASE2_AUTHEAP" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-AUTHEAP:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PHASE2_CA_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-CERT:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PHASE2_CA_PATH" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CA-PATH:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-SUBJECT-MATCH:CAPS"/>
+ <keyword type="macro" name="NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-ALTSUBJECT-MATCHES:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PHASE2_CLIENT_CERT" link="NMSetting8021x.html#NM-SETTING-802-1X-PHASE2-CLIENT-CERT:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PASSWORD" link="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD:CAPS"/>
<keyword type="macro" name="NM_SETTING_802_1X_PASSWORD_FLAGS" link="NMSetting8021x.html#NM-SETTING-802-1X-PASSWORD-FLAGS:CAPS"/>
@@ -480,6 +506,12 @@
<keyword type="function" name="nm_setting_802_1x_get_ca_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-blob"/>
<keyword type="function" name="nm_setting_802_1x_get_ca_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-ca-cert-path"/>
<keyword type="function" name="nm_setting_802_1x_set_ca_cert ()" link="NMSetting8021x.html#nm-setting-802-1x-set-ca-cert"/>
+ <keyword type="function" name="nm_setting_802_1x_get_subject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-subject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_get_num_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-get-num-altsubject-matches"/>
+ <keyword type="function" name="nm_setting_802_1x_get_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_add_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-add-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_remove_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-remove-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_clear_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-clear-altsubject-matches"/>
<keyword type="function" name="nm_setting_802_1x_get_client_cert_scheme ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-scheme"/>
<keyword type="function" name="nm_setting_802_1x_get_client_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-blob"/>
<keyword type="function" name="nm_setting_802_1x_get_client_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-client-cert-path"/>
@@ -493,6 +525,12 @@
<keyword type="function" name="nm_setting_802_1x_get_phase2_ca_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-blob"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_ca_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-ca-cert-path"/>
<keyword type="function" name="nm_setting_802_1x_set_phase2_ca_cert ()" link="NMSetting8021x.html#nm-setting-802-1x-set-phase2-ca-cert"/>
+ <keyword type="function" name="nm_setting_802_1x_get_phase2_subject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-subject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_get_num_phase2_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-get-num-phase2-altsubject-matches"/>
+ <keyword type="function" name="nm_setting_802_1x_get_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_add_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-add-phase2-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_remove_phase2_altsubject_match ()" link="NMSetting8021x.html#nm-setting-802-1x-remove-phase2-altsubject-match"/>
+ <keyword type="function" name="nm_setting_802_1x_clear_phase2_altsubject_matches ()" link="NMSetting8021x.html#nm-setting-802-1x-clear-phase2-altsubject-matches"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_client_cert_scheme ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-scheme"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_client_cert_blob ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-blob"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_client_cert_path ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-client-cert-path"/>
@@ -515,6 +553,7 @@
<keyword type="function" name="nm_setting_802_1x_get_phase2_private_key_password ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-password"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_private_key_password_flags ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-password-flags"/>
<keyword type="function" name="nm_setting_802_1x_get_phase2_private_key_format ()" link="NMSetting8021x.html#nm-setting-802-1x-get-phase2-private-key-format"/>
+ <keyword type="property" name="The &quot;altsubject-matches&quot; property" link="NMSetting8021x.html#NMSetting8021x--altsubject-matches"/>
<keyword type="property" name="The &quot;anonymous-identity&quot; property" link="NMSetting8021x.html#NMSetting8021x--anonymous-identity"/>
<keyword type="property" name="The &quot;ca-cert&quot; property" link="NMSetting8021x.html#NMSetting8021x--ca-cert"/>
<keyword type="property" name="The &quot;ca-path&quot; property" link="NMSetting8021x.html#NMSetting8021x--ca-path"/>
@@ -526,6 +565,7 @@
<keyword type="property" name="The &quot;phase1-fast-provisioning&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-fast-provisioning"/>
<keyword type="property" name="The &quot;phase1-peaplabel&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-peaplabel"/>
<keyword type="property" name="The &quot;phase1-peapver&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase1-peapver"/>
+ <keyword type="property" name="The &quot;phase2-altsubject-matches&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-altsubject-matches"/>
<keyword type="property" name="The &quot;phase2-auth&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-auth"/>
<keyword type="property" name="The &quot;phase2-autheap&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-autheap"/>
<keyword type="property" name="The &quot;phase2-ca-cert&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-ca-cert"/>
@@ -534,9 +574,11 @@
<keyword type="property" name="The &quot;phase2-private-key&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key"/>
<keyword type="property" name="The &quot;phase2-private-key-password&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password"/>
<keyword type="property" name="The &quot;phase2-private-key-password-flags&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-private-key-password-flags"/>
+ <keyword type="property" name="The &quot;phase2-subject-match&quot; property" link="NMSetting8021x.html#NMSetting8021x--phase2-subject-match"/>
<keyword type="property" name="The &quot;private-key&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key"/>
<keyword type="property" name="The &quot;private-key-password&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key-password"/>
<keyword type="property" name="The &quot;private-key-password-flags&quot; property" link="NMSetting8021x.html#NMSetting8021x--private-key-password-flags"/>
+ <keyword type="property" name="The &quot;subject-match&quot; property" link="NMSetting8021x.html#NMSetting8021x--subject-match"/>
<keyword type="property" name="The &quot;system-ca-certs&quot; property" link="NMSetting8021x.html#NMSetting8021x--system-ca-certs"/>
<keyword type="macro" name="NM_SETTING_IP4_CONFIG_SETTING_NAME" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-SETTING-NAME:CAPS"/>
<keyword type="enum" name="enum NMSettingIP4ConfigError" link="NMSettingIP4Config.html#NMSettingIP4ConfigError"/>
@@ -863,6 +905,7 @@
<keyword type="constant" name="NM_CONNECTION_ERROR_UNKNOWN" link="NMConnection.html#NM-CONNECTION-ERROR-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND" link="NMConnection.html#NM-CONNECTION-ERROR-CONNECTION-SETTING-NOT-FOUND:CAPS"/>
<keyword type="constant" name="NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID" link="NMConnection.html#NM-CONNECTION-ERROR-CONNECTION-TYPE-INVALID:CAPS"/>
+ <keyword type="constant" name="NM_CONNECTION_ERROR_SETTING_NOT_FOUND" link="NMConnection.html#NM-CONNECTION-ERROR-SETTING-NOT-FOUND:CAPS"/>
<keyword type="constant" name="NM_SETTING_ERROR_UNKNOWN" link="NMSetting.html#NM-SETTING-ERROR-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_SETTING_ERROR_PROPERTY_NOT_FOUND" link="NMSetting.html#NM-SETTING-ERROR-PROPERTY-NOT-FOUND:CAPS"/>
<keyword type="constant" name="NM_SETTING_ERROR_PROPERTY_NOT_SECRET" link="NMSetting.html#NM-SETTING-ERROR-PROPERTY-NOT-SECRET:CAPS"/>
@@ -871,13 +914,15 @@
<keyword type="constant" name="NM_SETTING_SECRET_FLAG_AGENT_OWNED" link="NMSetting.html#NM-SETTING-SECRET-FLAG-AGENT-OWNED:CAPS"/>
<keyword type="constant" name="NM_SETTING_SECRET_FLAG_NOT_SAVED" link="NMSetting.html#NM-SETTING-SECRET-FLAG-NOT-SAVED:CAPS"/>
<keyword type="constant" name="NM_SETTING_SECRET_FLAG_NOT_REQUIRED" link="NMSetting.html#NM-SETTING-SECRET-FLAG-NOT-REQUIRED:CAPS"/>
- <keyword type="constant" name="NM_SETTING_HASH_FLAG_ALL" link="NMSetting.html#NM-SETTING-HASH-FLAG-ALL:CAPS"/>
- <keyword type="constant" name="NM_SETTING_HASH_FLAG_NO_SECRETS" link="NMSetting.html#NM-SETTING-HASH-FLAG-NO-SECRETS:CAPS"/>
- <keyword type="constant" name="NM_SETTING_HASH_FLAG_ONLY_SECRETS" link="NMSetting.html#NM-SETTING-HASH-FLAG-ONLY-SECRETS:CAPS"/>
<keyword type="constant" name="NM_SETTING_COMPARE_FLAG_EXACT" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-EXACT:CAPS"/>
<keyword type="constant" name="NM_SETTING_COMPARE_FLAG_FUZZY" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-FUZZY:CAPS"/>
<keyword type="constant" name="NM_SETTING_COMPARE_FLAG_IGNORE_ID" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-ID:CAPS"/>
<keyword type="constant" name="NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-SECRETS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-AGENT-OWNED-SECRETS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS" link="NMSetting.html#NM-SETTING-COMPARE-FLAG-IGNORE-NOT-SAVED-SECRETS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_HASH_FLAG_ALL" link="NMSetting.html#NM-SETTING-HASH-FLAG-ALL:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_HASH_FLAG_NO_SECRETS" link="NMSetting.html#NM-SETTING-HASH-FLAG-NO-SECRETS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_HASH_FLAG_ONLY_SECRETS" link="NMSetting.html#NM-SETTING-HASH-FLAG-ONLY-SECRETS:CAPS"/>
<keyword type="constant" name="NM_SETTING_DIFF_RESULT_UNKNOWN" link="NMSetting.html#NM-SETTING-DIFF-RESULT-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_SETTING_DIFF_RESULT_IN_A" link="NMSetting.html#NM-SETTING-DIFF-RESULT-IN-A:CAPS"/>
<keyword type="constant" name="NM_SETTING_DIFF_RESULT_IN_B" link="NMSetting.html#NM-SETTING-DIFF-RESULT-IN-B:CAPS"/>
@@ -885,6 +930,64 @@
<keyword type="constant" name="NM_SETTING_CONNECTION_ERROR_INVALID_PROPERTY" link="NMSettingConnection.html#NM-SETTING-CONNECTION-ERROR-INVALID-PROPERTY:CAPS"/>
<keyword type="constant" name="NM_SETTING_CONNECTION_ERROR_MISSING_PROPERTY" link="NMSettingConnection.html#NM-SETTING-CONNECTION-ERROR-MISSING-PROPERTY:CAPS"/>
<keyword type="constant" name="NM_SETTING_CONNECTION_ERROR_TYPE_SETTING_NOT_FOUND" link="NMSettingConnection.html#NM-SETTING-CONNECTION-ERROR-TYPE-SETTING-NOT-FOUND:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRED_ERROR_UNKNOWN" link="NMSettingWired.html#NM-SETTING-WIRED-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRED_ERROR_INVALID_PROPERTY" link="NMSettingWired.html#NM-SETTING-WIRED-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRED_ERROR_MISSING_PROPERTY" link="NMSettingWired.html#NM-SETTING-WIRED-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_ERROR_UNKNOWN" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_ERROR_MISSING_SECURITY_SETTING" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-MISSING-SECURITY-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_ERROR_CHANNEL_REQUIRES_BAND" link="NMSettingWireless.html#NM-SETTING-WIRELESS-ERROR-CHANNEL-REQUIRES-BAND:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_802_1X_SETTING" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-MISSING-802-1X-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_802_1X" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-802-1X:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_USERNAME" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-LEAP-REQUIRES-USERNAME:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP" link="NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-ERROR-SHARED-KEY-REQUIRES-WEP:CAPS"/>
+ <keyword type="constant" name="NM_WEP_KEY_TYPE_UNKNOWN" link="NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_WEP_KEY_TYPE_KEY" link="NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-KEY:CAPS"/>
+ <keyword type="constant" name="NM_WEP_KEY_TYPE_PASSPHRASE" link="NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-PASSPHRASE:CAPS"/>
+ <keyword type="constant" name="NM_WEP_KEY_TYPE_LAST" link="NMSettingWirelessSecurity.html#NM-WEP-KEY-TYPE-LAST:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_BLUETOOTH_ERROR_UNKNOWN" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_BLUETOOTH_ERROR_INVALID_PROPERTY" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_BLUETOOTH_ERROR_MISSING_PROPERTY" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_BLUETOOTH_ERROR_TYPE_SETTING_NOT_FOUND" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-ERROR-TYPE-SETTING-NOT-FOUND:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_SERIAL_ERROR_UNKNOWN" link="NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY" link="NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY" link="NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING" link="NMSettingSerial.html#NM-SETTING-SERIAL-ERROR-MISSING-PPP-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_CDMA_ERROR_UNKNOWN" link="NMSettingCdma.html#NM-SETTING-CDMA-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_CDMA_ERROR_INVALID_PROPERTY" link="NMSettingCdma.html#NM-SETTING-CDMA-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_CDMA_ERROR_MISSING_PROPERTY" link="NMSettingCdma.html#NM-SETTING-CDMA-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING" link="NMSettingCdma.html#NM-SETTING-CDMA-ERROR-MISSING-SERIAL-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_ERROR_UNKNOWN" link="NMSettingGsm.html#NM-SETTING-GSM-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_ERROR_INVALID_PROPERTY" link="NMSettingGsm.html#NM-SETTING-GSM-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_ERROR_MISSING_PROPERTY" link="NMSettingGsm.html#NM-SETTING-GSM-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING" link="NMSettingGsm.html#NM-SETTING-GSM-ERROR-MISSING-SERIAL-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_NETWORK_TYPE_ANY" link="NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-ANY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_NETWORK_TYPE_UMTS_HSPA" link="NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-UMTS-HSPA:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_NETWORK_TYPE_GPRS_EDGE" link="NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-GPRS-EDGE:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_NETWORK_TYPE_PREFER_UMTS_HSPA" link="NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-PREFER-UMTS-HSPA:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE" link="NMSettingGsm.html#NM-SETTING-GSM-NETWORK-TYPE-PREFER-GPRS-EDGE:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_UNKNOWN" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_ANY" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-ANY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_EGSM" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-EGSM:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_DCS" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-DCS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_PCS" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-PCS:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_G850" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-G850:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U2100" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U2100:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U1800" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U1800:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U17IV" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U17IV:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U800" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U800:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U850" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U850:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U900" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U900:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U17IX" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U17IX:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U1900" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U1900:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_GSM_BAND_U2600" link="NMSettingGsm.html#NM-SETTING-GSM-BAND-U2600:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_UNKNOWN" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY" link="NMSettingWimax.html#NM-SETTING-WIMAX-ERROR-MISSING-PROPERTY:CAPS"/>
<keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_UNKNOWN" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_X509" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-X509:CAPS"/>
<keyword type="constant" name="NM_SETTING_802_1X_CK_FORMAT_RAW_KEY" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-FORMAT-RAW-KEY:CAPS"/>
@@ -892,5 +995,36 @@
<keyword type="constant" name="NM_SETTING_802_1X_CK_SCHEME_UNKNOWN" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-SCHEME-UNKNOWN:CAPS"/>
<keyword type="constant" name="NM_SETTING_802_1X_CK_SCHEME_BLOB" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-SCHEME-BLOB:CAPS"/>
<keyword type="constant" name="NM_SETTING_802_1X_CK_SCHEME_PATH" link="NMSetting8021x.html#NM-SETTING-802-1X-CK-SCHEME-PATH:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_802_1X_ERROR_UNKNOWN" link="NMSetting8021x.html#NM-SETTING-802-1X-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_802_1X_ERROR_INVALID_PROPERTY" link="NMSetting8021x.html#NM-SETTING-802-1X-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_802_1X_ERROR_MISSING_PROPERTY" link="NMSetting8021x.html#NM-SETTING-802-1X-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD" link="NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN" link="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY" link="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY" link="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD" link="NMSettingIP6Config.html#NM-SETTING-IP6-CONFIG-ERROR-NOT-ALLOWED-FOR-METHOD:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPP_ERROR_UNKNOWN" link="NMSettingPPP.html#NM-SETTING-PPP-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPP_ERROR_INVALID_PROPERTY" link="NMSettingPPP.html#NM-SETTING-PPP-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPP_ERROR_MISSING_PROPERTY" link="NMSettingPPP.html#NM-SETTING-PPP-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPP_ERROR_REQUIRE_MPPE_NOT_ALLOWED" link="NMSettingPPP.html#NM-SETTING-PPP-ERROR-REQUIRE-MPPE-NOT-ALLOWED:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPPOE_ERROR_UNKNOWN" link="NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPPOE_ERROR_INVALID_PROPERTY" link="NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPPOE_ERROR_MISSING_PROPERTY" link="NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_PPPOE_ERROR_MISSING_PPP_SETTING" link="NMSettingPPPOE.html#NM-SETTING-PPPOE-ERROR-MISSING-PPP-SETTING:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_VPN_ERROR_UNKNOWN" link="NMSettingVPN.html#NM-SETTING-VPN-ERROR-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_VPN_ERROR_INVALID_PROPERTY" link="NMSettingVPN.html#NM-SETTING-VPN-ERROR-INVALID-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NM_SETTING_VPN_ERROR_MISSING_PROPERTY" link="NMSettingVPN.html#NM-SETTING-VPN-ERROR-MISSING-PROPERTY:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_INVALID" link="libnm-util-nm-utils.html#NMU-SEC-INVALID:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_NONE" link="libnm-util-nm-utils.html#NMU-SEC-NONE:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_STATIC_WEP" link="libnm-util-nm-utils.html#NMU-SEC-STATIC-WEP:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_LEAP" link="libnm-util-nm-utils.html#NMU-SEC-LEAP:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_DYNAMIC_WEP" link="libnm-util-nm-utils.html#NMU-SEC-DYNAMIC-WEP:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_WPA_PSK" link="libnm-util-nm-utils.html#NMU-SEC-WPA-PSK:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_WPA_ENTERPRISE" link="libnm-util-nm-utils.html#NMU-SEC-WPA-ENTERPRISE:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_WPA2_PSK" link="libnm-util-nm-utils.html#NMU-SEC-WPA2-PSK:CAPS"/>
+ <keyword type="constant" name="NMU_SEC_WPA2_ENTERPRISE" link="libnm-util-nm-utils.html#NMU-SEC-WPA2-ENTERPRISE:CAPS"/>
</functions>
</book>
diff --git a/docs/libnm-util/html/object-tree.html b/docs/libnm-util/html/object-tree.html
index a69c8dbb3..a67b1874a 100644
--- a/docs/libnm-util/html/object-tree.html
+++ b/docs/libnm-util/html/object-tree.html
@@ -38,7 +38,7 @@
<a class="link" href="NMSettingPPPOE.html" title="NMSettingPPPOE">NMSettingPPPOE</a>
<a class="link" href="NMSettingSerial.html" title="NMSettingSerial">NMSettingSerial</a>
<a class="link" href="NMSettingVPN.html" title="NMSettingVPN">NMSettingVPN</a>
- NMSettingWimax
+ <a class="link" href="NMSettingWimax.html" title="NMSettingWimax">NMSettingWimax</a>
<a class="link" href="NMSettingWired.html" title="NMSettingWired">NMSettingWired</a>
<a class="link" href="NMSettingWireless.html" title="NMSettingWireless">NMSettingWireless</a>
<a class="link" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">NMSettingWirelessSecurity</a>
@@ -57,7 +57,7 @@
<a class="link" href="NMSettingPPPOE.html#NMSettingPPPOEError">NMSettingPPPOEError</a>
<a class="link" href="NMSettingSerial.html#NMSettingSerialError">NMSettingSerialError</a>
<a class="link" href="NMSettingVPN.html#NMSettingVpnError">NMSettingVpnError</a>
- NMSettingWimaxError
+ <a class="link" href="NMSettingWimax.html#NMSettingWimaxError">NMSettingWimaxError</a>
<a class="link" href="NMSettingWired.html#NMSettingWiredError">NMSettingWiredError</a>
<a class="link" href="NMSettingWireless.html#NMSettingWirelessError">NMSettingWirelessError</a>
<a class="link" href="NMSettingWirelessSecurity.html#NMSettingWirelessSecurityError">NMSettingWirelessSecurityError</a>
diff --git a/docs/libnm-util/libnm-util-docs.sgml b/docs/libnm-util/libnm-util-docs.sgml
index c80565ab6..f717db37a 100644
--- a/docs/libnm-util/libnm-util-docs.sgml
+++ b/docs/libnm-util/libnm-util-docs.sgml
@@ -26,6 +26,7 @@
<xi:include href="xml/nm-setting-serial.xml"/>
<xi:include href="xml/nm-setting-cdma.xml"/>
<xi:include href="xml/nm-setting-gsm.xml"/>
+ <xi:include href="xml/nm-setting-wimax.xml"/>
<xi:include href="xml/nm-setting-olpc-mesh.xml"/>
<xi:include href="xml/nm-setting-8021x.xml"/>
<xi:include href="xml/nm-setting-ip4-config.xml"/>
diff --git a/docs/libnm-util/libnm-util-sections.txt b/docs/libnm-util/libnm-util-sections.txt
index 1df4b49b0..06bd0d325 100644
--- a/docs/libnm-util/libnm-util-sections.txt
+++ b/docs/libnm-util/libnm-util-sections.txt
@@ -59,6 +59,8 @@ NM_SETTING_802_1X_IDENTITY
NM_SETTING_802_1X_ANONYMOUS_IDENTITY
NM_SETTING_802_1X_CA_CERT
NM_SETTING_802_1X_CA_PATH
+NM_SETTING_802_1X_SUBJECT_MATCH
+NM_SETTING_802_1X_ALTSUBJECT_MATCHES
NM_SETTING_802_1X_CLIENT_CERT
NM_SETTING_802_1X_PHASE1_PEAPVER
NM_SETTING_802_1X_PHASE1_PEAPLABEL
@@ -67,6 +69,8 @@ NM_SETTING_802_1X_PHASE2_AUTH
NM_SETTING_802_1X_PHASE2_AUTHEAP
NM_SETTING_802_1X_PHASE2_CA_CERT
NM_SETTING_802_1X_PHASE2_CA_PATH
+NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH
+NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES
NM_SETTING_802_1X_PHASE2_CLIENT_CERT
NM_SETTING_802_1X_PASSWORD
NM_SETTING_802_1X_PASSWORD_FLAGS
@@ -97,6 +101,12 @@ nm_setting_802_1x_get_ca_cert_scheme
nm_setting_802_1x_get_ca_cert_blob
nm_setting_802_1x_get_ca_cert_path
nm_setting_802_1x_set_ca_cert
+nm_setting_802_1x_get_subject_match
+nm_setting_802_1x_get_num_altsubject_matches
+nm_setting_802_1x_get_altsubject_match
+nm_setting_802_1x_add_altsubject_match
+nm_setting_802_1x_remove_altsubject_match
+nm_setting_802_1x_clear_altsubject_matches
nm_setting_802_1x_get_client_cert_scheme
nm_setting_802_1x_get_client_cert_blob
nm_setting_802_1x_get_client_cert_path
@@ -110,6 +120,12 @@ nm_setting_802_1x_get_phase2_ca_cert_scheme
nm_setting_802_1x_get_phase2_ca_cert_blob
nm_setting_802_1x_get_phase2_ca_cert_path
nm_setting_802_1x_set_phase2_ca_cert
+nm_setting_802_1x_get_phase2_subject_match
+nm_setting_802_1x_get_num_phase2_altsubject_matches
+nm_setting_802_1x_get_phase2_altsubject_match
+nm_setting_802_1x_add_phase2_altsubject_match
+nm_setting_802_1x_remove_phase2_altsubject_match
+nm_setting_802_1x_clear_phase2_altsubject_matches
nm_setting_802_1x_get_phase2_client_cert_scheme
nm_setting_802_1x_get_phase2_client_cert_blob
nm_setting_802_1x_get_phase2_client_cert_path
@@ -552,6 +568,7 @@ NM_SETTING_WIRED_DUPLEX
NM_SETTING_WIRED_AUTO_NEGOTIATE
NM_SETTING_WIRED_MAC_ADDRESS
NM_SETTING_WIRED_CLONED_MAC_ADDRESS
+NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST
NM_SETTING_WIRED_MTU
NM_SETTING_WIRED_S390_SUBCHANNELS
NM_SETTING_WIRED_S390_NETTYPE
@@ -566,6 +583,7 @@ nm_setting_wired_get_duplex
nm_setting_wired_get_auto_negotiate
nm_setting_wired_get_mac_address
nm_setting_wired_get_cloned_mac_address
+nm_setting_wired_get_mac_address_blacklist
nm_setting_wired_get_mtu
nm_setting_wired_get_s390_subchannels
nm_setting_wired_get_s390_nettype
@@ -637,6 +655,7 @@ NM_SETTING_PARAM_SECRET
NM_SETTING_PARAM_FUZZY_IGNORE
NM_SETTING_NAME
NMSettingSecretFlags
+NMSettingCompareFlags
NMSetting
NMSettingClass
NMSettingValueIterFn
@@ -647,7 +666,6 @@ nm_setting_new_from_hash
nm_setting_duplicate
nm_setting_get_name
nm_setting_verify
-NMSettingCompareFlags
nm_setting_compare
NMSettingDiffResult
nm_setting_diff
@@ -870,6 +888,7 @@ NM_SETTING_WIRELESS_RATE
NM_SETTING_WIRELESS_TX_POWER
NM_SETTING_WIRELESS_MAC_ADDRESS
NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS
+NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST
NM_SETTING_WIRELESS_MTU
NM_SETTING_WIRELESS_SEEN_BSSIDS
NM_SETTING_WIRELESS_SEC
@@ -888,6 +907,7 @@ nm_setting_wireless_get_rate
nm_setting_wireless_get_tx_power
nm_setting_wireless_get_mac_address
nm_setting_wireless_get_cloned_mac_address
+nm_setting_wireless_get_mac_address_blacklist
nm_setting_wireless_get_mtu
nm_setting_wireless_get_security
nm_setting_wireless_add_seen_bssid
diff --git a/examples/C/qt/Makefile.am b/examples/C/qt/Makefile.am
index e1e17b381..5f0c6a1e3 100644
--- a/examples/C/qt/Makefile.am
+++ b/examples/C/qt/Makefile.am
@@ -6,7 +6,8 @@ AM_CPPFLAGS = \
noinst_PROGRAMS = \
add-connection-wired \
- list-connections
+ list-connections \
+ change-ipv4-addresses
add_connection_wired_SOURCES = add-connection-wired.cpp
add_connection_wired_LDADD = \
@@ -18,7 +19,13 @@ list_connections_LDADD = \
$(DBUS_LIBS) \
$(QT_LIBS)
+change_ipv4_addresses_SOURCES = change-ipv4-addresses.cpp
+change_ipv4_addresses_LDADD = \
+ $(DBUS_LIBS) \
+ $(QT_LIBS)
+
EXTRA_DIST = \
add-connection-wired.cpp \
- list-connections.cpp
+ list-connections.cpp \
+ change-ipv4-addresses.cpp
diff --git a/examples/C/qt/Makefile.in b/examples/C/qt/Makefile.in
index c70f48558..a07fe0159 100644
--- a/examples/C/qt/Makefile.in
+++ b/examples/C/qt/Makefile.in
@@ -35,7 +35,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
noinst_PROGRAMS = add-connection-wired$(EXEEXT) \
- list-connections$(EXEEXT)
+ list-connections$(EXEEXT) change-ipv4-addresses$(EXEEXT)
subdir = examples/C/qt
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -65,6 +65,10 @@ add_connection_wired_DEPENDENCIES = $(am__DEPENDENCIES_1) \
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
+am_change_ipv4_addresses_OBJECTS = change-ipv4-addresses.$(OBJEXT)
+change_ipv4_addresses_OBJECTS = $(am_change_ipv4_addresses_OBJECTS)
+change_ipv4_addresses_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_list_connections_OBJECTS = list-connections.$(OBJEXT)
list_connections_OBJECTS = $(am_list_connections_OBJECTS)
list_connections_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -95,9 +99,10 @@ am__v_CXXLD_0 = @echo " CXXLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(add_connection_wired_SOURCES) $(list_connections_SOURCES)
+SOURCES = $(add_connection_wired_SOURCES) \
+ $(change_ipv4_addresses_SOURCES) $(list_connections_SOURCES)
DIST_SOURCES = $(add_connection_wired_SOURCES) \
- $(list_connections_SOURCES)
+ $(change_ipv4_addresses_SOURCES) $(list_connections_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -322,9 +327,15 @@ list_connections_LDADD = \
$(DBUS_LIBS) \
$(QT_LIBS)
+change_ipv4_addresses_SOURCES = change-ipv4-addresses.cpp
+change_ipv4_addresses_LDADD = \
+ $(DBUS_LIBS) \
+ $(QT_LIBS)
+
EXTRA_DIST = \
add-connection-wired.cpp \
- list-connections.cpp
+ list-connections.cpp \
+ change-ipv4-addresses.cpp
all: all-am
@@ -372,6 +383,9 @@ clean-noinstPROGRAMS:
add-connection-wired$(EXEEXT): $(add_connection_wired_OBJECTS) $(add_connection_wired_DEPENDENCIES)
@rm -f add-connection-wired$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(add_connection_wired_OBJECTS) $(add_connection_wired_LDADD) $(LIBS)
+change-ipv4-addresses$(EXEEXT): $(change_ipv4_addresses_OBJECTS) $(change_ipv4_addresses_DEPENDENCIES)
+ @rm -f change-ipv4-addresses$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(change_ipv4_addresses_OBJECTS) $(change_ipv4_addresses_LDADD) $(LIBS)
list-connections$(EXEEXT): $(list_connections_OBJECTS) $(list_connections_DEPENDENCIES)
@rm -f list-connections$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(list_connections_OBJECTS) $(list_connections_LDADD) $(LIBS)
@@ -383,6 +397,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add-connection-wired.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/change-ipv4-addresses.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-connections.Po@am__quote@
.cpp.o:
diff --git a/examples/C/qt/change-ipv4-addresses.cpp b/examples/C/qt/change-ipv4-addresses.cpp
new file mode 100644
index 000000000..ca340f7f7
--- /dev/null
+++ b/examples/C/qt/change-ipv4-addresses.cpp
@@ -0,0 +1,146 @@
+/* -*- 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 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2011 Red Hat, Inc.
+ */
+
+/*
+ * This example shows how to set manual IPv4 addresses to a connection.
+ * It uses Qt and D-Bus libraries to do that.
+ *
+ * Standalone compilation:
+ * g++ -Wall `pkg-config --libs --cflags NetworkManager QtCore QtDBus QtNetwork` change-ipv4-addresses.cpp -o change-ipv4-addresses
+ *
+ * You don't need to have NetworkManager devel package installed; you can just
+ * grab NetworkManager.h and put it in the path
+ */
+
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMetaType>
+#include <QtDBus/QDBusReply>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QDebug>
+#include <QtNetwork/QHostAddress>
+
+#include "arpa/inet.h"
+
+#include "NetworkManager.h"
+
+typedef QMap<QString, QMap<QString, QVariant> > Connection;
+Q_DECLARE_METATYPE(Connection)
+Q_DECLARE_METATYPE(QList<uint>);
+Q_DECLARE_METATYPE(QList<QList<uint> >);
+
+const QString NM_SETTING_CONNECTION_SETTING_NAME = "connection";
+const QString NM_SETTING_CONNECTION_ID = "id";
+const QString NM_SETTING_CONNECTION_UUID = "uuid";
+
+
+const QString getConnection(const QString& connectionUuid, Connection *found_connection)
+{
+ Connection settings;
+ QDBusInterface *ifaceForSettings;
+
+ // Create a D-Bus proxy; NM_DBUS_* defined in NetworkManager.h
+ QDBusInterface interface(
+ NM_DBUS_SERVICE,
+ NM_DBUS_PATH_SETTINGS,
+ NM_DBUS_IFACE_SETTINGS,
+ QDBusConnection::systemBus());
+
+ // Get connection list and find the connection with 'connectionUuid'
+ QDBusReply<QList<QDBusObjectPath> > result1 = interface.call("ListConnections");
+
+ foreach (const QDBusObjectPath& connection, result1.value()) {
+ ifaceForSettings = new QDBusInterface(
+ NM_DBUS_SERVICE,
+ connection.path(),
+ NM_DBUS_IFACE_SETTINGS_CONNECTION,
+ QDBusConnection::systemBus());
+ QDBusReply<Connection> result2 = ifaceForSettings->call("GetSettings");
+ delete ifaceForSettings;
+
+ settings = result2.value();
+ QVariantMap connectionSettings = settings.value(NM_SETTING_CONNECTION_SETTING_NAME);
+ QString uuid = connectionSettings.value(NM_SETTING_CONNECTION_UUID).toString();
+
+ if (uuid == connectionUuid) {
+ // Connection found; set the settings to found_connection
+ // connection object path
+ *found_connection = settings;
+ return connection.path();
+ }
+ }
+
+ return QString();
+}
+
+void changeConnection(const QString& uuid)
+{
+ // Register types with D-Bus
+ qDBusRegisterMetaType<Connection>();
+ qDBusRegisterMetaType<QList<uint> >();
+ qDBusRegisterMetaType<QList<QList<uint> > >();
+
+ Connection connection;
+ QString conPath;
+
+ // Find connection by provided UUID
+ conPath = getConnection(uuid, &connection);
+
+ if (!conPath.isEmpty()) {
+ QList<QList<uint> > addresses;
+ QList<uint> addr1, addr2;
+
+ // Add some addresses
+ addr1 << htonl(QHostAddress("192.168.100.4").toIPv4Address()) << 24 << htonl(QHostAddress("192.168.100.1").toIPv4Address());
+ addr2 << htonl(QHostAddress("10.0.1.222").toIPv4Address()) << 8 << htonl(QHostAddress("10.0.1.254").toIPv4Address());
+ addresses << addr1 << addr2;
+
+ // Set method to "Manual" and put addresses to the connection map
+ connection["ipv4"]["method"] = "manual";
+ connection["ipv4"]["addresses"] = QVariant::fromValue(addresses);
+
+ QDBusInterface interface(
+ NM_DBUS_SERVICE,
+ conPath,
+ NM_DBUS_IFACE_SETTINGS_CONNECTION,
+ QDBusConnection::systemBus());
+
+ // Call Update() D-Bus method to update connection
+ QDBusReply<void> result = interface.call("Update", QVariant::fromValue(connection));
+ if (result.isValid()) {
+ qDebug() << QString("Connection successfully updated (path %1)").arg(conPath);
+ } else {
+ qDebug() << QString("Error: could not update connection: %1 %2").arg(result.error().name()).arg(result.error().message());
+ }
+ } else {
+ qDebug() << QString("Error: connection with UUID '%1' not found").arg(uuid);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc != 2) {
+ qDebug() << QString("Usage: %1 <UUID>").arg(argv[0]);
+ return -1;
+ }
+
+ changeConnection(argv[1]);
+}
diff --git a/examples/python/Makefile.am b/examples/python/Makefile.am
index 5650ed833..7fa376ef7 100644
--- a/examples/python/Makefile.am
+++ b/examples/python/Makefile.am
@@ -5,6 +5,7 @@ EXTRA_DIST = \
vpn.py \
list-connections.py \
show-bssids.py \
- disconnect-device.py
+ disconnect-device.py \
+ get-active-connections.py
diff --git a/examples/python/Makefile.in b/examples/python/Makefile.in
index 9aac5bbfc..983f843d8 100644
--- a/examples/python/Makefile.in
+++ b/examples/python/Makefile.in
@@ -460,7 +460,8 @@ uninstall-am:
vpn.py \
list-connections.py \
show-bssids.py \
- disconnect-device.py
+ disconnect-device.py \
+ get-active-connections.py
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/include/NetworkManager.h b/include/NetworkManager.h
index 17c3a116c..3522dd25e 100644
--- a/include/NetworkManager.h
+++ b/include/NetworkManager.h
@@ -74,7 +74,7 @@
* @NM_STATE_CONNECTED_GLOBAL: there is global IPv4 and/or IPv6 Internet connectivity
*
* #NMState values indicate the current overall networking state.
- */
+ **/
typedef enum {
NM_STATE_UNKNOWN = 0,
NM_STATE_ASLEEP = 10,
@@ -103,7 +103,7 @@ typedef enum {
* GSM/UMTS, or LTE network access protocols
*
* #NMState values indicate the current overall networking state.
- */
+ **/
typedef enum {
NM_DEVICE_TYPE_UNKNOWN = 0,
NM_DEVICE_TYPE_ETHERNET = 1,
@@ -116,16 +116,36 @@ typedef enum {
NM_DEVICE_TYPE_MODEM = 8,
} NMDeviceType;
-/* General device capability flags */
+/**
+ * NMDeviceCapabilities:
+ * @NM_DEVICE_CAP_NONE: device has no special capabilities
+ * @NM_DEVICE_CAP_NM_SUPPORTED: NetworkManager supports this device
+ * @NM_DEVICE_CAP_CARRIER_DETECT: this device can indicate carrier status
+ *
+ * General device capability flags.
+ **/
typedef enum {
+ /*< flags >*/
NM_DEVICE_CAP_NONE = 0x00000000,
NM_DEVICE_CAP_NM_SUPPORTED = 0x00000001,
NM_DEVICE_CAP_CARRIER_DETECT = 0x00000002
} NMDeviceCapabilities;
-/* 802.11 Wifi device capabilities */
+/**
+ * NMDeviceWifiCapabilities:
+ * @NM_WIFI_DEVICE_CAP_NONE: device has no encryption/authentication capabilities
+ * @NM_WIFI_DEVICE_CAP_CIPHER_WEP40: device supports 40/64-bit WEP encryption
+ * @NM_WIFI_DEVICE_CAP_CIPHER_WEP104: device supports 104/128-bit WEP encryption
+ * @NM_WIFI_DEVICE_CAP_CIPHER_TKIP: device supports TKIP encryption
+ * @NM_WIFI_DEVICE_CAP_CIPHER_CCMP: device supports AES/CCMP encryption
+ * @NM_WIFI_DEVICE_CAP_WPA: device supports WPA1 authentication
+ * @NM_WIFI_DEVICE_CAP_RSN: device supports WPA2/RSN authentication
+ *
+ * 802.11 specific device encryption and authentication capabilities.
+ **/
typedef enum {
+ /*< flags >*/
NM_WIFI_DEVICE_CAP_NONE = 0x00000000,
NM_WIFI_DEVICE_CAP_CIPHER_WEP40 = 0x00000001,
NM_WIFI_DEVICE_CAP_CIPHER_WEP104 = 0x00000002,
@@ -136,20 +156,45 @@ typedef enum {
} NMDeviceWifiCapabilities;
-/* 802.11 Access Point flags */
+/**
+ * NM80211ApFlags:
+ * @NM_802_11_AP_FLAGS_NONE: access point has no special capabilities
+ * @NM_802_11_AP_FLAGS_PRIVACY: access point requires authentication and
+ * encryption (usually means WEP)
+ *
+ * 802.11 access point flags.
+ **/
typedef enum {
/*< flags >*/
NM_802_11_AP_FLAGS_NONE = 0x00000000,
NM_802_11_AP_FLAGS_PRIVACY = 0x00000001
} NM80211ApFlags;
-/*
- * 802.11 Access Point security flags
+/**
+ * NM80211ApSecurityFlags:
+ * @NM_802_11_AP_SEC_NONE: the access point has no special security requirements
+ * @NM_802_11_AP_SEC_PAIR_WEP40: 40/64-bit WEP is supported for
+ * pairwise/unicast encryption
+ * @NM_802_11_AP_SEC_PAIR_WEP104: 104/128-bit WEP is supported for
+ * pairwise/unicast encryption
+ * @NM_802_11_AP_SEC_PAIR_TKIP: TKIP is supported for pairwise/unicast encryption
+ * @NM_802_11_AP_SEC_PAIR_CCMP: AES/CCMP is supported for pairwise/unicast encryption
+ * @NM_802_11_AP_SEC_GROUP_WEP40: 40/64-bit WEP is supported for group/broadcast
+ * encryption
+ * @NM_802_11_AP_SEC_GROUP_WEP104: 104/128-bit WEP is supported for
+ * group/broadcast encryption
+ * @NM_802_11_AP_SEC_GROUP_TKIP: TKIP is supported for group/broadcast encryption
+ * @NM_802_11_AP_SEC_GROUP_CCMP: AES/CCMP is supported for group/broadcast
+ * encryption
+ * @NM_802_11_AP_SEC_KEY_MGMT_PSK: WPA/RSN Pre-Shared Key encryption is
+ * supported
+ * @NM_802_11_AP_SEC_KEY_MGMT_802_1X: 802.1x authentication and key management
+ * is supported
*
- * These describe the current security requirements of the BSSID as extracted
- * from various pieces of beacon information, like beacon flags and various
- * information elements.
- */
+ * 802.11 access point security and authentication flags. These flags describe
+ * the current security requirements of an access point as determined from the
+ * access point's beacon.
+ **/
typedef enum {
/*< flags >*/
NM_802_11_AP_SEC_NONE = 0x00000000,
@@ -165,10 +210,14 @@ typedef enum {
NM_802_11_AP_SEC_KEY_MGMT_802_1X = 0x00000200
} NM80211ApSecurityFlags;
-/*
- * 802.11 AP and Station modes
+/**
+ * NM80211Mode:
+ * @NM_802_11_MODE_UNKNOWN: the device or access point mode is unknown
+ * @NM_802_11_MODE_ADHOC: the device or access point is in Ad-Hoc mode
+ * @NM_802_11_MODE_INFRA: the device or access point is in infrastructure mode
*
- */
+ * Indicates the 802.11 mode an access point or device is currently in.
+ **/
typedef enum {
NM_802_11_MODE_UNKNOWN = 0,
NM_802_11_MODE_ADHOC,
@@ -183,7 +232,7 @@ typedef enum {
*
* #NMBluetoothCapabilities values indicate the usable capabilities of a
* Bluetooth device.
- */
+ **/
typedef enum {
/*< flags >*/
NM_BT_CAPABILITY_NONE = 0x00000000,
@@ -206,7 +255,7 @@ typedef enum {
* technology families a modem device supports. For more information on the
* specific access technologies the device supports use the ModemManager D-Bus
* API.
- */
+ **/
typedef enum {
/*< flags >*/
NM_DEVICE_MODEM_CAPABILITY_NONE = 0x00000000,
@@ -428,7 +477,7 @@ typedef enum {
* #NMActiveConnectionState values indicate the state of a connection to a
* specific network while it is starting, connected, or disconnecting from that
* network.
- */
+ **/
typedef enum {
NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0,
NM_ACTIVE_CONNECTION_STATE_ACTIVATING,
diff --git a/include/nm-settings-flags.h b/include/nm-settings-flags.h
index 5f008f5c8..4bf59f2f1 100644
--- a/include/nm-settings-flags.h
+++ b/include/nm-settings-flags.h
@@ -22,12 +22,16 @@
#define NM_SETTINGS_FLAGS_H
/* NOTE: these values should match the NM_SECRET_AGENT_GET_SECRETS_FLAGS in
- * the nm-secret-agent.xml introspection file.
+ * the nm-secret-agent.xml introspection file; except ONLY_SYSTEM which is
+ * internal to NM.
*/
typedef enum {
NM_SETTINGS_GET_SECRETS_FLAG_NONE = 0x0,
NM_SETTINGS_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1,
- NM_SETTINGS_GET_SECRETS_FLAG_REQUEST_NEW = 0x2
+ NM_SETTINGS_GET_SECRETS_FLAG_REQUEST_NEW = 0x2,
+
+ /* Internal only to NM */
+ NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM = 0x80000000
} NMSettingsGetSecretsFlags;
#endif /* NM_SETTINGS_FLAGS_H */
diff --git a/include/nm-version.h b/include/nm-version.h
index 972aee275..3d3adfba1 100644
--- a/include/nm-version.h
+++ b/include/nm-version.h
@@ -35,7 +35,7 @@
* Evaluates to the minor version number of NetworkManager which this source
* is compiled against.
*/
-#define NM_MINOR_VERSION (8)
+#define NM_MINOR_VERSION (9)
/**
* NM_MICRO_VERSION:
@@ -43,7 +43,7 @@
* Evaluates to the micro version number of NetworkManager which this source
* compiled against.
*/
-#define NM_MICRO_VERSION (9997)
+#define NM_MICRO_VERSION (0)
/**
* NM_CHECK_VERSION:
diff --git a/initscript/RedHat/Makefile.am b/initscript/RedHat/Makefile.am
index fc97ec45e..62f5cf332 100644
--- a/initscript/RedHat/Makefile.am
+++ b/initscript/RedHat/Makefile.am
@@ -1,3 +1,6 @@
+if !HAVE_SYSTEMD
+
initddir = $(sysconfdir)/rc.d/init.d
initd_SCRIPTS = NetworkManager
+endif
diff --git a/initscript/RedHat/Makefile.in b/initscript/RedHat/Makefile.in
index a4b346ed1..4449798b0 100644
--- a/initscript/RedHat/Makefile.in
+++ b/initscript/RedHat/Makefile.in
@@ -293,8 +293,8 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-initddir = $(sysconfdir)/rc.d/init.d
-initd_SCRIPTS = NetworkManager
+@HAVE_SYSTEMD_FALSE@initddir = $(sysconfdir)/rc.d/init.d
+@HAVE_SYSTEMD_FALSE@initd_SCRIPTS = NetworkManager
all: all-am
.SUFFIXES:
diff --git a/introspection/Makefile.am b/introspection/Makefile.am
index 320245eee..7b549c126 100644
--- a/introspection/Makefile.am
+++ b/introspection/Makefile.am
@@ -1,5 +1,5 @@
EXTRA_DIST = \
- all.xml \
+ all.xml.in \
generic-types.xml \
errors.xml \
vpn-errors.xml \
diff --git a/introspection/Makefile.in b/introspection/Makefile.in
index d0320e54c..95c3c47e6 100644
--- a/introspection/Makefile.in
+++ b/introspection/Makefile.in
@@ -34,7 +34,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = introspection
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/all.xml.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \
@@ -51,7 +52,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_FILES = all.xml
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
@@ -269,7 +270,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
EXTRA_DIST = \
- all.xml \
+ all.xml.in \
generic-types.xml \
errors.xml \
vpn-errors.xml \
@@ -329,6 +330,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
+all.xml: $(top_builddir)/config.status $(srcdir)/all.xml.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool:
-rm -f *.lo
diff --git a/introspection/all.xml b/introspection/all.xml.in
index 5d1baf01c..4d2c27217 100644
--- a/introspection/all.xml
+++ b/introspection/all.xml.in
@@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude">
<tp:title>NetworkManager D-Bus Interface Specification</tp:title>
-<tp:version>0.9</tp:version>
+<tp:version>@VERSION@</tp:version>
<tp:copyright>Copyright (C) 2008 - 2011 Red Hat, Inc.</tp:copyright>
diff --git a/introspection/nm-agent-manager.xml b/introspection/nm-agent-manager.xml
index 0b1e3e6e8..e26caacf4 100644
--- a/introspection/nm-agent-manager.xml
+++ b/introspection/nm-agent-manager.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+<node name="/org/freedesktop/NetworkManager/AgentManager" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="org.freedesktop.NetworkManager.AgentManager">
<method name="Register">
diff --git a/introspection/nm-manager.xml b/introspection/nm-manager.xml
index 1bb76d09f..f5fd7abcf 100644
--- a/introspection/nm-manager.xml
+++ b/introspection/nm-manager.xml
@@ -1,13 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- READ ME! READ ME! READ ME! READ ME! READ ME!
-
- This file needs to be kept in sync with nm-manager-client.xml with the exception of
- the legacy methods at the end of this file.
--->
-
-<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+<node name="/org/freedesktop/NetworkManager" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="org.freedesktop.NetworkManager">
<method name="GetDevices">
<tp:docstring>
diff --git a/introspection/nm-secret-agent.xml b/introspection/nm-secret-agent.xml
index daf287c62..0a67efdc6 100644
--- a/introspection/nm-secret-agent.xml
+++ b/introspection/nm-secret-agent.xml
@@ -5,7 +5,13 @@
<interface name="org.freedesktop.NetworkManager.SecretAgent">
<tp:docstring>
Private D-Bus interface used by secret agents that store and provide
- secrets to NetworkManager.
+ secrets to NetworkManager. If an agent provides secrets to
+ NetworkManager as part of connection creation, and the some of those
+ secrets are "agent owned" the agent should store those secrets
+ itself and should not expect its SaveSecrets() method to be called.
+ SaveSecrets() will be called eg if some program other than the
+ agent itself (like a connection editor) changes the secrets out of
+ band.
</tp:docstring>
<method name="GetSecrets">
@@ -123,7 +129,10 @@
<tp:docstring>
Nested settings maps containing the entire connection
(including secrets), for which the agent should save the
- secrets to backing storage.
+ secrets to backing storage. This method will not be called
+ when the agent itself is the process creating or updating
+ a connection; in that case the agent is assumed to have
+ already saved those secrets since it had them already.
</tp:docstring>
</arg>
<arg name="connection_path" type="o" direction="in">
diff --git a/introspection/nm-settings.xml b/introspection/nm-settings.xml
index 64163534a..301cde76d 100644
--- a/introspection/nm-settings.xml
+++ b/introspection/nm-settings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+<node name="/org/freedesktop/NetworkManager/Settings" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="org.freedesktop.NetworkManager.Settings">
<tp:docstring>
The Settings interface allows clients to view and administrate the connections stored and used by NetworkManager.
diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am
index 08a61cc29..4eec40161 100644
--- a/libnm-glib/Makefile.am
+++ b/libnm-glib/Makefile.am
@@ -139,7 +139,7 @@ libnm_glib_la_LIBADD = \
SYMBOL_VIS_FILE=$(srcdir)/libnm-glib.ver
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \
- -version-info "5:0:1"
+ -version-info "6:0:2"
noinst_PROGRAMS = libnm-glib-test
diff --git a/libnm-glib/Makefile.in b/libnm-glib/Makefile.in
index 98280865e..9728f7d98 100644
--- a/libnm-glib/Makefile.in
+++ b/libnm-glib/Makefile.in
@@ -599,7 +599,7 @@ libnm_glib_la_LIBADD = \
SYMBOL_VIS_FILE = $(srcdir)/libnm-glib.ver
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \
- -version-info "5:0:1"
+ -version-info "6:0:2"
libnm_glib_test_SOURCES = libnm-glib-test.c
libnm_glib_test_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS)
diff --git a/libnm-glib/libnm-glib-vpn.pc.in b/libnm-glib/libnm-glib-vpn.pc.in
index 5f341594f..046f5b072 100644
--- a/libnm-glib/libnm-glib-vpn.pc.in
+++ b/libnm-glib/libnm-glib-vpn.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libnm-glib-vpn
Description: Convenience library for NetworkManager VPN plugins
Version: @VERSION@
-Requires: NetworkManager >= 0.8.995 glib-2.0 dbus-glib-1
+Requires: NetworkManager >= @VERSION@ glib-2.0 dbus-glib-1
Cflags: -I${includedir}/libnm-glib
Libs: -L${libdir} -lnm-glib-vpn
diff --git a/libnm-glib/libnm-glib.pc.in b/libnm-glib/libnm-glib.pc.in
index 2668b4e56..754c43daa 100644
--- a/libnm-glib/libnm-glib.pc.in
+++ b/libnm-glib/libnm-glib.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libnm-glib
Description: Convenience library for clients of NetworkManager
Version: @VERSION@
-Requires: NetworkManager >= 0.8.995 gobject-2.0 dbus-glib-1
+Requires: NetworkManager >= @VERSION@ gobject-2.0 dbus-glib-1
Cflags: -I${includedir}/libnm-glib
Libs: -L${libdir} -lnm-glib
diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver
index f42368b87..1a4a68cf6 100644
--- a/libnm-glib/libnm-glib.ver
+++ b/libnm-glib/libnm-glib.ver
@@ -32,6 +32,7 @@ global:
nm_client_add_and_activate_connection;
nm_client_deactivate_connection;
nm_client_get_active_connections;
+ nm_client_get_device_by_iface;
nm_client_get_device_by_path;
nm_client_get_devices;
nm_client_get_manager_running;
diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
index 644af3e4f..0769de1a7 100644
--- a/libnm-glib/nm-client.c
+++ b/libnm-glib/nm-client.c
@@ -557,6 +557,40 @@ nm_client_get_device_by_path (NMClient *client, const char *object_path)
return device;
}
+/**
+ * nm_client_get_device_by_iface:
+ * @client: a #NMClient
+ * @iface: the interface name to search for
+ *
+ * Gets a #NMDevice from a #NMClient.
+ *
+ * Returns: (transfer none): the #NMDevice for the given @iface or %NULL if none is found.
+ **/
+NMDevice *
+nm_client_get_device_by_iface (NMClient *client, const char *iface)
+{
+ const GPtrArray *devices;
+ int i;
+ NMDevice *device = NULL;
+
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (iface, NULL);
+
+ devices = nm_client_get_devices (client);
+ if (!devices)
+ return NULL;
+
+ for (i = 0; i < devices->len; i++) {
+ NMDevice *candidate = g_ptr_array_index (devices, i);
+ if (!strcmp (nm_device_get_iface (candidate), iface)) {
+ device = candidate;
+ break;
+ }
+ }
+
+ return device;
+}
+
typedef struct {
NMClient *client;
NMClientActivateFn act_fn;
@@ -763,7 +797,7 @@ nm_client_add_and_activate_connection (NMClient *client,
if (partial)
hash = nm_connection_to_hash (partial, NM_SETTING_HASH_FLAG_ALL);
- else
+ if (!hash)
hash = g_hash_table_new (g_str_hash, g_str_equal);
priv = NM_CLIENT_GET_PRIVATE (client);
diff --git a/libnm-glib/nm-client.h b/libnm-glib/nm-client.h
index 450c09471..c9fd7c104 100644
--- a/libnm-glib/nm-client.h
+++ b/libnm-glib/nm-client.h
@@ -108,6 +108,7 @@ NMClient *nm_client_new (void);
const GPtrArray *nm_client_get_devices (NMClient *client);
NMDevice *nm_client_get_device_by_path (NMClient *client, const char *object_path);
+NMDevice *nm_client_get_device_by_iface (NMClient *client, const char *iface);
typedef void (*NMClientActivateFn) (NMClient *client,
NMActiveConnection *active_connection,
diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c
index 9877f94ff..7d0e1b9f6 100644
--- a/libnm-glib/nm-device-wifi.c
+++ b/libnm-glib/nm-device-wifi.c
@@ -637,12 +637,10 @@ demarshal_active_ap (NMObject *object, GParamSpec *pspec, GValue *value, gpointe
NMAccessPoint *ap = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_active_ap = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
ap = NM_ACCESS_POINT (_nm_object_cache_get (path));
@@ -653,6 +651,8 @@ demarshal_active_ap (NMObject *object, GParamSpec *pspec, GValue *value, gpointe
}
}
+ priv->got_active_ap = TRUE;
+
if (priv->active_ap) {
g_object_unref (priv->active_ap);
priv->active_ap = NULL;
diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c
index a889583db..4844a0e21 100644
--- a/libnm-glib/nm-device-wimax.c
+++ b/libnm-glib/nm-device-wimax.c
@@ -628,12 +628,10 @@ demarshal_active_nsp (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
NMWimaxNsp *nsp = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_active_nsp = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
nsp = NM_WIMAX_NSP (_nm_object_cache_get (path));
@@ -644,6 +642,8 @@ demarshal_active_nsp (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
}
}
+ priv->got_active_nsp = TRUE;
+
if (priv->active_nsp) {
g_object_unref (priv->active_nsp);
priv->active_nsp = NULL;
diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
index 3b39c9ece..f06c1e4af 100644
--- a/libnm-glib/nm-device.c
+++ b/libnm-glib/nm-device.c
@@ -120,12 +120,10 @@ demarshal_ip4_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
NMIP4Config *config = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_ip4_config = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
config = NM_IP4_CONFIG (_nm_object_cache_get (path));
@@ -136,6 +134,8 @@ demarshal_ip4_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
}
}
+ priv->got_ip4_config = TRUE;
+
if (priv->ip4_config) {
g_object_unref (priv->ip4_config);
priv->ip4_config = NULL;
@@ -156,12 +156,10 @@ demarshal_dhcp4_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoi
NMDHCP4Config *config = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_dhcp4_config = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
config = NM_DHCP4_CONFIG (_nm_object_cache_get (path));
@@ -172,6 +170,8 @@ demarshal_dhcp4_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoi
}
}
+ priv->got_dhcp4_config = TRUE;
+
if (priv->dhcp4_config) {
g_object_unref (priv->dhcp4_config);
priv->dhcp4_config = NULL;
@@ -192,12 +192,10 @@ demarshal_ip6_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
NMIP6Config *config = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_ip6_config = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
config = NM_IP6_CONFIG (_nm_object_cache_get (path));
@@ -208,6 +206,8 @@ demarshal_ip6_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoint
}
}
+ priv->got_ip6_config = TRUE;
+
if (priv->ip6_config) {
g_object_unref (priv->ip6_config);
priv->ip6_config = NULL;
@@ -228,12 +228,10 @@ demarshal_dhcp6_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoi
NMDHCP6Config *config = NULL;
DBusGConnection *connection;
- if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
- return FALSE;
-
- priv->got_dhcp6_config = TRUE;
-
if (value) {
+ if (!G_VALUE_HOLDS (value, DBUS_TYPE_G_OBJECT_PATH))
+ return FALSE;
+
path = g_value_get_boxed (value);
if (path) {
config = NM_DHCP6_CONFIG (_nm_object_cache_get (path));
@@ -244,6 +242,8 @@ demarshal_dhcp6_config (NMObject *object, GParamSpec *pspec, GValue *value, gpoi
}
}
+ priv->got_dhcp6_config = TRUE;
+
if (priv->dhcp6_config) {
g_object_unref (priv->dhcp6_config);
priv->dhcp6_config = NULL;
@@ -1217,7 +1217,8 @@ nm_device_get_state (NMDevice *device)
*
* Gets the #NMActiveConnection object which owns this device during activation.
*
- * Returns: the #NMActiveConnection
+ * Returns: (transfer none): the #NMActiveConnection or %NULL if the device is
+ * not part of an active connection
**/
NMActiveConnection *
nm_device_get_active_connection (NMDevice *device)
diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c
index 614f6afcc..cbcf29190 100644
--- a/libnm-glib/nm-object.c
+++ b/libnm-glib/nm-object.c
@@ -79,8 +79,6 @@ constructor (GType type,
if (!object)
return NULL;
- _nm_object_cache_add (NM_OBJECT (object));
-
priv = NM_OBJECT_GET_PRIVATE (object);
if (priv->connection == NULL || priv->path == NULL) {
@@ -94,6 +92,8 @@ constructor (GType type,
priv->path,
"org.freedesktop.DBus.Properties");
+ _nm_object_cache_add (NM_OBJECT (object));
+
return object;
}
@@ -140,11 +140,15 @@ set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object);
+ DBusGConnection *connection;
switch (prop_id) {
case PROP_CONNECTION:
/* Construct only */
- priv->connection = dbus_g_connection_ref ((DBusGConnection *) g_value_get_boxed (value));
+ connection = (DBusGConnection *) g_value_get_boxed (value);
+ if (!connection)
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
+ priv->connection = dbus_g_connection_ref (connection);
break;
case PROP_PATH:
/* Construct only */
diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c
index 70befd9e4..b6aaabb06 100644
--- a/libnm-glib/nm-remote-settings.c
+++ b/libnm-glib/nm-remote-settings.c
@@ -736,9 +736,6 @@ get_all_cb (DBusGProxy *proxy,
NMRemoteSettings *
nm_remote_settings_new (DBusGConnection *bus)
{
- if (bus == NULL)
- bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
-
return (NMRemoteSettings *) g_object_new (NM_TYPE_REMOTE_SETTINGS,
NM_REMOTE_SETTINGS_BUS, bus,
NULL);
@@ -887,11 +884,15 @@ set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMRemoteSettingsPrivate *priv = NM_REMOTE_SETTINGS_GET_PRIVATE (object);
+ DBusGConnection *connection;
switch (prop_id) {
case PROP_BUS:
/* Construct only */
- priv->bus = dbus_g_connection_ref ((DBusGConnection *) g_value_get_boxed (value));
+ connection = (DBusGConnection *) g_value_get_boxed (value);
+ if (!connection)
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
+ priv->bus = dbus_g_connection_ref (connection);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/libnm-glib/nm-vpn-plugin-ui-interface.c b/libnm-glib/nm-vpn-plugin-ui-interface.c
index f4b844c8d..f82c1270f 100644
--- a/libnm-glib/nm-vpn-plugin-ui-interface.c
+++ b/libnm-glib/nm-vpn-plugin-ui-interface.c
@@ -150,12 +150,8 @@ nm_vpn_plugin_ui_interface_delete_connection (NMVpnPluginUiInterface *iface,
NMConnection *connection,
GError **error)
{
- g_return_val_if_fail (NM_IS_VPN_PLUGIN_UI_INTERFACE (iface), FALSE);
-
- if (error)
- g_return_val_if_fail (*error == NULL, FALSE);
-
- return NM_VPN_PLUGIN_UI_INTERFACE_GET_INTERFACE (iface)->delete_connection (iface, connection, error);
+ /* Deprecated and no longer used */
+ return TRUE;
}
@@ -235,11 +231,7 @@ nm_vpn_plugin_ui_widget_interface_save_secrets (NMVpnPluginUiWidgetInterface *if
NMConnection *connection,
GError **error)
{
- g_return_val_if_fail (NM_IS_VPN_PLUGIN_UI_WIDGET_INTERFACE (iface), FALSE);
-
- if (error)
- g_return_val_if_fail (*error == NULL, FALSE);
-
- return NM_VPN_PLUGIN_UI_WIDGET_INTERFACE_GET_INTERFACE (iface)->save_secrets (iface, connection, error);
+ /* Deprecated and no longer used */
+ return TRUE;
}
diff --git a/libnm-glib/nm-vpn-plugin-ui-interface.h b/libnm-glib/nm-vpn-plugin-ui-interface.h
index 2ab13f001..93c5659b6 100644
--- a/libnm-glib/nm-vpn-plugin-ui-interface.h
+++ b/libnm-glib/nm-vpn-plugin-ui-interface.h
@@ -111,11 +111,7 @@ struct _NMVpnPluginUiInterface {
*/
char * (*get_suggested_name) (NMVpnPluginUiInterface *iface, NMConnection *connection);
- /* Called when the user has chosen to remove the connection (for user
- * connections only; system connections are handled by the system
- * settings service). Should clear out any VPN-specific secrets or data
- * related to the connection.
- */
+ /* Deprecated and no longer used */
gboolean (*delete_connection) (NMVpnPluginUiInterface *iface, NMConnection *connection, GError **error);
/* Padding for future expansion */
@@ -147,6 +143,7 @@ gboolean nm_vpn_plugin_ui_interface_export (NMVpnPluginUiInterface *iface,
char *nm_vpn_plugin_ui_interface_get_suggested_name (NMVpnPluginUiInterface *iface,
NMConnection *connection);
+/* Deprecated and no longer used */
gboolean nm_vpn_plugin_ui_interface_delete_connection (NMVpnPluginUiInterface *iface,
NMConnection *connection,
GError **error);
@@ -178,11 +175,7 @@ struct _NMVpnPluginUiWidgetInterface {
NMConnection *connection,
GError **error);
- /* Called when the user has chosen to save the connection (for user
- * connections only; system connections are handled by the system
- * settings service). Should save VPN-specific connection secrets in
- * a way that the auth-dialog can read them.
- */
+ /* Deprecated and no longer used */
gboolean (*save_secrets) (NMVpnPluginUiWidgetInterface *iface,
NMConnection *connection,
GError **error);
@@ -200,6 +193,7 @@ gboolean nm_vpn_plugin_ui_widget_interface_update_connection (NMVpnPluginUiWidge
NMConnection *connection,
GError **error);
+/* Deprecated and no longer used */
gboolean nm_vpn_plugin_ui_widget_interface_save_secrets (NMVpnPluginUiWidgetInterface *iface,
NMConnection *connection,
GError **error);
diff --git a/libnm-util/libnm-util.ver b/libnm-util/libnm-util.ver
index 4ff0838e3..6052c2752 100644
--- a/libnm-util/libnm-util.ver
+++ b/libnm-util/libnm-util.ver
@@ -94,10 +94,15 @@ global:
nm_ip6_route_set_next_hop;
nm_ip6_route_set_prefix;
nm_ip6_route_unref;
+ nm_setting_802_1x_add_altsubject_match;
nm_setting_802_1x_add_eap_method;
+ nm_setting_802_1x_add_phase2_altsubject_match;
+ nm_setting_802_1x_clear_altsubject_matches;
nm_setting_802_1x_clear_eap_methods;
+ nm_setting_802_1x_clear_phase2_altsubject_matches;
nm_setting_802_1x_error_get_type;
nm_setting_802_1x_error_quark;
+ nm_setting_802_1x_get_altsubject_match;
nm_setting_802_1x_get_anonymous_identity;
nm_setting_802_1x_get_ca_cert_blob;
nm_setting_802_1x_get_ca_cert_path;
@@ -108,12 +113,15 @@ global:
nm_setting_802_1x_get_client_cert_scheme;
nm_setting_802_1x_get_eap_method;
nm_setting_802_1x_get_identity;
+ nm_setting_802_1x_get_num_altsubject_matches;
nm_setting_802_1x_get_num_eap_methods;
+ nm_setting_802_1x_get_num_phase2_altsubject_matches;
nm_setting_802_1x_get_password;
nm_setting_802_1x_get_password_flags;
nm_setting_802_1x_get_phase1_fast_provisioning;
nm_setting_802_1x_get_phase1_peaplabel;
nm_setting_802_1x_get_phase1_peapver;
+ nm_setting_802_1x_get_phase2_altsubject_match;
nm_setting_802_1x_get_phase2_auth;
nm_setting_802_1x_get_phase2_autheap;
nm_setting_802_1x_get_phase2_ca_cert_blob;
@@ -129,6 +137,7 @@ global:
nm_setting_802_1x_get_phase2_private_key_password_flags;
nm_setting_802_1x_get_phase2_private_key_path;
nm_setting_802_1x_get_phase2_private_key_scheme;
+ nm_setting_802_1x_get_phase2_subject_match;
nm_setting_802_1x_get_pin;
nm_setting_802_1x_get_pin_flags;
nm_setting_802_1x_get_private_key_blob;
@@ -137,10 +146,13 @@ global:
nm_setting_802_1x_get_private_key_password_flags;
nm_setting_802_1x_get_private_key_path;
nm_setting_802_1x_get_private_key_scheme;
+ nm_setting_802_1x_get_subject_match;
nm_setting_802_1x_get_system_ca_certs;
nm_setting_802_1x_get_type;
nm_setting_802_1x_new;
+ nm_setting_802_1x_remove_altsubject_match;
nm_setting_802_1x_remove_eap_method;
+ nm_setting_802_1x_remove_phase2_altsubject_match;
nm_setting_802_1x_set_ca_cert;
nm_setting_802_1x_set_client_cert;
nm_setting_802_1x_set_phase2_ca_cert;
@@ -342,6 +354,7 @@ global:
nm_setting_wired_get_cloned_mac_address;
nm_setting_wired_get_duplex;
nm_setting_wired_get_mac_address;
+ nm_setting_wired_get_mac_address_blacklist;
nm_setting_wired_get_mtu;
nm_setting_wired_get_num_s390_options;
nm_setting_wired_get_port;
@@ -362,6 +375,7 @@ global:
nm_setting_wireless_get_channel;
nm_setting_wireless_get_cloned_mac_address;
nm_setting_wireless_get_mac_address;
+ nm_setting_wireless_get_mac_address_blacklist;
nm_setting_wireless_get_mode;
nm_setting_wireless_get_mtu;
nm_setting_wireless_get_num_seen_bssids;
diff --git a/libnm-util/nm-connection.c b/libnm-util/nm-connection.c
index 6e9f92b59..91fc3afac 100644
--- a/libnm-util/nm-connection.c
+++ b/libnm-util/nm-connection.c
@@ -99,6 +99,7 @@ nm_connection_error_get_type (void)
ENUM_ENTRY (NM_CONNECTION_ERROR_UNKNOWN, "UnknownError"),
ENUM_ENTRY (NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND, "ConnectionSettingNotFound"),
ENUM_ENTRY (NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID, "ConnectionTypeInvalid"),
+ ENUM_ENTRY (NM_CONNECTION_ERROR_SETTING_NOT_FOUND, "SettingNotFound"),
{ 0, 0, 0 }
};
etype = g_enum_register_static ("NMConnectionError", values);
@@ -790,60 +791,76 @@ nm_connection_verify (NMConnection *connection, GError **error)
* nm_connection_update_secrets:
* @connection: the #NMConnection
* @setting_name: the setting object name to which the secrets apply
- * @setting_secrets: (element-type utf8 GObject.Value): a #GHashTable mapping
+ * @secrets: (element-type utf8 GObject.Value): a #GHashTable mapping
* string:#GValue of setting property names and secrets of the given @setting_name
* @error: location to store error, or %NULL
*
* Update the specified setting's secrets, given a hash table of secrets
* intended for that setting (deserialized from D-Bus for example). Will also
* extract the given setting's secrets hash if given a hash of hashes, as would
- * be returned from nm_connection_to_hash().
+ * be returned from nm_connection_to_hash(). If @setting_name is %NULL, expects
+ * a fully serialized #NMConnection as returned by nm_connection_to_hash() and
+ * will update all secrets from all settings contained in @secrets.
*
- * Returns: %TRUE if the secrets were successfully updated and the connection
- * is valid, %FALSE on failure or if the setting was never added to the connection
+ * Returns: %TRUE if the secrets were successfully updated, %FALSE if the update
+ * failed (tried to update secrets for a setting that doesn't exist, etc)
**/
gboolean
nm_connection_update_secrets (NMConnection *connection,
const char *setting_name,
- GHashTable *setting_secrets,
+ GHashTable *secrets,
GError **error)
{
NMSetting *setting;
gboolean success;
GHashTable *tmp;
- GType setting_type;
g_return_val_if_fail (connection != NULL, FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
- g_return_val_if_fail (setting_name != NULL, FALSE);
- g_return_val_if_fail (setting_secrets != NULL, FALSE);
+ g_return_val_if_fail (secrets != NULL, FALSE);
if (error)
g_return_val_if_fail (*error == NULL, FALSE);
- setting_type = nm_connection_lookup_setting_type (setting_name);
- if (!setting_type) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
- setting_name);
- return FALSE;
- }
+ if (setting_name) {
+ /* Update just one setting */
+ setting = nm_connection_get_setting_by_name (connection, setting_name);
+ if (!setting) {
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_SETTING_NOT_FOUND,
+ setting_name);
+ return FALSE;
+ }
- setting = nm_connection_get_setting (connection, setting_type);
- if (!setting) {
- g_set_error_literal (error,
- NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
- setting_name);
- return FALSE;
- }
+ /* Check if this is a hash of hashes, ie a full deserialized connection,
+ * not just a single hashed setting.
+ */
+ tmp = g_hash_table_lookup (secrets, setting_name);
+ success = nm_setting_update_secrets (setting, tmp ? tmp : secrets, error);
+ } else {
+ GHashTableIter iter;
+ const char *name;
- /* Check if this is a hash of hashes, ie a full deserialized connection,
- * not just a single hashed setting.
- */
- tmp = g_hash_table_lookup (setting_secrets, setting_name);
+ success = TRUE; /* Just in case 'secrets' has no elements */
+
+ /* Try as a serialized connection (GHashTable of GHashTables) */
+ g_hash_table_iter_init (&iter, secrets);
+ while (g_hash_table_iter_next (&iter, (gpointer) &name, (gpointer) &tmp)) {
+ setting = nm_connection_get_setting_by_name (connection, name);
+ if (!setting) {
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_SETTING_NOT_FOUND,
+ name);
+ return FALSE;
+ }
- success = nm_setting_update_secrets (setting, tmp ? tmp : setting_secrets, error);
+ /* Update the secrets for this setting */
+ success = nm_setting_update_secrets (setting, tmp, error);
+ if (success == FALSE)
+ break;
+ }
+ }
if (success)
g_signal_emit (connection, signals[SECRETS_UPDATED], 0, setting_name);
return success;
diff --git a/libnm-util/nm-connection.h b/libnm-util/nm-connection.h
index 87b053c10..3cd187472 100644
--- a/libnm-util/nm-connection.h
+++ b/libnm-util/nm-connection.h
@@ -66,6 +66,8 @@ G_BEGIN_DECLS
* 'connection' setting did not point to a valid connection base type; ie
* it was not a hardware-related setting like #NMSettingWired or
* #NMSettingWireless.
+ * @NM_CONNECTION_ERROR_SETTING_NOT_FOUND: the #NMConnection object
+ * did not contain the specified #NMSetting object
*
* Describes errors that may result from operations involving a #NMConnection.
*
@@ -74,7 +76,8 @@ typedef enum
{
NM_CONNECTION_ERROR_UNKNOWN = 0,
NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
- NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID
+ NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID,
+ NM_CONNECTION_ERROR_SETTING_NOT_FOUND
} NMConnectionError;
#define NM_TYPE_CONNECTION_ERROR (nm_connection_error_get_type ())
@@ -146,7 +149,7 @@ void nm_connection_clear_secrets (NMConnection *connection);
gboolean nm_connection_update_secrets (NMConnection *connection,
const char *setting_name,
- GHashTable *setting_secrets,
+ GHashTable *secrets,
GError **error);
void nm_connection_set_path (NMConnection *connection,
diff --git a/libnm-util/nm-param-spec-specialized.c b/libnm-util/nm-param-spec-specialized.c
index 93623a118..7e921bca3 100644
--- a/libnm-util/nm-param-spec-specialized.c
+++ b/libnm-util/nm-param-spec-specialized.c
@@ -230,7 +230,7 @@ _gvalue_destroy (gpointer data)
}
static GValue *
-nm_gvalue_dup (const GValue *value)
+_gvalue_dup (const GValue *value)
{
GValue *dup;
@@ -246,7 +246,7 @@ iterate_collection (const GValue *value, gpointer user_data)
{
GSList **list = (GSList **) user_data;
- *list = g_slist_prepend (*list, nm_gvalue_dup (value));
+ *list = g_slist_prepend (*list, _gvalue_dup (value));
}
static gint
@@ -306,7 +306,7 @@ iterate_map (const GValue *key_val,
{
GHashTable **hash = (GHashTable **) user_data;
- g_hash_table_insert (*hash, g_value_dup_string (key_val), nm_gvalue_dup (value_val));
+ g_hash_table_insert (*hash, g_value_dup_string (key_val), _gvalue_dup (value_val));
}
typedef struct {
diff --git a/libnm-util/nm-setting-8021x.c b/libnm-util/nm-setting-8021x.c
index 247504226..07fdcc214 100644
--- a/libnm-util/nm-setting-8021x.c
+++ b/libnm-util/nm-setting-8021x.c
@@ -116,6 +116,8 @@ typedef struct {
char *anonymous_identity;
GByteArray *ca_cert;
char *ca_path;
+ char *subject_match;
+ GSList *altsubject_matches;
GByteArray *client_cert;
char *phase1_peapver;
char *phase1_peaplabel;
@@ -124,6 +126,8 @@ typedef struct {
char *phase2_autheap;
GByteArray *phase2_ca_cert;
char *phase2_ca_path;
+ char *phase2_subject_match;
+ GSList *phase2_altsubject_matches;
GByteArray *phase2_client_cert;
char *password;
NMSettingSecretFlags password_flags;
@@ -145,6 +149,8 @@ enum {
PROP_ANONYMOUS_IDENTITY,
PROP_CA_CERT,
PROP_CA_PATH,
+ PROP_SUBJECT_MATCH,
+ PROP_ALTSUBJECT_MATCHES,
PROP_CLIENT_CERT,
PROP_PHASE1_PEAPVER,
PROP_PHASE1_PEAPLABEL,
@@ -153,6 +159,8 @@ enum {
PROP_PHASE2_AUTHEAP,
PROP_PHASE2_CA_CERT,
PROP_PHASE2_CA_PATH,
+ PROP_PHASE2_SUBJECT_MATCH,
+ PROP_PHASE2_ALTSUBJECT_MATCHES,
PROP_PHASE2_CLIENT_CERT,
PROP_PASSWORD,
PROP_PASSWORD_FLAGS,
@@ -557,6 +565,135 @@ nm_setting_802_1x_set_ca_cert (NMSetting8021x *self,
}
/**
+ * nm_setting_802_1x_get_subject_match:
+ * @setting: the #NMSetting8021x
+ *
+ * Returns: the #NMSetting8021x:subject-match property. This is the
+ * substring to be matched against the subject of the authentication
+ * server certificate, or NULL no subject verification is to be
+ * performed.
+ **/
+const char *
+nm_setting_802_1x_get_subject_match (NMSetting8021x *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), NULL);
+
+ return NM_SETTING_802_1X_GET_PRIVATE (setting)->subject_match;
+}
+
+/**
+ * nm_setting_802_1x_get_num_altsubject_matches:
+ * @setting: the #NMSetting8021x
+ *
+ * Returns the number of entries in the
+ * #NMSetting8021x:altsubject-matches property of this setting.
+ *
+ * Returns: the number of altsubject-matches entries.
+ **/
+guint32
+nm_setting_802_1x_get_num_altsubject_matches (NMSetting8021x *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), 0);
+
+ return g_slist_length (NM_SETTING_802_1X_GET_PRIVATE (setting)->altsubject_matches);
+}
+
+/**
+ * nm_setting_802_1x_get_altsubject_match:
+ * @setting: the #NMSettingConnection
+ * @i: the zero-based index of the array of altSubjectName matches
+ *
+ * Returns the altSubjectName match at index @i.
+ *
+ * Returns: the altSubjectName match at index @i
+ **/
+const char *
+nm_setting_802_1x_get_altsubject_match (NMSetting8021x *setting, guint32 i)
+{
+ NMSetting8021xPrivate *priv;
+
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), NULL);
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ g_return_val_if_fail (i <= g_slist_length (priv->altsubject_matches), NULL);
+
+ return (const char *) g_slist_nth_data (priv->altsubject_matches, i);
+}
+
+/**
+ * nm_setting_802_1x_add_altsubject_match:
+ * @setting: the #NMSetting8021x
+ * @altsubject_match: the altSubjectName to allow for this connection
+ *
+ * Adds an allowed alternate subject name match. Until at least one
+ * match is added, the altSubjectName of the remote authentication
+ * server is not verified.
+ *
+ * Returns: TRUE if the alternative subject name match was
+ * successfully added, FALSE if it was already allowed.
+ **/
+gboolean
+nm_setting_802_1x_add_altsubject_match (NMSetting8021x *setting,
+ const char *altsubject_match)
+{
+ NMSetting8021xPrivate *priv;
+ GSList *iter;
+
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), FALSE);
+ g_return_val_if_fail (altsubject_match != NULL, FALSE);
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ for (iter = priv->altsubject_matches; iter; iter = g_slist_next (iter)) {
+ if (!strcmp (altsubject_match, (char *) iter->data))
+ return FALSE;
+ }
+
+ priv->altsubject_matches = g_slist_append (priv->altsubject_matches, g_strdup (altsubject_match));
+ return TRUE;
+}
+
+/**
+ * nm_setting_802_1x_remove_altsubject_match:
+ * @setting: the #NMSetting8021x
+ * @i: the index of the altSubjectName match to remove
+ *
+ * Removes the allowed altSubjectName at the specified index.
+ **/
+void
+nm_setting_802_1x_remove_altsubject_match (NMSetting8021x *setting, guint32 i)
+{
+ NMSetting8021xPrivate *priv;
+ GSList *elt;
+
+ g_return_if_fail (NM_IS_SETTING_802_1X (setting));
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ elt = g_slist_nth (priv->altsubject_matches, i);
+ g_return_if_fail (elt != NULL);
+
+ g_free (elt->data);
+ priv->altsubject_matches = g_slist_delete_link (priv->altsubject_matches, elt);
+}
+
+/**
+ * nm_setting_802_1x_clear_altsubject_matches:
+ * @setting: the #NMSetting8021x
+ *
+ * Clears all altSubjectName matches.
+ **/
+void
+nm_setting_802_1x_clear_altsubject_matches (NMSetting8021x *setting)
+{
+ NMSetting8021xPrivate *priv;
+
+ g_return_if_fail (NM_IS_SETTING_802_1X (setting));
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ nm_utils_slist_free (priv->altsubject_matches, g_free);
+ priv->altsubject_matches = NULL;
+}
+
+/**
* nm_setting_802_1x_get_client_cert_scheme:
* @setting: the #NMSetting8021x
*
@@ -968,6 +1105,137 @@ nm_setting_802_1x_set_phase2_ca_cert (NMSetting8021x *self,
}
/**
+ * nm_setting_802_1x_get_phase2_subject_match:
+ * @setting: the #NMSetting8021x
+ *
+ * Returns: the #NMSetting8021x:phase2-subject-match property. This is
+ * the substring to be matched against the subject of the "phase 2"
+ * authentication server certificate, or NULL no subject verification
+ * is to be performed.
+ **/
+const char *
+nm_setting_802_1x_get_phase2_subject_match (NMSetting8021x *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), NULL);
+
+ return NM_SETTING_802_1X_GET_PRIVATE (setting)->phase2_subject_match;
+}
+
+/**
+ * nm_setting_802_1x_get_num_phase2_altsubject_matches:
+ * @setting: the #NMSetting8021x
+ *
+ * Returns the number of entries in the
+ * #NMSetting8021x:phase2-altsubject-matches property of this setting.
+ *
+ * Returns: the number of phase2-altsubject-matches entries.
+ **/
+guint32
+nm_setting_802_1x_get_num_phase2_altsubject_matches (NMSetting8021x *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), 0);
+
+ return g_slist_length (NM_SETTING_802_1X_GET_PRIVATE (setting)->phase2_altsubject_matches);
+}
+
+/**
+ * nm_setting_802_1x_get_phase2_altsubject_match:
+ * @setting: the #NMSettingConnection
+ * @i: the zero-based index of the array of "phase 2" altSubjectName matches
+ *
+ * Returns the "phase 2" altSubjectName match at index @i.
+ *
+ * Returns: the "phase 2" altSubjectName match at index @i
+ **/
+const char *
+nm_setting_802_1x_get_phase2_altsubject_match (NMSetting8021x *setting, guint32 i)
+{
+ NMSetting8021xPrivate *priv;
+
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), NULL);
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ g_return_val_if_fail (i <= g_slist_length (priv->phase2_altsubject_matches), NULL);
+
+ return (const char *) g_slist_nth_data (priv->phase2_altsubject_matches, i);
+}
+
+/**
+ * nm_setting_802_1x_add_phase2_altsubject_match:
+ * @setting: the #NMSetting8021x
+ * @phase2_altsubject_match: the "phase 2" altSubjectName to allow for this
+ * connection
+ *
+ * Adds an allowed alternate subject name match for "phase 2". Until
+ * at least one match is added, the altSubjectName of the "phase 2"
+ * remote authentication server is not verified.
+ *
+ * Returns: TRUE if the "phase 2" alternative subject name match was
+ * successfully added, FALSE if it was already allowed.
+ **/
+gboolean
+nm_setting_802_1x_add_phase2_altsubject_match (NMSetting8021x *setting,
+ const char *phase2_altsubject_match)
+{
+ NMSetting8021xPrivate *priv;
+ GSList *iter;
+
+ g_return_val_if_fail (NM_IS_SETTING_802_1X (setting), FALSE);
+ g_return_val_if_fail (phase2_altsubject_match != NULL, FALSE);
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ for (iter = priv->phase2_altsubject_matches; iter; iter = g_slist_next (iter)) {
+ if (!strcmp (phase2_altsubject_match, (char *) iter->data))
+ return FALSE;
+ }
+
+ priv->phase2_altsubject_matches = g_slist_append (priv->altsubject_matches,
+ g_strdup (phase2_altsubject_match));
+ return TRUE;
+}
+
+/**
+ * nm_setting_802_1x_remove_phase2_altsubject_match:
+ * @setting: the #NMSetting8021x
+ * @i: the index of the "phase 2" altSubjectName match to remove
+ *
+ * Removes the allowed "phase 2" altSubjectName at the specified index.
+ **/
+void
+nm_setting_802_1x_remove_phase2_altsubject_match (NMSetting8021x *setting, guint32 i)
+{
+ NMSetting8021xPrivate *priv;
+ GSList *elt;
+
+ g_return_if_fail (NM_IS_SETTING_802_1X (setting));
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ elt = g_slist_nth (priv->phase2_altsubject_matches, i);
+ g_return_if_fail (elt != NULL);
+
+ g_free (elt->data);
+ priv->phase2_altsubject_matches = g_slist_delete_link (priv->phase2_altsubject_matches, elt);
+}
+
+/**
+ * nm_setting_802_1x_clear_phase2_altsubject_matches:
+ * @setting: the #NMSetting8021x
+ *
+ * Clears all "phase 2" altSubjectName matches.
+ **/
+void
+nm_setting_802_1x_clear_phase2_altsubject_matches (NMSetting8021x *setting)
+{
+ NMSetting8021xPrivate *priv;
+
+ g_return_if_fail (NM_IS_SETTING_802_1X (setting));
+
+ priv = NM_SETTING_802_1X_GET_PRIVATE (setting);
+ nm_utils_slist_free (priv->phase2_altsubject_matches, g_free);
+ priv->phase2_altsubject_matches = NULL;
+}
+
+/**
* nm_setting_802_1x_get_phase2_client_cert_scheme:
* @setting: the #NMSetting8021x
*
@@ -1396,8 +1664,7 @@ nm_setting_802_1x_set_private_key (NMSetting8021x *self,
* @setting: the #NMSetting8021x
*
* Returns: the private key password used to decrypt the private key if
- * previously set with nm_setting_802_1x_set_private_key_from_file(),
- * nm_setting_802_1x_set_private_key_path(), or the
+ * previously set with nm_setting_802_1x_set_private_key(), or the
* #NMSetting8021x:private-key-password property.
**/
const char *
@@ -1470,8 +1737,7 @@ nm_setting_802_1x_get_private_key_format (NMSetting8021x *setting)
* @setting: the #NMSetting8021x
*
* Returns: the private key password used to decrypt the private key if
- * previously set with nm_setting_802_1x_set_phase2_private_key_from_file(),
- * nm_setting_802_1x_set_phase2_private_key_path(), or the
+ * previously set with nm_setting_802_1x_set_phase2_private_key() or the
* #NMSetting8021x:phase2-private-key-password property.
**/
const char *
@@ -2267,15 +2533,19 @@ finalize (GObject *object)
g_free (priv->identity);
g_free (priv->anonymous_identity);
g_free (priv->ca_path);
+ g_free (priv->subject_match);
g_free (priv->phase1_peapver);
g_free (priv->phase1_peaplabel);
g_free (priv->phase1_fast_provisioning);
g_free (priv->phase2_auth);
g_free (priv->phase2_autheap);
g_free (priv->phase2_ca_path);
+ g_free (priv->phase2_subject_match);
g_free (priv->password);
nm_utils_slist_free (priv->eap, g_free);
+ nm_utils_slist_free (priv->altsubject_matches, g_free);
+ nm_utils_slist_free (priv->phase2_altsubject_matches, g_free);
if (priv->ca_cert)
g_byte_array_free (priv->ca_cert, TRUE);
@@ -2350,6 +2620,14 @@ set_property (GObject *object, guint prop_id,
g_free (priv->ca_path);
priv->ca_path = g_value_dup_string (value);
break;
+ case PROP_SUBJECT_MATCH:
+ g_free (priv->subject_match);
+ priv->subject_match = g_value_dup_string (value);
+ break;
+ case PROP_ALTSUBJECT_MATCHES:
+ nm_utils_slist_free (priv->altsubject_matches, g_free);
+ priv->altsubject_matches = g_value_dup_boxed (value);
+ break;
case PROP_CLIENT_CERT:
if (priv->client_cert) {
g_byte_array_free (priv->client_cert, TRUE);
@@ -2398,6 +2676,14 @@ set_property (GObject *object, guint prop_id,
g_free (priv->phase2_ca_path);
priv->phase2_ca_path = g_value_dup_string (value);
break;
+ case PROP_PHASE2_SUBJECT_MATCH:
+ g_free (priv->phase2_subject_match);
+ priv->phase2_subject_match = g_value_dup_string (value);
+ break;
+ case PROP_PHASE2_ALTSUBJECT_MATCHES:
+ nm_utils_slist_free (priv->phase2_altsubject_matches, g_free);
+ priv->phase2_altsubject_matches = g_value_dup_boxed (value);
+ break;
case PROP_PHASE2_CLIENT_CERT:
if (priv->phase2_client_cert) {
g_byte_array_free (priv->phase2_client_cert, TRUE);
@@ -2487,6 +2773,12 @@ get_property (GObject *object, guint prop_id,
case PROP_CA_PATH:
g_value_set_string (value, priv->ca_path);
break;
+ case PROP_SUBJECT_MATCH:
+ g_value_set_string (value, priv->subject_match);
+ break;
+ case PROP_ALTSUBJECT_MATCHES:
+ g_value_set_boxed (value, priv->altsubject_matches);
+ break;
case PROP_CLIENT_CERT:
g_value_set_boxed (value, priv->client_cert);
break;
@@ -2511,6 +2803,12 @@ get_property (GObject *object, guint prop_id,
case PROP_PHASE2_CA_PATH:
g_value_set_string (value, priv->phase2_ca_path);
break;
+ case PROP_PHASE2_SUBJECT_MATCH:
+ g_value_set_string (value, priv->phase2_subject_match);
+ break;
+ case PROP_PHASE2_ALTSUBJECT_MATCHES:
+ g_value_set_boxed (value, priv->phase2_altsubject_matches);
+ break;
case PROP_PHASE2_CLIENT_CERT:
g_value_set_boxed (value, priv->phase2_client_cert);
break;
@@ -2669,6 +2967,47 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
/**
+ * NMSetting8021x:subject-match:
+ *
+ * Substring to be matched against the subject of the certificate
+ * presented by the authentication server. When unset, no
+ * verification of the authentication server certificate's subject
+ * is performed.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_SUBJECT_MATCH,
+ g_param_spec_string (NM_SETTING_802_1X_SUBJECT_MATCH,
+ "Subject match",
+ "Substring to be matched against the subject of "
+ "the certificate presented by the authentication "
+ "server. When unset, no verification of the "
+ "authentication server certificate's subject is "
+ "performed.",
+ NULL,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+
+ /**
+ * NMSetting8021x:altsubject-matches:
+ *
+ * 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.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_ALTSUBJECT_MATCHES,
+ _nm_param_spec_specialized (NM_SETTING_802_1X_ALTSUBJECT_MATCHES,
+ "altSubjectName matches",
+ "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.",
+ DBUS_TYPE_G_LIST_OF_STRING,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+
+ /**
* NMSetting8021x:client-cert:
*
* Contains the client certificate if used by the EAP method specified in
@@ -2861,6 +3200,51 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
/**
+ * NMSetting8021x:phase2-subject-match:
+ *
+ * Substring to be matched against the subject of the certificate
+ * presented by the authentication server during the inner "phase
+ * 2" authentication. When unset, no verification of the
+ * authentication server certificate's subject is performed.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_PHASE2_SUBJECT_MATCH,
+ g_param_spec_string (NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH,
+ "Phase2 subject match",
+ "Substring to be matched against the subject of "
+ "the certificate presented by the authentication "
+ "server during the inner 'phase2' "
+ "authentication. When unset, no verification of "
+ "the authentication server certificate's subject "
+ "is performed.",
+ NULL,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+
+ /**
+ * NMSetting8021x:phase2-altsubject-matches:
+ *
+ * List of strings to be matched against the altSubjectName of the
+ * certificate presented by the authentication server during the
+ * inner "phase 2" authentication. If the list is empty, no
+ * verification of the server certificate's altSubjectName is
+ * performed.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_PHASE2_ALTSUBJECT_MATCHES,
+ _nm_param_spec_specialized (NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES,
+ "altSubjectName matches",
+ "List of strings to be matched against "
+ "List of strings to be matched against "
+ "the altSubjectName of the certificate "
+ "presented by the authentication server "
+ "during the inner 'phase 2' "
+ "authentication. If the list is empty, no "
+ "verification of the server certificate's "
+ "altSubjectName is performed.",
+ DBUS_TYPE_G_LIST_OF_STRING,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+
+ /**
* NMSetting8021x:phase2-client-cert:
*
* Contains the client certificate if used by the EAP method specified in
@@ -2874,7 +3258,7 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
"Phase2 client certificate",
"Contains the 'phase 2' client certificate if "
"used by the EAP method specified in the "
- "'phase2-eap' or 'phase2-autheap' properties. "
+ "'phase2-auth' or 'phase2-autheap' properties. "
"Certificate data is specified using a 'scheme'; "
"two are currently supported: blob and path. "
"When using the blob scheme (which is backwards "
@@ -2998,8 +3382,8 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
*
* Private key data used by "phase 2" inner authentication methods.
*
- * Contains the "phase 2" inner private key if the #NMSetting8021x:auth or
- * #NMSetting8021x:phase2-autheap property is set to 'tls'. Setting this
+ * Contains the "phase 2" inner private key if the #NMSetting8021x:phase2-auth
+ * or #NMSetting8021x:phase2-autheap property is set to 'tls'. Setting this
* property directly is discouraged; use the
* nm_setting_802_1x_set_phase2_private_key() function instead.
**/
@@ -3008,7 +3392,7 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
_nm_param_spec_specialized (NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
"Phase2 private key",
"Contains the 'phase 2' inner private key when "
- "the 'phase2-eap' or 'phase2-autheap' property "
+ "the 'phase2-auth' or 'phase2-autheap' property "
"is set to 'tls'. Key data is specified using a "
"'scheme'; two are currently supported: blob and "
"path. When using the blob scheme and private "
@@ -3077,9 +3461,8 @@ nm_setting_802_1x_class_init (NMSetting8021xClass *setting_class)
* #NMSetting8021x:phase2-ca-path properties using the system CA directory
* specified at configure time with the --system-ca-path switch. The
* certificates in this directory are added to the verification chain in
- * addition to any certificates specified by the #NMSetting8021x:ca-cert,
- * #NMSetting8021x:ca-cert-path, #NMSetting8021x:phase2-ca-cert and
- * #NMSetting8021x:phase2-ca-cert-path properties.
+ * addition to any certificates specified by the #NMSetting8021x:ca-cert
+ * and #NMSetting8021x:phase2-ca-cert properties.
**/
g_object_class_install_property
(object_class, PROP_SYSTEM_CA_CERTS,
diff --git a/libnm-util/nm-setting-8021x.h b/libnm-util/nm-setting-8021x.h
index f3e61e55e..a6016aea2 100644
--- a/libnm-util/nm-setting-8021x.h
+++ b/libnm-util/nm-setting-8021x.h
@@ -78,8 +78,14 @@ typedef enum {
#define NM_SETTING_802_1X_SETTING_NAME "802-1x"
-typedef enum
-{
+/**
+ * NMSetting8021xError:
+ * @NM_SETTING_802_1X_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_802_1X_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_802_1X_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ */
+typedef enum {
NM_SETTING_802_1X_ERROR_UNKNOWN = 0,
NM_SETTING_802_1X_ERROR_INVALID_PROPERTY,
NM_SETTING_802_1X_ERROR_MISSING_PROPERTY
@@ -97,6 +103,8 @@ GQuark nm_setting_802_1x_error_quark (void);
#define NM_SETTING_802_1X_ANONYMOUS_IDENTITY "anonymous-identity"
#define NM_SETTING_802_1X_CA_CERT "ca-cert"
#define NM_SETTING_802_1X_CA_PATH "ca-path"
+#define NM_SETTING_802_1X_SUBJECT_MATCH "subject-match"
+#define NM_SETTING_802_1X_ALTSUBJECT_MATCHES "altsubject-matches"
#define NM_SETTING_802_1X_CLIENT_CERT "client-cert"
#define NM_SETTING_802_1X_PHASE1_PEAPVER "phase1-peapver"
#define NM_SETTING_802_1X_PHASE1_PEAPLABEL "phase1-peaplabel"
@@ -105,6 +113,8 @@ GQuark nm_setting_802_1x_error_quark (void);
#define NM_SETTING_802_1X_PHASE2_AUTHEAP "phase2-autheap"
#define NM_SETTING_802_1X_PHASE2_CA_CERT "phase2-ca-cert"
#define NM_SETTING_802_1X_PHASE2_CA_PATH "phase2-ca-path"
+#define NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH "phase2-subject-match"
+#define NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES "phase2-altsubject-matches"
#define NM_SETTING_802_1X_PHASE2_CLIENT_CERT "phase2-client-cert"
#define NM_SETTING_802_1X_PASSWORD "password"
#define NM_SETTING_802_1X_PASSWORD_FLAGS "password-flags"
@@ -179,6 +189,17 @@ gboolean nm_setting_802_1x_set_ca_cert (NMSetting8
NMSetting8021xCKFormat *out_format,
GError **error);
+const char * nm_setting_802_1x_get_subject_match (NMSetting8021x *setting);
+
+guint32 nm_setting_802_1x_get_num_altsubject_matches (NMSetting8021x *setting);
+const char * nm_setting_802_1x_get_altsubject_match (NMSetting8021x *setting,
+ guint32 i);
+gboolean nm_setting_802_1x_add_altsubject_match (NMSetting8021x *setting,
+ const char *altsubject_match);
+void nm_setting_802_1x_remove_altsubject_match (NMSetting8021x *setting,
+ guint32 i);
+void nm_setting_802_1x_clear_altsubject_matches (NMSetting8021x *setting);
+
NMSetting8021xCKScheme nm_setting_802_1x_get_client_cert_scheme (NMSetting8021x *setting);
const GByteArray * nm_setting_802_1x_get_client_cert_blob (NMSetting8021x *setting);
const char * nm_setting_802_1x_get_client_cert_path (NMSetting8021x *setting);
@@ -207,6 +228,17 @@ gboolean nm_setting_802_1x_set_phase2_ca_cert (NMSetting8
NMSetting8021xCKFormat *out_format,
GError **error);
+const char * nm_setting_802_1x_get_phase2_subject_match (NMSetting8021x *setting);
+
+guint32 nm_setting_802_1x_get_num_phase2_altsubject_matches (NMSetting8021x *setting);
+const char * nm_setting_802_1x_get_phase2_altsubject_match (NMSetting8021x *setting,
+ guint32 i);
+gboolean nm_setting_802_1x_add_phase2_altsubject_match (NMSetting8021x *setting,
+ const char *phase2_altsubject_match);
+void nm_setting_802_1x_remove_phase2_altsubject_match (NMSetting8021x *setting,
+ guint32 i);
+void nm_setting_802_1x_clear_phase2_altsubject_matches (NMSetting8021x *setting);
+
NMSetting8021xCKScheme nm_setting_802_1x_get_phase2_client_cert_scheme (NMSetting8021x *setting);
const GByteArray * nm_setting_802_1x_get_phase2_client_cert_blob (NMSetting8021x *setting);
const char * nm_setting_802_1x_get_phase2_client_cert_path (NMSetting8021x *setting);
diff --git a/libnm-util/nm-setting-bluetooth.c b/libnm-util/nm-setting-bluetooth.c
index e3cebe2ee..1b1178b24 100644
--- a/libnm-util/nm-setting-bluetooth.c
+++ b/libnm-util/nm-setting-bluetooth.c
@@ -34,6 +34,24 @@
#include "nm-setting-cdma.h"
#include "nm-setting-gsm.h"
+/**
+ * SECTION:nm-setting-bluetooth
+ * @short_description: Describes Bluetooth connection properties
+ * @include: nm-setting-bluetooth.h
+ *
+ * The #NMSettingBluetooth object is a #NMSetting subclass that describes
+ * properties necessary for connection to devices that provide network
+ * connections via the Bluetooth Dial-Up Networking (DUN) and Network Access
+ * Point (NAP) profiles.
+ **/
+
+/**
+ * nm_setting_bluetooth_error_quark:
+ *
+ * Registers an error quark for #NMSettingBluetooth if necessary.
+ *
+ * Returns: the error quark used for #NMSettingBluetooth errors.
+ **/
GQuark
nm_setting_bluetooth_error_quark (void)
{
@@ -83,11 +101,27 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_bluetooth_new:
+ *
+ * Creates a new #NMSettingBluetooth object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingBluetooth object
+ **/
NMSetting *nm_setting_bluetooth_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_BLUETOOTH, NULL);
}
+/**
+ * nm_setting_bluetooth_get_connection_type:
+ * @setting: the #NMSettingBluetooth
+ *
+ * Returns the connection method for communicating with the remote device (i.e.
+ * either DUN to a DUN-capable device or PANU to a NAP-capable device).
+ *
+ * Returns: the type, either %NM_SETTING_BLUETOOTH_PANU or %NM_SETTING_BLUETOOTH_DUN
+ **/
const char *
nm_setting_bluetooth_get_connection_type (NMSettingBluetooth *setting)
{
@@ -96,6 +130,15 @@ nm_setting_bluetooth_get_connection_type (NMSettingBluetooth *setting)
return NM_SETTING_BLUETOOTH_GET_PRIVATE (setting)->type;
}
+/**
+ * nm_setting_bluetooth_get_bdaddr:
+ * @setting: the #NMSettingBluetooth
+ *
+ * Gets the Bluetooth address of the remote device which this setting
+ * describes a connection to.
+ *
+ * Returns: the Bluetooth address
+ **/
const GByteArray *
nm_setting_bluetooth_get_bdaddr (NMSettingBluetooth *setting)
{
@@ -266,8 +309,8 @@ nm_setting_bluetooth_class_init (NMSettingBluetoothClass *setting_class)
/**
* NMSettingBluetooth:type:
*
- * Either 'dun' for Dial-Up Networking connections (not yet supported) or
- * 'panu' for Personal Area Networking connections.
+ * Either 'dun' for Dial-Up Networking connections or 'panu' for Personal
+ * Area Networking connections to devices supporting the NAP profile.
**/
g_object_class_install_property
(object_class, PROP_TYPE,
diff --git a/libnm-util/nm-setting-bluetooth.h b/libnm-util/nm-setting-bluetooth.h
index e41183bc2..a17a72bf4 100644
--- a/libnm-util/nm-setting-bluetooth.h
+++ b/libnm-util/nm-setting-bluetooth.h
@@ -40,8 +40,17 @@ G_BEGIN_DECLS
#define NM_SETTING_BLUETOOTH_SETTING_NAME "bluetooth"
-typedef enum
-{
+/**
+ * NMSettingBluetoothError:
+ * @NM_SETTING_BLUETOOTH_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_BLUETOOTH_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_BLUETOOTH_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_BLUETOOTH_ERROR_TYPE_SETTING_NOT_FOUND: the connection
+ * did not contain a required type setting, ie for DUN connections the connection
+ * must also contain an #NMSettingGsm or #NMSettingCdma as appropriate
+ */
+typedef enum {
NM_SETTING_BLUETOOTH_ERROR_UNKNOWN = 0,
NM_SETTING_BLUETOOTH_ERROR_INVALID_PROPERTY,
NM_SETTING_BLUETOOTH_ERROR_MISSING_PROPERTY,
@@ -57,7 +66,20 @@ GQuark nm_setting_bluetooth_error_quark (void);
#define NM_SETTING_BLUETOOTH_BDADDR "bdaddr"
#define NM_SETTING_BLUETOOTH_TYPE "type"
+/**
+ * NM_SETTING_BLUETOOTH_TYPE_DUN:
+ *
+ * Connection type describing a connection to devices that support the Bluetooth
+ * DUN profile.
+ */
#define NM_SETTING_BLUETOOTH_TYPE_DUN "dun"
+
+/**
+ * NM_SETTING_BLUETOOTH_TYPE_PANU:
+ *
+ * Connection type describing a connection to devices that support the Bluetooth
+ * NAP (Network Access Point) protocol, which accepts connections via PANU.
+ */
#define NM_SETTING_BLUETOOTH_TYPE_PANU "panu"
typedef struct {
diff --git a/libnm-util/nm-setting-cdma.h b/libnm-util/nm-setting-cdma.h
index 8abfce4ab..d0a5de4cb 100644
--- a/libnm-util/nm-setting-cdma.h
+++ b/libnm-util/nm-setting-cdma.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_CDMA_SETTING_NAME "cdma"
-typedef enum
-{
+/**
+ * NMSettingCdmaError:
+ * @NM_SETTING_CDMA_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_CDMA_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_CDMA_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING: the required #NMSettingSerial
+ * is missing in the connection
+ */
+typedef enum {
NM_SETTING_CDMA_ERROR_UNKNOWN = 0,
NM_SETTING_CDMA_ERROR_INVALID_PROPERTY,
NM_SETTING_CDMA_ERROR_MISSING_PROPERTY,
diff --git a/libnm-util/nm-setting-connection.c b/libnm-util/nm-setting-connection.c
index b3bf44430..e9030b107 100644
--- a/libnm-util/nm-setting-connection.c
+++ b/libnm-util/nm-setting-connection.c
@@ -562,6 +562,21 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
return TRUE;
}
+static gboolean
+compare_property (NMSetting *setting,
+ NMSetting *other,
+ const GParamSpec *prop_spec,
+ NMSettingCompareFlags flags)
+{
+ /* Handle ignore ID */
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_ID)
+ && g_strcmp0 (prop_spec->name, NM_SETTING_CONNECTION_ID) == 0)
+ return TRUE;
+
+ /* Otherwise chain up to parent to handle generic compare */
+ return NM_SETTING_CLASS (nm_setting_connection_parent_class)->compare_property (setting, other, prop_spec, flags);
+}
+
static void
nm_setting_connection_init (NMSettingConnection *setting)
{
@@ -693,6 +708,7 @@ nm_setting_connection_class_init (NMSettingConnectionClass *setting_class)
object_class->get_property = get_property;
object_class->finalize = finalize;
parent_class->verify = verify;
+ parent_class->compare_property = compare_property;
/* Properties */
diff --git a/libnm-util/nm-setting-gsm.c b/libnm-util/nm-setting-gsm.c
index 0ece448b9..7033541bd 100644
--- a/libnm-util/nm-setting-gsm.c
+++ b/libnm-util/nm-setting-gsm.c
@@ -29,6 +29,23 @@
#include "nm-utils.h"
#include "nm-setting-private.h"
+/**
+ * SECTION:nm-setting-gsm
+ * @short_description: Describes GSM/3GPP-based mobile broadband properties
+ * @include: nm-setting-gsm.h
+ *
+ * The #NMSettingGsm object is a #NMSetting subclass that describes
+ * properties that allow connections to 3GPP-based mobile broadband
+ * networks, including those using GPRS/EDGE and UMTS/HSPA technology.
+ */
+
+/**
+ * nm_setting_gsm_error_quark:
+ *
+ * Registers an error quark for #NMSettingGsm if necessary.
+ *
+ * Returns: the error quark used for #NMSettingGsm errors.
+ **/
GQuark
nm_setting_gsm_error_quark (void)
{
@@ -103,12 +120,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_gsm_new:
+ *
+ * Creates a new #NMSettingGsm object with default values.
+ *
+ * Returns: the new empty #NMSettingGsm object
+ **/
NMSetting *
nm_setting_gsm_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_GSM, NULL);
}
+/**
+ * nm_setting_gsm_get_number:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:number property of the setting
+ **/
const char *
nm_setting_gsm_get_number (NMSettingGsm *setting)
{
@@ -117,6 +147,12 @@ nm_setting_gsm_get_number (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->number;
}
+/**
+ * nm_setting_gsm_get_username:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:username property of the setting
+ **/
const char *
nm_setting_gsm_get_username (NMSettingGsm *setting)
{
@@ -125,6 +161,12 @@ nm_setting_gsm_get_username (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->username;
}
+/**
+ * nm_setting_gsm_get_password:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:password property of the setting
+ **/
const char *
nm_setting_gsm_get_password (NMSettingGsm *setting)
{
@@ -147,6 +189,12 @@ nm_setting_gsm_get_password_flags (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->password_flags;
}
+/**
+ * nm_setting_gsm_get_apn:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:apn property of the setting
+ **/
const char *
nm_setting_gsm_get_apn (NMSettingGsm *setting)
{
@@ -155,6 +203,12 @@ nm_setting_gsm_get_apn (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->apn;
}
+/**
+ * nm_setting_gsm_get_network_id:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:network-id property of the setting
+ **/
const char *
nm_setting_gsm_get_network_id (NMSettingGsm *setting)
{
@@ -163,6 +217,12 @@ nm_setting_gsm_get_network_id (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->network_id;
}
+/**
+ * nm_setting_gsm_get_network_type:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:network-type property of the setting
+ **/
int
nm_setting_gsm_get_network_type (NMSettingGsm *setting)
{
@@ -171,6 +231,12 @@ nm_setting_gsm_get_network_type (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->network_type;
}
+/**
+ * nm_setting_gsm_get_allowed_bands:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:allowed-bands property of the setting
+ **/
guint32
nm_setting_gsm_get_allowed_bands (NMSettingGsm *setting)
{
@@ -179,6 +245,12 @@ nm_setting_gsm_get_allowed_bands (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->allowed_bands;
}
+/**
+ * nm_setting_gsm_get_pin:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:pin property of the setting
+ **/
const char *
nm_setting_gsm_get_pin (NMSettingGsm *setting)
{
@@ -201,6 +273,12 @@ nm_setting_gsm_get_pin_flags (NMSettingGsm *setting)
return NM_SETTING_GSM_GET_PRIVATE (setting)->pin_flags;
}
+/**
+ * nm_setting_gsm_get_home_only:
+ * @setting: the #NMSettingGsm
+ *
+ * Returns: the #NMSettingGsm:home-only property of the setting
+ **/
gboolean
nm_setting_gsm_get_home_only (NMSettingGsm *setting)
{
@@ -481,19 +559,20 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
* NMSettingGsm:number:
*
* Number to dial when establishing a PPP data session with the GSM-based
- * mobile broadband network. In most cases, leave the number blank and a
- * number selecting the APN specified in the 'apn' property will be used
- * automatically when required.
+ * mobile broadband network. Many modems do not require PPP for connections
+ * to the mobile network and thus this property should be left blank, which
+ * allows NetworkManager to select the appropriate settings automatically.
**/
g_object_class_install_property
(object_class, PROP_NUMBER,
g_param_spec_string (NM_SETTING_GSM_NUMBER,
"Number",
- "Number to dial when establishing a PPP data session "
- "with the GSM-based mobile broadband network. In most "
- "cases, leave the number blank and a number selecting "
- "the APN specified in the 'apn' property will be used "
- "automatically when required.",
+ "Number to dial when establishing a PPP data session "
+ "with the GSM-based mobile broadband network. Many "
+ "modems do not require PPP for connections to the "
+ "mobile network and thus this property should be left "
+ "blank, which allows NetworkManager to select the "
+ "appropriate settings automatically.",
NULL,
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
@@ -599,9 +678,9 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
* NMSettingGsm:network-type:
*
* Network preference to force the device to only use specific network
- * technologies. The permitted values are: -1: any, 0: 3G only,
- * 1: GPRS/EDGE only, 2: prefer 3G, and 3: prefer 2G. Note that not all
- * devices allow network preference control.
+ * technologies. Permitted values are those specified by
+ * #NMSettingGsmNetworkType. Note that not all devices allow network
+ * preference control.
**/
g_object_class_install_property
(object_class, PROP_NETWORK_TYPE,
@@ -621,7 +700,8 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
* NMSettingGsm:allowed-bands:
*
* Bitfield of allowed frequency bands. Note that not all devices allow
- * frequency band control.
+ * frequency band control. Permitted values are those specified by
+ * #NMSettingGsmNetworkBand.
**/
g_object_class_install_property
(object_class, PROP_ALLOWED_BANDS,
@@ -643,7 +723,8 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
|| NM_SETTING_GSM_BAND_U850
|| NM_SETTING_GSM_BAND_U900
|| NM_SETTING_GSM_BAND_U17IX
- || NM_SETTING_GSM_BAND_U1900,
+ || NM_SETTING_GSM_BAND_U1900
+ || NM_SETTING_GSM_BAND_U2600,
NM_SETTING_GSM_BAND_ANY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
@@ -667,7 +748,7 @@ nm_setting_gsm_class_init (NMSettingGsmClass *setting_class)
/**
* NMSettingGsm:pin-flags:
*
- * Flags indicating how to handle #NMSettingGsm:pin:.
+ * Flags indicating how to handle #NMSettingGsm:pin.
**/
g_object_class_install_property (object_class, PROP_PIN_FLAGS,
g_param_spec_uint (NM_SETTING_GSM_PIN_FLAGS,
diff --git a/libnm-util/nm-setting-gsm.h b/libnm-util/nm-setting-gsm.h
index 855787c2d..6459a4abf 100644
--- a/libnm-util/nm-setting-gsm.h
+++ b/libnm-util/nm-setting-gsm.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_GSM_SETTING_NAME "gsm"
-typedef enum
-{
+/**
+ * NMSettingGsmError:
+ * @NM_SETTING_GSM_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_GSM_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_GSM_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING: the required #NMSettingSerial
+ * is missing in the connection
+ */
+typedef enum {
NM_SETTING_GSM_ERROR_UNKNOWN = 0,
NM_SETTING_GSM_ERROR_INVALID_PROPERTY,
NM_SETTING_GSM_ERROR_MISSING_PROPERTY,
@@ -65,6 +73,21 @@ GQuark nm_setting_gsm_error_quark (void);
#define NM_SETTING_GSM_PIN_FLAGS "pin-flags"
#define NM_SETTING_GSM_HOME_ONLY "home-only"
+/**
+ * NMSettingGsmNetworkType:
+ * @NM_SETTING_GSM_NETWORK_TYPE_ANY: any access technology may be used
+ * @NM_SETTING_GSM_NETWORK_TYPE_UMTS_HSPA: only 3G-type (UMTS and HSPA)
+ * technologies may be used
+ * @NM_SETTING_GSM_NETWORK_TYPE_GPRS_EDGE: only 2G-type (GPRS and EDGE)
+ * technologies may be used
+ * @NM_SETTING_GSM_NETWORK_TYPE_PREFER_UMTS_HSPA: 3G-type technologies are
+ * preferred but 2G-type technologies may be used as a fallback
+ * @NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE: 2G-type technologies are
+ * preferred but 3G-type technologies may be used as a fallback
+ *
+ * #NMSettingGsmNetworkType values indicate the allowed access technologies
+ * the device may use when connecting to this network.
+ */
typedef enum {
NM_SETTING_GSM_NETWORK_TYPE_ANY = -1,
NM_SETTING_GSM_NETWORK_TYPE_UMTS_HSPA = 0,
@@ -73,6 +96,27 @@ typedef enum {
NM_SETTING_GSM_NETWORK_TYPE_PREFER_GPRS_EDGE = 3
} NMSettingGsmNetworkType;
+/**
+ * NMSettingGsmNetworkBand:
+ * @NM_SETTING_GSM_BAND_UNKNOWN: unknown or no band specified
+ * @NM_SETTING_GSM_BAND_ANY: any band is allowed
+ * @NM_SETTING_GSM_BAND_EGSM: 900 MHz original GSM band
+ * @NM_SETTING_GSM_BAND_DCS: 1800 MHz DCS band
+ * @NM_SETTING_GSM_BAND_PCS: US 1900 MHz PCS band
+ * @NM_SETTING_GSM_BAND_G850: US 850 MHz Cellular band
+ * @NM_SETTING_GSM_BAND_U2100: WCDMA 3GPP UMTS 2100 MHz (Class I)
+ * @NM_SETTING_GSM_BAND_U1800: WCDMA 3GPP UMTS 1800 MHz (Class III)
+ * @NM_SETTING_GSM_BAND_U17IV: WCDMA 3GPP AWS 1700/2100 MHz (Class IV)
+ * @NM_SETTING_GSM_BAND_U800: WCDMA 3GPP UMTS 800 MHz (Class VI)
+ * @NM_SETTING_GSM_BAND_U850: WCDMA 3GPP UMTS 850 MHz (Class V)
+ * @NM_SETTING_GSM_BAND_U900: WCDMA 3GPP UMTS 900 MHz (Class VIII)
+ * @NM_SETTING_GSM_BAND_U17IX: WCDMA 3GPP UMTS 1700 MHz (Class IX)
+ * @NM_SETTING_GSM_BAND_U1900: WCDMA 3GPP UMTS 1900 MHz (Class II)
+ * @NM_SETTING_GSM_BAND_U2600: WCDMA 3GPP UMTS 2600 MHz (Class VII, internal)
+ *
+ * #NMSettingGsmNetworkBand values indicate the allowed frequency bands
+ * the device may use when connecting to this network.
+ */
typedef enum {
NM_SETTING_GSM_BAND_UNKNOWN = 0x00000000,
NM_SETTING_GSM_BAND_ANY = 0x00000001,
@@ -88,6 +132,7 @@ typedef enum {
NM_SETTING_GSM_BAND_U900 = 0x00000400, /* WCDMA 3GPP UMTS 900 MHz (Class VIII) */
NM_SETTING_GSM_BAND_U17IX = 0x00000800, /* WCDMA 3GPP UMTS 1700 MHz (Class IX) */
NM_SETTING_GSM_BAND_U1900 = 0x00001000, /* WCDMA 3GPP UMTS 1900 MHz (Class II) */
+ NM_SETTING_GSM_BAND_U2600 = 0x00002000, /* WCDMA 3GPP UMTS 2600 MHz (Class VII, internal) */
} NMSettingGsmNetworkBand;
typedef struct {
diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c
index 6961050d9..6b164ea88 100644
--- a/libnm-util/nm-setting-ip4-config.c
+++ b/libnm-util/nm-setting-ip4-config.c
@@ -31,6 +31,22 @@
#include "nm-utils.h"
#include "nm-dbus-glib-types.h"
+/**
+ * SECTION:nm-setting-ip4-config
+ * @short_description: Describes IPv4 addressing, routing, and name service properties
+ * @include: nm-setting-ip4-config.h
+ *
+ * The #NMSettingIP4Config object is a #NMSetting subclass that describes
+ * properties related to IPv4 addressing, routing, and Domain Name Service
+ **/
+
+/**
+ * nm_setting_ip4_config_error_quark:
+ *
+ * Registers an error quark for #NMSettingIP4Config if necessary.
+ *
+ * Returns: the error quark used for #NMSettingIP4Config errors.
+ **/
GQuark
nm_setting_ip4_config_error_quark (void)
{
@@ -108,12 +124,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_ip4_config_new:
+ *
+ * Creates a new #NMSettingIP4Config object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingIP4Config object
+ **/
NMSetting *
nm_setting_ip4_config_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_IP4_CONFIG, NULL);
}
+/**
+ * nm_setting_ip4_config_get_method:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns: the #NMSettingIP4Config:method property of the setting
+ **/
const char *
nm_setting_ip4_config_get_method (NMSettingIP4Config *setting)
{
@@ -122,6 +151,12 @@ nm_setting_ip4_config_get_method (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->method;
}
+/**
+ * nm_setting_ip4_config_get_num_dns:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns: the number of configured DNS servers
+ **/
guint32
nm_setting_ip4_config_get_num_dns (NMSettingIP4Config *setting)
{
@@ -130,6 +165,14 @@ nm_setting_ip4_config_get_num_dns (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dns->len;
}
+/**
+ * nm_setting_ip4_config_get_dns:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the DNS server to return
+ *
+ * Returns: the IPv4 address (network byte order) of the DNS server at index
+ * @i
+ **/
guint32
nm_setting_ip4_config_get_dns (NMSettingIP4Config *setting, guint32 i)
{
@@ -143,6 +186,16 @@ nm_setting_ip4_config_get_dns (NMSettingIP4Config *setting, guint32 i)
return g_array_index (priv->dns, guint32, i);
}
+/**
+ * nm_setting_ip4_config_add_dns:
+ * @setting: the #NMSettingIP4Config
+ * @dns: the IPv4 address (network byte order) of the DNS server to add
+ *
+ * Adds a new DNS server to the setting.
+ *
+ * Returns: %TRUE if the DNS server was added; %FALSE if the server was already
+ * known
+ **/
gboolean
nm_setting_ip4_config_add_dns (NMSettingIP4Config *setting, guint32 dns)
{
@@ -161,6 +214,13 @@ nm_setting_ip4_config_add_dns (NMSettingIP4Config *setting, guint32 dns)
return TRUE;
}
+/**
+ * nm_setting_ip4_config_remove_dns:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the DNS server to remove
+ *
+ * Removes the DNS server at index @i.
+ **/
void
nm_setting_ip4_config_remove_dns (NMSettingIP4Config *setting, guint32 i)
{
@@ -174,6 +234,12 @@ nm_setting_ip4_config_remove_dns (NMSettingIP4Config *setting, guint32 i)
g_array_remove_index (priv->dns, i);
}
+/**
+ * nm_setting_ip4_config_clear_dns:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Removes all configured DNS servers.
+ **/
void
nm_setting_ip4_config_clear_dns (NMSettingIP4Config *setting)
{
@@ -185,6 +251,12 @@ nm_setting_ip4_config_clear_dns (NMSettingIP4Config *setting)
g_array_remove_range (priv->dns, 0, priv->dns->len);
}
+/**
+ * nm_setting_ip4_config_get_num_dns_searches:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns: the number of configured DNS search domains
+ **/
guint32
nm_setting_ip4_config_get_num_dns_searches (NMSettingIP4Config *setting)
{
@@ -193,6 +265,13 @@ nm_setting_ip4_config_get_num_dns_searches (NMSettingIP4Config *setting)
return g_slist_length (NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dns_search);
}
+/**
+ * nm_setting_ip4_config_get_dns_search:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the DNS search domain to return
+ *
+ * Returns: the DNS search domain at index @i
+ **/
const char *
nm_setting_ip4_config_get_dns_search (NMSettingIP4Config *setting, guint32 i)
{
@@ -206,6 +285,16 @@ nm_setting_ip4_config_get_dns_search (NMSettingIP4Config *setting, guint32 i)
return (const char *) g_slist_nth_data (priv->dns_search, i);
}
+/**
+ * nm_setting_ip4_config_add_dns_search:
+ * @setting: the #NMSettingIP4Config
+ * @dns_search: the search domain to add
+ *
+ * Adds a new DNS search domain to the setting.
+ *
+ * Returns: %TRUE if the DNS search domain was added; %FALSE if the search
+ * domain was already known
+ **/
gboolean
nm_setting_ip4_config_add_dns_search (NMSettingIP4Config *setting,
const char *dns_search)
@@ -227,6 +316,13 @@ nm_setting_ip4_config_add_dns_search (NMSettingIP4Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip4_config_remove_dns_search:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the DNS search domain
+ *
+ * Removes the DNS search domain at index @i.
+ **/
void
nm_setting_ip4_config_remove_dns_search (NMSettingIP4Config *setting, guint32 i)
{
@@ -243,6 +339,12 @@ nm_setting_ip4_config_remove_dns_search (NMSettingIP4Config *setting, guint32 i)
priv->dns_search = g_slist_delete_link (priv->dns_search, elt);
}
+/**
+ * nm_setting_ip4_config_clear_dns_searches:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Removes all configured DNS search domains.
+ **/
void
nm_setting_ip4_config_clear_dns_searches (NMSettingIP4Config *setting)
{
@@ -252,6 +354,12 @@ nm_setting_ip4_config_clear_dns_searches (NMSettingIP4Config *setting)
NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dns_search = NULL;
}
+/**
+ * nm_setting_ip4_config_get_num_addresses:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns: the number of configured addresses
+ **/
guint32
nm_setting_ip4_config_get_num_addresses (NMSettingIP4Config *setting)
{
@@ -260,6 +368,13 @@ nm_setting_ip4_config_get_num_addresses (NMSettingIP4Config *setting)
return g_slist_length (NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->addresses);
}
+/**
+ * nm_setting_ip4_config_get_address:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the address to return
+ *
+ * Returns: the address at index @i
+ **/
NMIP4Address *
nm_setting_ip4_config_get_address (NMSettingIP4Config *setting, guint32 i)
{
@@ -273,6 +388,17 @@ nm_setting_ip4_config_get_address (NMSettingIP4Config *setting, guint32 i)
return (NMIP4Address *) g_slist_nth_data (priv->addresses, i);
}
+/**
+ * nm_setting_ip4_config_add_address:
+ * @setting: the #NMSettingIP4Config
+ * @address: the new address to add
+ *
+ * Adds a new IPv4 address and associated information to the setting. The
+ * given address is duplicated internally and is not changed by this function.
+ *
+ * Returns: %TRUE if the address was added; %FALSE if the address was already
+ * known.
+ **/
gboolean
nm_setting_ip4_config_add_address (NMSettingIP4Config *setting,
NMIP4Address *address)
@@ -297,6 +423,13 @@ nm_setting_ip4_config_add_address (NMSettingIP4Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip4_config_remove_address:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the address to remove
+ *
+ * Removes the address at index @i.
+ **/
void
nm_setting_ip4_config_remove_address (NMSettingIP4Config *setting, guint32 i)
{
@@ -313,6 +446,12 @@ nm_setting_ip4_config_remove_address (NMSettingIP4Config *setting, guint32 i)
priv->addresses = g_slist_delete_link (priv->addresses, elt);
}
+/**
+ * nm_setting_ip4_config_clear_addresses:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Removes all configured addresses.
+ **/
void
nm_setting_ip4_config_clear_addresses (NMSettingIP4Config *setting)
{
@@ -324,6 +463,12 @@ nm_setting_ip4_config_clear_addresses (NMSettingIP4Config *setting)
priv->addresses = NULL;
}
+/**
+ * nm_setting_ip4_config_get_num_routes:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns: the number of configured routes
+ **/
guint32
nm_setting_ip4_config_get_num_routes (NMSettingIP4Config *setting)
{
@@ -332,6 +477,13 @@ nm_setting_ip4_config_get_num_routes (NMSettingIP4Config *setting)
return g_slist_length (NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->routes);
}
+/**
+ * nm_setting_ip4_config_get_route:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the route to return
+ *
+ * Returns: the route at index @i
+ **/
NMIP4Route *
nm_setting_ip4_config_get_route (NMSettingIP4Config *setting, guint32 i)
{
@@ -345,6 +497,16 @@ nm_setting_ip4_config_get_route (NMSettingIP4Config *setting, guint32 i)
return (NMIP4Route *) g_slist_nth_data (priv->routes, i);
}
+/**
+ * nm_setting_ip4_config_add_route:
+ * @setting: the #NMSettingIP4Config
+ * @route: the route to add
+ *
+ * Adds a new IPv4 route and associated information to the setting. The
+ * given route is duplicated internally and is not changed by this function.
+ *
+ * Returns: %TRUE if the route was added; %FALSE if the route was already known.
+ **/
gboolean
nm_setting_ip4_config_add_route (NMSettingIP4Config *setting,
NMIP4Route *route)
@@ -369,6 +531,13 @@ nm_setting_ip4_config_add_route (NMSettingIP4Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip4_config_remove_route:
+ * @setting: the #NMSettingIP4Config
+ * @i: index number of the route
+ *
+ * Removes the route at index @i.
+ **/
void
nm_setting_ip4_config_remove_route (NMSettingIP4Config *setting, guint32 i)
{
@@ -385,6 +554,12 @@ nm_setting_ip4_config_remove_route (NMSettingIP4Config *setting, guint32 i)
priv->routes = g_slist_delete_link (priv->routes, elt);
}
+/**
+ * nm_setting_ip4_config_clear_routes:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Removes all configured routes.
+ **/
void
nm_setting_ip4_config_clear_routes (NMSettingIP4Config *setting)
{
@@ -396,6 +571,16 @@ nm_setting_ip4_config_clear_routes (NMSettingIP4Config *setting)
priv->routes = NULL;
}
+/**
+ * nm_setting_ip4_config_get_ignore_auto_routes:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:ignore-auto-routes
+ * property.
+ *
+ * Returns: %TRUE if automatically configured (ie via DHCP) routes should be
+ * ignored.
+ **/
gboolean
nm_setting_ip4_config_get_ignore_auto_routes (NMSettingIP4Config *setting)
{
@@ -404,6 +589,16 @@ nm_setting_ip4_config_get_ignore_auto_routes (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->ignore_auto_routes;
}
+/**
+ * nm_setting_ip4_config_get_ignore_auto_dns:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:ignore-auto-dns
+ * property.
+ *
+ * Returns: %TRUE if automatically configured (ie via DHCP) DNS information
+ * should be ignored.
+ **/
gboolean
nm_setting_ip4_config_get_ignore_auto_dns (NMSettingIP4Config *setting)
{
@@ -412,6 +607,16 @@ nm_setting_ip4_config_get_ignore_auto_dns (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->ignore_auto_dns;
}
+/**
+ * nm_setting_ip4_config_get_dhcp_client_id:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:dhcp-client-id
+ * property.
+ *
+ * Returns: the configured Client ID to send to the DHCP server when requesting
+ * addresses via DHCP.
+ **/
const char *
nm_setting_ip4_config_get_dhcp_client_id (NMSettingIP4Config *setting)
{
@@ -420,6 +625,17 @@ nm_setting_ip4_config_get_dhcp_client_id (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dhcp_client_id;
}
+/**
+ * nm_setting_ip4_config_get_dhcp_send_hostname:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:dhcp-send-hostname
+ * property.
+ *
+ * Returns: %TRUE if NetworkManager should send the machine hostname to the
+ * DHCP server when requesting addresses to allow the server to automatically
+ * update DNS information for this machine.
+ **/
gboolean
nm_setting_ip4_config_get_dhcp_send_hostname (NMSettingIP4Config *setting)
{
@@ -428,6 +644,15 @@ nm_setting_ip4_config_get_dhcp_send_hostname (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dhcp_send_hostname;
}
+/**
+ * nm_setting_ip4_config_get_dhcp_hostname:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:dhcp-hostname
+ * property.
+ *
+ * Returns: the configured hostname to send to the DHCP server
+ **/
const char *
nm_setting_ip4_config_get_dhcp_hostname (NMSettingIP4Config *setting)
{
@@ -436,6 +661,16 @@ nm_setting_ip4_config_get_dhcp_hostname (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dhcp_hostname;
}
+/**
+ * nm_setting_ip4_config_get_never_default:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:never-default
+ * property.
+ *
+ * Returns: %TRUE if this connection should never be the default connection
+ * for IPv4 addressing
+ **/
gboolean
nm_setting_ip4_config_get_never_default (NMSettingIP4Config *setting)
{
@@ -444,6 +679,16 @@ nm_setting_ip4_config_get_never_default (NMSettingIP4Config *setting)
return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->never_default;
}
+/**
+ * nm_setting_ip4_config_get_may_fail:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:may-fail
+ * property.
+ *
+ * Returns: %TRUE if this connection doesn't require IPv4 addressing to complete
+ * for the connection to succeed.
+ **/
gboolean
nm_setting_ip4_config_get_may_fail (NMSettingIP4Config *setting)
{
@@ -1023,6 +1268,13 @@ struct NMIP4Address {
guint32 gateway; /* network byte order */
};
+/**
+ * nm_ip4_address_new:
+ *
+ * Creates and returns a new #NMIP4Address object.
+ *
+ * Returns: (transfer full): the new empty #NMIP4Address object
+ **/
NMIP4Address *
nm_ip4_address_new (void)
{
@@ -1033,6 +1285,14 @@ nm_ip4_address_new (void)
return address;
}
+/**
+ * nm_ip4_address_dup:
+ * @source: the #NMIP4Address object to copy
+ *
+ * Copies a given #NMIP4Address object and returns the copy.
+ *
+ * Returns: (transfer full): the copy of the given #NMIP4Address copy
+ **/
NMIP4Address *
nm_ip4_address_dup (NMIP4Address *source)
{
@@ -1049,6 +1309,12 @@ nm_ip4_address_dup (NMIP4Address *source)
return address;
}
+/**
+ * nm_ip4_address_ref:
+ * @address: the #NMIP4Address
+ *
+ * Increases the reference count of the object.
+ **/
void
nm_ip4_address_ref (NMIP4Address *address)
{
@@ -1058,6 +1324,13 @@ nm_ip4_address_ref (NMIP4Address *address)
address->refcount++;
}
+/**
+ * nm_ip4_address_unref:
+ * @address: the #NMIP4Address
+ *
+ * Decreases the reference count of the object. If the reference count
+ * reaches zero, the object will be destroyed.
+ **/
void
nm_ip4_address_unref (NMIP4Address *address)
{
@@ -1071,6 +1344,15 @@ nm_ip4_address_unref (NMIP4Address *address)
}
}
+/**
+ * nm_ip4_address_compare:
+ * @address: the #NMIP4Address
+ * @other: the #NMIP4Address to compare @address to.
+ *
+ * Determines if two #NMIP4Address objects contain the same values.
+ *
+ * Returns: %TRUE if the objects contain the same values, %FALSE if they do not.
+ **/
gboolean
nm_ip4_address_compare (NMIP4Address *address, NMIP4Address *other)
{
@@ -1087,6 +1369,14 @@ nm_ip4_address_compare (NMIP4Address *address, NMIP4Address *other)
return TRUE;
}
+/**
+ * nm_ip4_address_get_address:
+ * @address: the #NMIP4Address
+ *
+ * Gets the IPv4 address property of this address object.
+ *
+ * Returns: the IPv4 address in network byte order
+ **/
guint32
nm_ip4_address_get_address (NMIP4Address *address)
{
@@ -1096,6 +1386,13 @@ nm_ip4_address_get_address (NMIP4Address *address)
return address->address;
}
+/**
+ * nm_ip4_address_set_address:
+ * @address: the #NMIP4Address
+ * @addr: the IPv4 address in network byte order
+ *
+ * Sets the IPv4 address property of this object.
+ **/
void
nm_ip4_address_set_address (NMIP4Address *address, guint32 addr)
{
@@ -1105,6 +1402,15 @@ nm_ip4_address_set_address (NMIP4Address *address, guint32 addr)
address->address = addr;
}
+/**
+ * nm_ip4_address_get_prefix:
+ * @address: the #NMIP4Address
+ *
+ * Gets the IPv4 address prefix (ie "24" or "30" etc) property of this address
+ * object.
+ *
+ * Returns: the IPv4 address prefix
+ **/
guint32
nm_ip4_address_get_prefix (NMIP4Address *address)
{
@@ -1114,15 +1420,32 @@ nm_ip4_address_get_prefix (NMIP4Address *address)
return address->prefix;
}
+/**
+ * nm_ip4_address_set_prefix:
+ * @address: the #NMIP4Address
+ * @prefix: the address prefix, a number between 1 and 32 inclusive
+ *
+ * Sets the IPv4 address prefix.
+ **/
void
nm_ip4_address_set_prefix (NMIP4Address *address, guint32 prefix)
{
g_return_if_fail (address != NULL);
g_return_if_fail (address->refcount > 0);
+ g_return_if_fail (prefix <= 32);
+ g_return_if_fail (prefix > 0);
address->prefix = prefix;
}
+/**
+ * nm_ip4_address_get_gateway:
+ * @address: the #NMIP4Address
+ *
+ * Gets the IPv4 default gateway property of this address object.
+ *
+ * Returns: the IPv4 gateway address in network byte order
+ **/
guint32
nm_ip4_address_get_gateway (NMIP4Address *address)
{
@@ -1132,6 +1455,13 @@ nm_ip4_address_get_gateway (NMIP4Address *address)
return address->gateway;
}
+/**
+ * nm_ip4_address_set_gateway:
+ * @address: the #NMIP4Address
+ * @gateway: the IPv4 default gateway in network byte order
+ *
+ * Sets the IPv4 default gateway property of this address object.
+ **/
void
nm_ip4_address_set_gateway (NMIP4Address *address, guint32 gateway)
{
@@ -1151,6 +1481,13 @@ struct NMIP4Route {
guint32 metric; /* lower metric == more preferred */
};
+/**
+ * nm_ip4_route_new:
+ *
+ * Creates and returns a new #NMIP4Route object.
+ *
+ * Returns: (transfer full): the new empty #NMIP4Route object
+ **/
NMIP4Route *
nm_ip4_route_new (void)
{
@@ -1161,6 +1498,14 @@ nm_ip4_route_new (void)
return route;
}
+/**
+ * nm_ip4_route_dup:
+ * @source: the #NMIP4Route object to copy
+ *
+ * Copies a given #NMIP4Route object and returns the copy.
+ *
+ * Returns: (transfer full): the copy of the given #NMIP4Route copy
+ **/
NMIP4Route *
nm_ip4_route_dup (NMIP4Route *source)
{
@@ -1178,6 +1523,12 @@ nm_ip4_route_dup (NMIP4Route *source)
return route;
}
+/**
+ * nm_ip4_route_ref:
+ * @route: the #NMIP4Route
+ *
+ * Increases the reference count of the object.
+ **/
void
nm_ip4_route_ref (NMIP4Route *route)
{
@@ -1187,6 +1538,13 @@ nm_ip4_route_ref (NMIP4Route *route)
route->refcount++;
}
+/**
+ * nm_ip4_route_unref:
+ * @route: the #NMIP4Route
+ *
+ * Decreases the reference count of the object. If the reference count
+ * reaches zero, the object will be destroyed.
+ **/
void
nm_ip4_route_unref (NMIP4Route *route)
{
@@ -1200,6 +1558,15 @@ nm_ip4_route_unref (NMIP4Route *route)
}
}
+/**
+ * nm_ip4_route_compare:
+ * @route: the #NMIP4Route
+ * @other: the #NMIP4Route to compare @route to.
+ *
+ * Determines if two #NMIP4Route objects contain the same values.
+ *
+ * Returns: %TRUE if the objects contain the same values, %FALSE if they do not.
+ **/
gboolean
nm_ip4_route_compare (NMIP4Route *route, NMIP4Route *other)
{
@@ -1217,6 +1584,14 @@ nm_ip4_route_compare (NMIP4Route *route, NMIP4Route *other)
return TRUE;
}
+/**
+ * nm_ip4_route_get_dest:
+ * @route: the #NMIP4Route
+ *
+ * Gets the IPv4 destination address property of this route object.
+ *
+ * Returns: the IPv4 address in network byte order
+ **/
guint32
nm_ip4_route_get_dest (NMIP4Route *route)
{
@@ -1226,6 +1601,13 @@ nm_ip4_route_get_dest (NMIP4Route *route)
return route->dest;
}
+/**
+ * nm_ip4_route_set_dest:
+ * @route: the #NMIP4Route
+ * @dest: the destination address in network byte order
+ *
+ * Sets the IPv4 destination address property of this route object.
+ **/
void
nm_ip4_route_set_dest (NMIP4Route *route, guint32 dest)
{
@@ -1235,6 +1617,14 @@ nm_ip4_route_set_dest (NMIP4Route *route, guint32 dest)
route->dest = dest;
}
+/**
+ * nm_ip4_route_get_prefix:
+ * @route: the #NMIP4Route
+ *
+ * Gets the IPv4 prefix (ie "24" or "30" etc) of this route.
+ *
+ * Returns: the IPv4 prefix
+ **/
guint32
nm_ip4_route_get_prefix (NMIP4Route *route)
{
@@ -1244,15 +1634,32 @@ nm_ip4_route_get_prefix (NMIP4Route *route)
return route->prefix;
}
+/**
+ * nm_ip4_route_set_prefix:
+ * @route: the #NMIP4Route
+ * @prefix: the prefix, a number between 1 and 32 inclusive
+ *
+ * Sets the IPv4 prefix of this route.
+ **/
void
nm_ip4_route_set_prefix (NMIP4Route *route, guint32 prefix)
{
g_return_if_fail (route != NULL);
g_return_if_fail (route->refcount > 0);
+ g_return_if_fail (prefix <= 32);
+ g_return_if_fail (prefix > 0);
route->prefix = prefix;
}
+/**
+ * nm_ip4_route_get_next_hop:
+ * @route: the #NMIP4Route
+ *
+ * Gets the IPv4 address of the next hop of this route.
+ *
+ * Returns: the IPv4 address in network byte order
+ **/
guint32
nm_ip4_route_get_next_hop (NMIP4Route *route)
{
@@ -1262,6 +1669,13 @@ nm_ip4_route_get_next_hop (NMIP4Route *route)
return route->next_hop;
}
+/**
+ * nm_ip4_route_set_next_hop:
+ * @route: the #NMIP4Route
+ * @next_hop: the IPv4 address of the next hop in network byte order
+ *
+ * Sets the IPv4 address of the next hop of this route.
+ **/
void
nm_ip4_route_set_next_hop (NMIP4Route *route, guint32 next_hop)
{
@@ -1271,6 +1685,15 @@ nm_ip4_route_set_next_hop (NMIP4Route *route, guint32 next_hop)
route->next_hop = next_hop;
}
+/**
+ * nm_ip4_route_get_metric:
+ * @route: the #NMIP4Route
+ *
+ * Gets the route metric property of this route object; lower values indicate
+ * "better" or more preferred routes.
+ *
+ * Returns: the route metric
+ **/
guint32
nm_ip4_route_get_metric (NMIP4Route *route)
{
@@ -1280,6 +1703,14 @@ nm_ip4_route_get_metric (NMIP4Route *route)
return route->metric;
}
+/**
+ * nm_ip4_route_set_metric:
+ * @route: the #NMIP4Route
+ * @metric: the route metric
+ *
+ * Sets the route metric property of this route object; lower values indicate
+ * "better" or more preferred routes.
+ **/
void
nm_ip4_route_set_metric (NMIP4Route *route, guint32 metric)
{
diff --git a/libnm-util/nm-setting-ip4-config.h b/libnm-util/nm-setting-ip4-config.h
index 91cf0ea6d..76dcf37a6 100644
--- a/libnm-util/nm-setting-ip4-config.h
+++ b/libnm-util/nm-setting-ip4-config.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_IP4_CONFIG_SETTING_NAME "ipv4"
-typedef enum
-{
+/**
+ * NMSettingIP4ConfigError:
+ * @NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_IP4_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD: the property's value is
+ * not valid with the given IP4 method
+ */
+typedef enum {
NM_SETTING_IP4_CONFIG_ERROR_UNKNOWN = 0,
NM_SETTING_IP4_CONFIG_ERROR_INVALID_PROPERTY,
NM_SETTING_IP4_CONFIG_ERROR_MISSING_PROPERTY,
@@ -66,10 +74,48 @@ GQuark nm_setting_ip4_config_error_quark (void);
#define NM_SETTING_IP4_CONFIG_NEVER_DEFAULT "never-default"
#define NM_SETTING_IP4_CONFIG_MAY_FAIL "may-fail"
+/**
+ * NM_SETTING_IP4_CONFIG_METHOD_AUTO:
+ *
+ * IPv4 configuration should be automatically determined via a method appropriate
+ * for the hardware interface, ie DHCP or PPP or some other device-specific
+ * manner.
+ */
#define NM_SETTING_IP4_CONFIG_METHOD_AUTO "auto"
+
+/**
+ * NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL:
+ *
+ * IPv4 configuration should be automatically configured for link-local-only
+ * operation.
+ */
#define NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL "link-local"
+
+/**
+ * NM_SETTING_IP4_CONFIG_METHOD_MANUAL:
+ *
+ * All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified
+ * in the setting's properties.
+ */
#define NM_SETTING_IP4_CONFIG_METHOD_MANUAL "manual"
+
+/**
+ * NM_SETTING_IP4_CONFIG_METHOD_SHARED:
+ *
+ * This connection specifies configuration that allows other computers to
+ * connect through it to the default network (usually the Internet). The
+ * connection's interface will be assigned a private address, and a DHCP server,
+ * caching DNS server, and Network Address Translation (NAT) functionality will
+ * be started on this connection's interface to allow other devices to connect
+ * through that interface to the default network.
+ */
#define NM_SETTING_IP4_CONFIG_METHOD_SHARED "shared"
+
+/**
+ * NM_SETTING_IP4_CONFIG_METHOD_DISABLED:
+ *
+ * This connection does not use or require IPv4 address and it should be disabled.
+ */
#define NM_SETTING_IP4_CONFIG_METHOD_DISABLED "disabled"
typedef struct NMIP4Address NMIP4Address;
@@ -100,7 +146,7 @@ typedef struct NMIP4Route NMIP4Route;
GType nm_ip4_route_get_type (void);
NMIP4Route * nm_ip4_route_new (void);
-NMIP4Route * nm_ip4_route_dup (NMIP4Route *route);
+NMIP4Route * nm_ip4_route_dup (NMIP4Route *source);
void nm_ip4_route_ref (NMIP4Route *route);
void nm_ip4_route_unref (NMIP4Route *route);
/* Return TRUE if routes are identical */
diff --git a/libnm-util/nm-setting-ip6-config.c b/libnm-util/nm-setting-ip6-config.c
index 1adbbdcba..4dc8f46ce 100644
--- a/libnm-util/nm-setting-ip6-config.c
+++ b/libnm-util/nm-setting-ip6-config.c
@@ -30,6 +30,22 @@
#include "nm-utils.h"
#include "nm-dbus-glib-types.h"
+/**
+ * SECTION:nm-setting-ip6-config
+ * @short_description: Describes IPv6 addressing, routing, and name service properties
+ * @include: nm-setting-ip6-config.h
+ *
+ * The #NMSettingIP6Config object is a #NMSetting subclass that describes
+ * properties related to IPv6 addressing, routing, and Domain Name Service
+ **/
+
+/**
+ * nm_setting_ip6_config_error_quark:
+ *
+ * Registers an error quark for #NMSettingIP6Config if necessary.
+ *
+ * Returns: the error quark used for #NMSettingIP6Config errors.
+ **/
GQuark
nm_setting_ip6_config_error_quark (void)
{
@@ -102,12 +118,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_ip6_config_new:
+ *
+ * Creates a new #NMSettingIP6Config object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingIP6Config object
+ **/
NMSetting *
nm_setting_ip6_config_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_IP6_CONFIG, NULL);
}
+/**
+ * nm_setting_ip6_config_get_method:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns: the #NMSettingIP6Config:method property of the setting
+ **/
const char *
nm_setting_ip6_config_get_method (NMSettingIP6Config *setting)
{
@@ -116,6 +145,12 @@ nm_setting_ip6_config_get_method (NMSettingIP6Config *setting)
return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->method;
}
+/**
+ * nm_setting_ip6_config_get_num_dns:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns: the number of configured DNS servers
+ **/
guint32
nm_setting_ip6_config_get_num_dns (NMSettingIP6Config *setting)
{
@@ -124,6 +159,13 @@ nm_setting_ip6_config_get_num_dns (NMSettingIP6Config *setting)
return g_slist_length (NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->dns);
}
+/**
+ * nm_setting_ip6_config_get_dns:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the DNS server to return
+ *
+ * Returns: (transfer none): the IPv6 address of the DNS server at index @i
+ **/
const struct in6_addr *
nm_setting_ip6_config_get_dns (NMSettingIP6Config *setting, guint32 i)
{
@@ -138,6 +180,16 @@ nm_setting_ip6_config_get_dns (NMSettingIP6Config *setting, guint32 i)
return (const struct in6_addr *) g_slist_nth_data (priv->dns, i);
}
+/**
+ * nm_setting_ip6_config_add_dns:
+ * @setting: the #NMSettingIP6Config
+ * @dns: the IPv6 address of the DNS server to add
+ *
+ * Adds a new DNS server to the setting.
+ *
+ * Returns: %TRUE if the DNS server was added; %FALSE if the server was already
+ * known
+ **/
gboolean
nm_setting_ip6_config_add_dns (NMSettingIP6Config *setting, const struct in6_addr *addr)
{
@@ -160,6 +212,13 @@ nm_setting_ip6_config_add_dns (NMSettingIP6Config *setting, const struct in6_add
return TRUE;
}
+/**
+ * nm_setting_ip6_config_remove_dns:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the DNS server to remove
+ *
+ * Removes the DNS server at index @i.
+ **/
void
nm_setting_ip6_config_remove_dns (NMSettingIP6Config *setting, guint32 i)
{
@@ -176,6 +235,12 @@ nm_setting_ip6_config_remove_dns (NMSettingIP6Config *setting, guint32 i)
priv->dns = g_slist_delete_link (priv->dns, elt);
}
+/**
+ * nm_setting_ip6_config_clear_dns:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Removes all configured DNS servers.
+ **/
void
nm_setting_ip6_config_clear_dns (NMSettingIP6Config *setting)
{
@@ -185,6 +250,12 @@ nm_setting_ip6_config_clear_dns (NMSettingIP6Config *setting)
NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->dns = NULL;
}
+/**
+ * nm_setting_ip6_config_get_num_dns_searches:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns: the number of configured DNS search domains
+ **/
guint32
nm_setting_ip6_config_get_num_dns_searches (NMSettingIP6Config *setting)
{
@@ -193,6 +264,13 @@ nm_setting_ip6_config_get_num_dns_searches (NMSettingIP6Config *setting)
return g_slist_length (NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->dns_search);
}
+/**
+ * nm_setting_ip6_config_get_dns_search:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the DNS search domain to return
+ *
+ * Returns: the DNS search domain at index @i
+ **/
const char *
nm_setting_ip6_config_get_dns_search (NMSettingIP6Config *setting, guint32 i)
{
@@ -206,6 +284,16 @@ nm_setting_ip6_config_get_dns_search (NMSettingIP6Config *setting, guint32 i)
return (const char *) g_slist_nth_data (priv->dns_search, i);
}
+/**
+ * nm_setting_ip6_config_add_dns_search:
+ * @setting: the #NMSettingIP6Config
+ * @dns_search: the search domain to add
+ *
+ * Adds a new DNS search domain to the setting.
+ *
+ * Returns: %TRUE if the DNS search domain was added; %FALSE if the search
+ * domain was already known
+ **/
gboolean
nm_setting_ip6_config_add_dns_search (NMSettingIP6Config *setting,
const char *dns_search)
@@ -227,6 +315,13 @@ nm_setting_ip6_config_add_dns_search (NMSettingIP6Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip6_config_remove_dns_search:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the DNS search domain
+ *
+ * Removes the DNS search domain at index @i.
+ **/
void
nm_setting_ip6_config_remove_dns_search (NMSettingIP6Config *setting, guint32 i)
{
@@ -243,6 +338,12 @@ nm_setting_ip6_config_remove_dns_search (NMSettingIP6Config *setting, guint32 i)
priv->dns_search = g_slist_delete_link (priv->dns_search, elt);
}
+/**
+ * nm_setting_ip6_config_clear_dns_searches:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Removes all configured DNS search domains.
+ **/
void
nm_setting_ip6_config_clear_dns_searches (NMSettingIP6Config *setting)
{
@@ -252,6 +353,12 @@ nm_setting_ip6_config_clear_dns_searches (NMSettingIP6Config *setting)
NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->dns_search = NULL;
}
+/**
+ * nm_setting_ip6_config_get_num_addresses:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns: the number of configured addresses
+ **/
guint32
nm_setting_ip6_config_get_num_addresses (NMSettingIP6Config *setting)
{
@@ -260,6 +367,13 @@ nm_setting_ip6_config_get_num_addresses (NMSettingIP6Config *setting)
return g_slist_length (NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->addresses);
}
+/**
+ * nm_setting_ip6_config_get_address:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the address to return
+ *
+ * Returns: the address at index @i
+ **/
NMIP6Address *
nm_setting_ip6_config_get_address (NMSettingIP6Config *setting, guint32 i)
{
@@ -273,6 +387,17 @@ nm_setting_ip6_config_get_address (NMSettingIP6Config *setting, guint32 i)
return (NMIP6Address *) g_slist_nth_data (priv->addresses, i);
}
+/**
+ * nm_setting_ip6_config_add_address:
+ * @setting: the #NMSettingIP6Config
+ * @address: the new address to add
+ *
+ * Adds a new IPv6 address and associated information to the setting. The
+ * given address is duplicated internally and is not changed by this function.
+ *
+ * Returns: %TRUE if the address was added; %FALSE if the address was already
+ * known.
+ **/
gboolean
nm_setting_ip6_config_add_address (NMSettingIP6Config *setting,
NMIP6Address *address)
@@ -297,6 +422,13 @@ nm_setting_ip6_config_add_address (NMSettingIP6Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip6_config_remove_address:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the address to remove
+ *
+ * Removes the address at index @i.
+ **/
void
nm_setting_ip6_config_remove_address (NMSettingIP6Config *setting, guint32 i)
{
@@ -313,6 +445,12 @@ nm_setting_ip6_config_remove_address (NMSettingIP6Config *setting, guint32 i)
priv->addresses = g_slist_delete_link (priv->addresses, elt);
}
+/**
+ * nm_setting_ip6_config_clear_addresses:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Removes all configured addresses.
+ **/
void
nm_setting_ip6_config_clear_addresses (NMSettingIP6Config *setting)
{
@@ -324,6 +462,12 @@ nm_setting_ip6_config_clear_addresses (NMSettingIP6Config *setting)
priv->addresses = NULL;
}
+/**
+ * nm_setting_ip6_config_get_num_routes:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns: the number of configured routes
+ **/
guint32
nm_setting_ip6_config_get_num_routes (NMSettingIP6Config *setting)
{
@@ -332,6 +476,13 @@ nm_setting_ip6_config_get_num_routes (NMSettingIP6Config *setting)
return g_slist_length (NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->routes);
}
+/**
+ * nm_setting_ip6_config_get_route:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the route to return
+ *
+ * Returns: the route at index @i
+ **/
NMIP6Route *
nm_setting_ip6_config_get_route (NMSettingIP6Config *setting, guint32 i)
{
@@ -345,6 +496,16 @@ nm_setting_ip6_config_get_route (NMSettingIP6Config *setting, guint32 i)
return (NMIP6Route *) g_slist_nth_data (priv->routes, i);
}
+/**
+ * nm_setting_ip6_config_add_route:
+ * @setting: the #NMSettingIP6Config
+ * @route: the route to add
+ *
+ * Adds a new IPv6 route and associated information to the setting. The
+ * given route is duplicated internally and is not changed by this function.
+ *
+ * Returns: %TRUE if the route was added; %FALSE if the route was already known.
+ **/
gboolean
nm_setting_ip6_config_add_route (NMSettingIP6Config *setting,
NMIP6Route *route)
@@ -369,6 +530,13 @@ nm_setting_ip6_config_add_route (NMSettingIP6Config *setting,
return TRUE;
}
+/**
+ * nm_setting_ip6_config_remove_route:
+ * @setting: the #NMSettingIP6Config
+ * @i: index number of the route
+ *
+ * Removes the route at index @i.
+ **/
void
nm_setting_ip6_config_remove_route (NMSettingIP6Config *setting, guint32 i)
{
@@ -385,6 +553,12 @@ nm_setting_ip6_config_remove_route (NMSettingIP6Config *setting, guint32 i)
priv->routes = g_slist_delete_link (priv->routes, elt);
}
+/**
+ * nm_setting_ip6_config_clear_routes:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Removes all configured routes.
+ **/
void
nm_setting_ip6_config_clear_routes (NMSettingIP6Config *setting)
{
@@ -396,6 +570,16 @@ nm_setting_ip6_config_clear_routes (NMSettingIP6Config *setting)
priv->routes = NULL;
}
+/**
+ * nm_setting_ip6_config_get_ignore_auto_routes:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns the value contained in the #NMSettingIP6Config:ignore-auto-routes
+ * property.
+ *
+ * Returns: %TRUE if automatically configured (ie via DHCP) routes should be
+ * ignored.
+ **/
gboolean
nm_setting_ip6_config_get_ignore_auto_routes (NMSettingIP6Config *setting)
{
@@ -404,6 +588,16 @@ nm_setting_ip6_config_get_ignore_auto_routes (NMSettingIP6Config *setting)
return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->ignore_auto_routes;
}
+/**
+ * nm_setting_ip6_config_get_ignore_auto_dns:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns the value contained in the #NMSettingIP6Config:ignore-auto-dns
+ * property.
+ *
+ * Returns: %TRUE if automatically configured (ie via DHCP or router
+ * advertisements) DNS information should be ignored.
+ **/
gboolean
nm_setting_ip6_config_get_ignore_auto_dns (NMSettingIP6Config *setting)
{
@@ -412,6 +606,16 @@ nm_setting_ip6_config_get_ignore_auto_dns (NMSettingIP6Config *setting)
return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->ignore_auto_dns;
}
+/**
+ * nm_setting_ip6_config_get_never_default:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns the value contained in the #NMSettingIP6Config:never-default
+ * property.
+ *
+ * Returns: %TRUE if this connection should never be the default connection
+ * for IPv6 addressing
+ **/
gboolean
nm_setting_ip6_config_get_never_default (NMSettingIP6Config *setting)
{
@@ -420,6 +624,16 @@ nm_setting_ip6_config_get_never_default (NMSettingIP6Config *setting)
return NM_SETTING_IP6_CONFIG_GET_PRIVATE (setting)->never_default;
}
+/**
+ * nm_setting_ip6_config_get_may_fail:
+ * @setting: the #NMSettingIP6Config
+ *
+ * Returns the value contained in the #NMSettingIP6Config:may-fail
+ * property.
+ *
+ * Returns: %TRUE if this connection doesn't require IPv6 addressing to complete
+ * for the connection to succeed.
+ **/
gboolean
nm_setting_ip6_config_get_may_fail (NMSettingIP6Config *setting)
{
@@ -842,7 +1056,7 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *setting_class)
"this property to TRUE allows the overall network "
"configuration to succeed if IPv6 configuration "
"fails but IPv4 configuration completes successfully.",
- FALSE,
+ TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
}
@@ -855,6 +1069,13 @@ struct NMIP6Address {
struct in6_addr gateway;
};
+/**
+ * nm_ip6_address_new:
+ *
+ * Creates and returns a new #NMIP6Address object.
+ *
+ * Returns: (transfer full): the new empty #NMIP6Address object
+ **/
NMIP6Address *
nm_ip6_address_new (void)
{
@@ -865,6 +1086,14 @@ nm_ip6_address_new (void)
return address;
}
+/**
+ * nm_ip6_address_dup:
+ * @source: the #NMIP6Address object to copy
+ *
+ * Copies a given #NMIP6Address object and returns the copy.
+ *
+ * Returns: (transfer full): the copy of the given #NMIP6Address copy
+ **/
NMIP6Address *
nm_ip6_address_dup (NMIP6Address *source)
{
@@ -881,6 +1110,12 @@ nm_ip6_address_dup (NMIP6Address *source)
return address;
}
+/**
+ * nm_ip6_address_ref:
+ * @address: the #NMIP6Address
+ *
+ * Increases the reference count of the object.
+ **/
void
nm_ip6_address_ref (NMIP6Address *address)
{
@@ -890,6 +1125,13 @@ nm_ip6_address_ref (NMIP6Address *address)
address->refcount++;
}
+/**
+ * nm_ip6_address_unref:
+ * @address: the #NMIP6Address
+ *
+ * Decreases the reference count of the object. If the reference count
+ * reaches zero, the object will be destroyed.
+ **/
void
nm_ip6_address_unref (NMIP6Address *address)
{
@@ -903,6 +1145,15 @@ nm_ip6_address_unref (NMIP6Address *address)
}
}
+/**
+ * nm_ip6_address_compare:
+ * @address: the #NMIP6Address
+ * @other: the #NMIP6Address to compare @address to.
+ *
+ * Determines if two #NMIP6Address objects contain the same values.
+ *
+ * Returns: %TRUE if the objects contain the same values, %FALSE if they do not.
+ **/
gboolean
nm_ip6_address_compare (NMIP6Address *address, NMIP6Address *other)
{
@@ -919,6 +1170,14 @@ nm_ip6_address_compare (NMIP6Address *address, NMIP6Address *other)
return TRUE;
}
+/**
+ * nm_ip6_address_get_address:
+ * @address: the #NMIP6Address
+ *
+ * Gets the IPv6 address property of this address object.
+ *
+ * Returns: (transfer none): the IPv6 address
+ **/
const struct in6_addr *
nm_ip6_address_get_address (NMIP6Address *address)
{
@@ -928,6 +1187,13 @@ nm_ip6_address_get_address (NMIP6Address *address)
return &address->address;
}
+/**
+ * nm_ip6_address_set_address:
+ * @address: the #NMIP6Address
+ * @addr: the IPv6 address
+ *
+ * Sets the IPv6 address property of this object.
+ **/
void
nm_ip6_address_set_address (NMIP6Address *address, const struct in6_addr *addr)
{
@@ -938,6 +1204,14 @@ nm_ip6_address_set_address (NMIP6Address *address, const struct in6_addr *addr)
memcpy (&address->address, addr, sizeof (struct in6_addr));
}
+/**
+ * nm_ip6_address_get_prefix:
+ * @address: the #NMIP6Address
+ *
+ * Gets the IPv6 address prefix property of this address object.
+ *
+ * Returns: the IPv6 address prefix
+ **/
guint32
nm_ip6_address_get_prefix (NMIP6Address *address)
{
@@ -947,15 +1221,32 @@ nm_ip6_address_get_prefix (NMIP6Address *address)
return address->prefix;
}
+/**
+ * nm_ip6_address_set_prefix:
+ * @address: the #NMIP6Address
+ * @prefix: the address prefix, a number between 0 and 128 inclusive
+ *
+ * Sets the IPv6 address prefix.
+ **/
void
nm_ip6_address_set_prefix (NMIP6Address *address, guint32 prefix)
{
g_return_if_fail (address != NULL);
g_return_if_fail (address->refcount > 0);
+ g_return_if_fail (prefix <= 128);
+ g_return_if_fail (prefix > 0);
address->prefix = prefix;
}
+/**
+ * nm_ip6_address_get_gateway:
+ * @address: the #NMIP6Address
+ *
+ * Gets the IPv6 default gateway property of this address object.
+ *
+ * Returns: (transfer none): the IPv6 gateway address
+ **/
const struct in6_addr *
nm_ip6_address_get_gateway (NMIP6Address *address)
{
@@ -965,14 +1256,21 @@ nm_ip6_address_get_gateway (NMIP6Address *address)
return &address->gateway;
}
+/**
+ * nm_ip6_address_set_gateway:
+ * @address: the #NMIP6Address
+ * @gateway: the IPv6 default gateway
+ *
+ * Sets the IPv6 default gateway property of this address object.
+ **/
void
-nm_ip6_address_set_gateway (NMIP6Address *address, const struct in6_addr *gw)
+nm_ip6_address_set_gateway (NMIP6Address *address, const struct in6_addr *gateway)
{
g_return_if_fail (address != NULL);
g_return_if_fail (address->refcount > 0);
- g_return_if_fail (gw != NULL);
+ g_return_if_fail (gateway != NULL);
- memcpy (&address->gateway, gw, sizeof (struct in6_addr));
+ memcpy (&address->gateway, gateway, sizeof (struct in6_addr));
}
/********************************************************************/
@@ -986,6 +1284,13 @@ struct NMIP6Route {
guint32 metric; /* lower metric == more preferred */
};
+/**
+ * nm_ip6_route_new:
+ *
+ * Creates and returns a new #NMIP6Route object.
+ *
+ * Returns: (transfer full): the new empty #NMIP6Route object
+ **/
NMIP6Route *
nm_ip6_route_new (void)
{
@@ -996,6 +1301,14 @@ nm_ip6_route_new (void)
return route;
}
+/**
+ * nm_ip6_route_dup:
+ * @source: the #NMIP6Route object to copy
+ *
+ * Copies a given #NMIP6Route object and returns the copy.
+ *
+ * Returns: (transfer full): the copy of the given #NMIP6Route copy
+ **/
NMIP6Route *
nm_ip6_route_dup (NMIP6Route *source)
{
@@ -1013,6 +1326,12 @@ nm_ip6_route_dup (NMIP6Route *source)
return route;
}
+/**
+ * nm_ip6_route_ref:
+ * @route: the #NMIP6Route
+ *
+ * Increases the reference count of the object.
+ **/
void
nm_ip6_route_ref (NMIP6Route *route)
{
@@ -1022,6 +1341,13 @@ nm_ip6_route_ref (NMIP6Route *route)
route->refcount++;
}
+/**
+ * nm_ip6_route_unref:
+ * @route: the #NMIP6Route
+ *
+ * Decreases the reference count of the object. If the reference count
+ * reaches zero, the object will be destroyed.
+ **/
void
nm_ip6_route_unref (NMIP6Route *route)
{
@@ -1035,6 +1361,15 @@ nm_ip6_route_unref (NMIP6Route *route)
}
}
+/**
+ * nm_ip6_route_compare:
+ * @route: the #NMIP6Route
+ * @other: the #NMIP6Route to compare @route to.
+ *
+ * Determines if two #NMIP6Route objects contain the same values.
+ *
+ * Returns: %TRUE if the objects contain the same values, %FALSE if they do not.
+ **/
gboolean
nm_ip6_route_compare (NMIP6Route *route, NMIP6Route *other)
{
@@ -1052,6 +1387,14 @@ nm_ip6_route_compare (NMIP6Route *route, NMIP6Route *other)
return TRUE;
}
+/**
+ * nm_ip6_route_get_dest:
+ * @route: the #NMIP6Route
+ *
+ * Gets the IPv6 destination address property of this route object.
+ *
+ * Returns: the IPv6 address
+ **/
const struct in6_addr *
nm_ip6_route_get_dest (NMIP6Route *route)
{
@@ -1061,6 +1404,13 @@ nm_ip6_route_get_dest (NMIP6Route *route)
return &route->dest;
}
+/**
+ * nm_ip6_route_set_dest:
+ * @route: the #NMIP6Route
+ * @dest: the destination address
+ *
+ * Sets the IPv6 destination address property of this route object.
+ **/
void
nm_ip6_route_set_dest (NMIP6Route *route, const struct in6_addr *dest)
{
@@ -1071,6 +1421,14 @@ nm_ip6_route_set_dest (NMIP6Route *route, const struct in6_addr *dest)
memcpy (&route->dest, dest, sizeof (struct in6_addr));
}
+/**
+ * nm_ip6_route_get_prefix:
+ * @route: the #NMIP6Route
+ *
+ * Gets the IPv6 prefix (ie "32" or "64" etc) of this route.
+ *
+ * Returns: the IPv6 prefix
+ **/
guint32
nm_ip6_route_get_prefix (NMIP6Route *route)
{
@@ -1080,15 +1438,32 @@ nm_ip6_route_get_prefix (NMIP6Route *route)
return route->prefix;
}
+/**
+ * nm_ip6_route_set_prefix:
+ * @route: the #NMIP6Route
+ * @prefix: the prefix, a number between 1 and 128 inclusive
+ *
+ * Sets the IPv6 prefix of this route.
+ **/
void
nm_ip6_route_set_prefix (NMIP6Route *route, guint32 prefix)
{
g_return_if_fail (route != NULL);
g_return_if_fail (route->refcount > 0);
+ g_return_if_fail (prefix <= 128);
+ g_return_if_fail (prefix > 0);
route->prefix = prefix;
}
+/**
+ * nm_ip6_route_get_next_hop:
+ * @route: the #NMIP6Route
+ *
+ * Gets the IPv6 address of the next hop of this route.
+ *
+ * Returns: the IPv6 address
+ **/
const struct in6_addr *
nm_ip6_route_get_next_hop (NMIP6Route *route)
{
@@ -1098,6 +1473,13 @@ nm_ip6_route_get_next_hop (NMIP6Route *route)
return &route->next_hop;
}
+/**
+ * nm_ip6_route_set_next_hop:
+ * @route: the #NMIP6Route
+ * @next_hop: the IPv6 address of the next hop
+ *
+ * Sets the IPv6 address of the next hop of this route.
+ **/
void
nm_ip6_route_set_next_hop (NMIP6Route *route, const struct in6_addr *next_hop)
{
@@ -1108,6 +1490,15 @@ nm_ip6_route_set_next_hop (NMIP6Route *route, const struct in6_addr *next_hop)
memcpy (&route->next_hop, next_hop, sizeof (struct in6_addr));
}
+/**
+ * nm_ip6_route_get_metric:
+ * @route: the #NMIP6Route
+ *
+ * Gets the route metric property of this route object; lower values indicate
+ * "better" or more preferred routes.
+ *
+ * Returns: the route metric
+ **/
guint32
nm_ip6_route_get_metric (NMIP6Route *route)
{
@@ -1117,6 +1508,14 @@ nm_ip6_route_get_metric (NMIP6Route *route)
return route->metric;
}
+/**
+ * nm_ip6_route_set_metric:
+ * @route: the #NMIP6Route
+ * @metric: the route metric
+ *
+ * Sets the route metric property of this route object; lower values indicate
+ * "better" or more preferred routes.
+ **/
void
nm_ip6_route_set_metric (NMIP6Route *route, guint32 metric)
{
diff --git a/libnm-util/nm-setting-ip6-config.h b/libnm-util/nm-setting-ip6-config.h
index b9733b4ac..6b8fe5c44 100644
--- a/libnm-util/nm-setting-ip6-config.h
+++ b/libnm-util/nm-setting-ip6-config.h
@@ -40,8 +40,16 @@ G_BEGIN_DECLS
#define NM_SETTING_IP6_CONFIG_SETTING_NAME "ipv6"
-typedef enum
-{
+/**
+ * NMSettingIP6ConfigError:
+ * @NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD: the property's value is
+ * not valid with the given IPv6 method
+ */
+typedef enum {
NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN = 0,
NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY,
NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY,
@@ -64,11 +72,58 @@ GQuark nm_setting_ip6_config_error_quark (void);
#define NM_SETTING_IP6_CONFIG_NEVER_DEFAULT "never-default"
#define NM_SETTING_IP6_CONFIG_MAY_FAIL "may-fail"
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_IGNORE:
+ *
+ * IPv6 is not required or is handled by some other mechanism, and NetworkManager
+ * should not configure IPv6 for this connection.
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_IGNORE "ignore"
+
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_AUTO:
+ *
+ * IPv6 configuration should be automatically determined via a method appropriate
+ * for the hardware interface, ie router advertisements, DHCP, or PPP or some
+ * other device-specific manner.
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_AUTO "auto"
+
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_DHCP:
+ *
+ * IPv6 configuration should be automatically determined via DHCPv6 only and
+ * router advertisements should be ignored.
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_DHCP "dhcp"
+
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL:
+ *
+ * IPv6 configuration should be automatically configured for link-local-only
+ * operation.
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL "link-local"
+
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_MANUAL:
+ *
+ * All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified
+ * in the setting's properties.
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_MANUAL "manual"
+
+/**
+ * NM_SETTING_IP6_CONFIG_METHOD_SHARED:
+ *
+ * This connection specifies configuration that allows other computers to
+ * connect through it to the default network (usually the Internet). The
+ * connection's interface will be assigned a private address, and router
+ * advertisements, a caching DNS server, and Network Address Translation (NAT)
+ * functionality will be started on this connection's interface to allow other
+ * devices to connect through that interface to the default network. (not yet
+ * supported for IPv6)
+ */
#define NM_SETTING_IP6_CONFIG_METHOD_SHARED "shared"
@@ -93,14 +148,14 @@ void nm_ip6_address_set_prefix (NMIP6Address *address,
const struct in6_addr *nm_ip6_address_get_gateway (NMIP6Address *address);
void nm_ip6_address_set_gateway (NMIP6Address *address,
- const struct in6_addr *gw);
+ const struct in6_addr *gateway);
typedef struct NMIP6Route NMIP6Route;
GType nm_ip6_route_get_type (void);
NMIP6Route * nm_ip6_route_new (void);
-NMIP6Route * nm_ip6_route_dup (NMIP6Route *route);
+NMIP6Route * nm_ip6_route_dup (NMIP6Route *source);
void nm_ip6_route_ref (NMIP6Route *route);
void nm_ip6_route_unref (NMIP6Route *route);
/* Return TRUE if routes are identical */
diff --git a/libnm-util/nm-setting-ppp.c b/libnm-util/nm-setting-ppp.c
index fd6043f17..893381311 100644
--- a/libnm-util/nm-setting-ppp.c
+++ b/libnm-util/nm-setting-ppp.c
@@ -25,6 +25,24 @@
#include "nm-setting-ppp.h"
+/**
+ * SECTION:nm-setting-ppp
+ * @short_description: Describes connection properties for devices/networks
+ * that require PPP to deliver IP capability
+ * @include: nm-setting-ppp.h
+ *
+ * The #NMSettingPPP object is a #NMSetting subclass that describes properties
+ * necessary for connection to networks that require PPP transport, like PPPoE
+ * cable and DSL modems and some mobile broadband devices.
+ **/
+
+/**
+ * nm_setting_ppp_error_quark:
+ *
+ * Registers an error quark for #NMSettingPPP if necessary.
+ *
+ * Returns: the error quark used for #NMSettingPPP errors.
+ **/
GQuark
nm_setting_ppp_error_quark (void)
{
@@ -110,12 +128,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_ppp_new:
+ *
+ * Creates a new #NMSettingPPP object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingPPP object
+ **/
NMSetting *
nm_setting_ppp_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_PPP, NULL);
}
+/**
+ * nm_setting_wired_get_noauth:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:noauth property of the setting
+ **/
gboolean
nm_setting_ppp_get_noauth (NMSettingPPP *setting)
{
@@ -124,6 +155,12 @@ nm_setting_ppp_get_noauth (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->noauth;
}
+/**
+ * nm_setting_wired_get_refuse_eap:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:refuse-eap property of the setting
+ **/
gboolean
nm_setting_ppp_get_refuse_eap (NMSettingPPP *setting)
{
@@ -132,6 +169,12 @@ nm_setting_ppp_get_refuse_eap (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->refuse_eap;
}
+/**
+ * nm_setting_wired_get_refuse_pap:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:refuse-pap property of the setting
+ **/
gboolean
nm_setting_ppp_get_refuse_pap (NMSettingPPP *setting)
{
@@ -140,6 +183,12 @@ nm_setting_ppp_get_refuse_pap (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->refuse_pap;
}
+/**
+ * nm_setting_wired_get_refuse_chap:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:refuse-chap property of the setting
+ **/
gboolean
nm_setting_ppp_get_refuse_chap (NMSettingPPP *setting)
{
@@ -148,6 +197,12 @@ nm_setting_ppp_get_refuse_chap (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->refuse_chap;
}
+/**
+ * nm_setting_wired_get_refuse_mschap:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:refuse-mschap property of the setting
+ **/
gboolean
nm_setting_ppp_get_refuse_mschap (NMSettingPPP *setting)
{
@@ -156,6 +211,12 @@ nm_setting_ppp_get_refuse_mschap (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->refuse_mschap;
}
+/**
+ * nm_setting_wired_get_refuse_mschapv2:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:refuse-mschapv2 property of the setting
+ **/
gboolean
nm_setting_ppp_get_refuse_mschapv2 (NMSettingPPP *setting)
{
@@ -164,6 +225,12 @@ nm_setting_ppp_get_refuse_mschapv2 (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->refuse_mschapv2;
}
+/**
+ * nm_setting_wired_get_nobsdcomp:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:nobsdcomp property of the setting
+ **/
gboolean
nm_setting_ppp_get_nobsdcomp (NMSettingPPP *setting)
{
@@ -172,6 +239,12 @@ nm_setting_ppp_get_nobsdcomp (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->nobsdcomp;
}
+/**
+ * nm_setting_wired_get_nodeflate:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:nodeflate property of the setting
+ **/
gboolean
nm_setting_ppp_get_nodeflate (NMSettingPPP *setting)
{
@@ -180,6 +253,12 @@ nm_setting_ppp_get_nodeflate (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->nodeflate;
}
+/**
+ * nm_setting_wired_get_no_vj_comp:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:no-vj-comp property of the setting
+ **/
gboolean
nm_setting_ppp_get_no_vj_comp (NMSettingPPP *setting)
{
@@ -188,6 +267,12 @@ nm_setting_ppp_get_no_vj_comp (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->no_vj_comp;
}
+/**
+ * nm_setting_wired_get_require_mppe:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:require-mppe property of the setting
+ **/
gboolean
nm_setting_ppp_get_require_mppe (NMSettingPPP *setting)
{
@@ -196,6 +281,12 @@ nm_setting_ppp_get_require_mppe (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->require_mppe;
}
+/**
+ * nm_setting_wired_get_require_mppe_128:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:require-mppe-128 property of the setting
+ **/
gboolean
nm_setting_ppp_get_require_mppe_128 (NMSettingPPP *setting)
{
@@ -204,6 +295,12 @@ nm_setting_ppp_get_require_mppe_128 (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->require_mppe_128;
}
+/**
+ * nm_setting_wired_get_mppe_stateful:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:mppe-stateful property of the setting
+ **/
gboolean
nm_setting_ppp_get_mppe_stateful (NMSettingPPP *setting)
{
@@ -212,6 +309,12 @@ nm_setting_ppp_get_mppe_stateful (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->mppe_stateful;
}
+/**
+ * nm_setting_wired_get_crtscts:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:crtscts property of the setting
+ **/
gboolean
nm_setting_ppp_get_crtscts (NMSettingPPP *setting)
{
@@ -220,6 +323,12 @@ nm_setting_ppp_get_crtscts (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->crtscts;
}
+/**
+ * nm_setting_wired_get_baud:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:baud property of the setting
+ **/
guint32
nm_setting_ppp_get_baud (NMSettingPPP *setting)
{
@@ -228,6 +337,12 @@ nm_setting_ppp_get_baud (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->baud;
}
+/**
+ * nm_setting_wired_get_mru:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:mru property of the setting
+ **/
guint32
nm_setting_ppp_get_mru (NMSettingPPP *setting)
{
@@ -236,6 +351,12 @@ nm_setting_ppp_get_mru (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->mru;
}
+/**
+ * nm_setting_wired_get_mtu:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:mtu property of the setting
+ **/
guint32
nm_setting_ppp_get_mtu (NMSettingPPP *setting)
{
@@ -244,6 +365,12 @@ nm_setting_ppp_get_mtu (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->mtu;
}
+/**
+ * nm_setting_wired_get_lcp_echo_failure:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:lcp-echo-failure property of the setting
+ **/
guint32
nm_setting_ppp_get_lcp_echo_failure (NMSettingPPP *setting)
{
@@ -252,6 +379,12 @@ nm_setting_ppp_get_lcp_echo_failure (NMSettingPPP *setting)
return NM_SETTING_PPP_GET_PRIVATE (setting)->lcp_echo_failure;
}
+/**
+ * nm_setting_wired_get_lcp_echo_interval:
+ * @setting: the #NMSettingPPP
+ *
+ * Returns: the #NMSettingPPP:lcp-echo-interval property of the setting
+ **/
guint32
nm_setting_ppp_get_lcp_echo_interval (NMSettingPPP *setting)
{
diff --git a/libnm-util/nm-setting-ppp.h b/libnm-util/nm-setting-ppp.h
index cfa1f57ab..7a6e4e47b 100644
--- a/libnm-util/nm-setting-ppp.h
+++ b/libnm-util/nm-setting-ppp.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_PPP_SETTING_NAME "ppp"
-typedef enum
-{
+/**
+ * NMSettingPPPError:
+ * @NM_SETTING_PPP_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_PPP_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_PPP_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_PPP_ERROR_REQUIRE_MPPE_NOT_ALLOWED: requiring MPPE is not compatible
+ * with other setting configuration parameters
+ */
+typedef enum {
NM_SETTING_PPP_ERROR_UNKNOWN = 0,
NM_SETTING_PPP_ERROR_INVALID_PROPERTY,
NM_SETTING_PPP_ERROR_MISSING_PROPERTY,
diff --git a/libnm-util/nm-setting-pppoe.c b/libnm-util/nm-setting-pppoe.c
index 18dd7983a..4a9b8a229 100644
--- a/libnm-util/nm-setting-pppoe.c
+++ b/libnm-util/nm-setting-pppoe.c
@@ -28,6 +28,23 @@
#include "nm-setting-ppp.h"
#include "nm-setting-private.h"
+/**
+ * SECTION:nm-setting-pppoe
+ * @short_description: Describes PPPoE connection properties
+ * @include: nm-setting-pppoe.h
+ *
+ * The #NMSettingPPPOE object is a #NMSetting subclass that describes
+ * properties necessary for connection to networks that require PPPoE connections
+ * to provide IP transport, for example cable or DSL modems.
+ **/
+
+/**
+ * nm_setting_pppoe_error_quark:
+ *
+ * Registers an error quark for #NMSettingPPPOE if necessary.
+ *
+ * Returns: the error quark used for #NMSettingPPPOE errors.
+ **/
GQuark
nm_setting_pppoe_error_quark (void)
{
@@ -85,12 +102,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_pppoe_new:
+ *
+ * Creates a new #NMSettingPPPOE object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingPPPOE object
+ **/
NMSetting *
nm_setting_pppoe_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_PPPOE, NULL);
}
+/**
+ * nm_setting_pppoe_get_service:
+ * @setting: the #NMSettingPPPOE
+ *
+ * Returns: the #NMSettingPPPOE:service property of the setting
+ **/
const char *
nm_setting_pppoe_get_service (NMSettingPPPOE *setting)
{
@@ -99,6 +129,12 @@ nm_setting_pppoe_get_service (NMSettingPPPOE *setting)
return NM_SETTING_PPPOE_GET_PRIVATE (setting)->service;
}
+/**
+ * nm_setting_pppoe_get_service:
+ * @setting: the #NMSettingPPPOE
+ *
+ * Returns: the #NMSettingPPPOE:username property of the setting
+ **/
const char *
nm_setting_pppoe_get_username (NMSettingPPPOE *setting)
{
@@ -107,6 +143,12 @@ nm_setting_pppoe_get_username (NMSettingPPPOE *setting)
return NM_SETTING_PPPOE_GET_PRIVATE (setting)->username;
}
+/**
+ * nm_setting_pppoe_get_service:
+ * @setting: the #NMSettingPPPOE
+ *
+ * Returns: the #NMSettingPPPOE:password property of the setting
+ **/
const char *
nm_setting_pppoe_get_password (NMSettingPPPOE *setting)
{
diff --git a/libnm-util/nm-setting-pppoe.h b/libnm-util/nm-setting-pppoe.h
index d163decb4..aef6bd686 100644
--- a/libnm-util/nm-setting-pppoe.h
+++ b/libnm-util/nm-setting-pppoe.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_PPPOE_SETTING_NAME "pppoe"
-typedef enum
-{
+/**
+ * NMSettingPPPOEError:
+ * @NM_SETTING_PPPOE_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_PPPOE_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_PPPOE_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_PPPOE_ERROR_MISSING_PPP_SETTING: the connection
+ * did not contain a required PPP setting for PPP related options
+ */
+typedef enum {
NM_SETTING_PPPOE_ERROR_UNKNOWN = 0,
NM_SETTING_PPPOE_ERROR_INVALID_PROPERTY,
NM_SETTING_PPPOE_ERROR_MISSING_PROPERTY,
diff --git a/libnm-util/nm-setting-serial.c b/libnm-util/nm-setting-serial.c
index d1d1445e5..7ed15e9e7 100644
--- a/libnm-util/nm-setting-serial.c
+++ b/libnm-util/nm-setting-serial.c
@@ -27,6 +27,24 @@
#include "nm-setting-serial.h"
+/**
+ * SECTION:nm-setting-serial
+ * @short_description: Describes connection properties for devices that use
+ * serial communications
+ * @include: nm-setting-serial.h
+ *
+ * The #NMSettingSerial object is a #NMSetting subclass that describes
+ * properties necessary for connections that may use serial communications,
+ * such as mobile broadband or analog telephone connections.
+ **/
+
+/**
+ * nm_setting_serial_error_quark:
+ *
+ * Registers an error quark for #NMSettingSerial if necessary.
+ *
+ * Returns: the error quark used for #NMSettingSerial errors.
+ **/
GQuark
nm_setting_serial_error_quark (void)
{
@@ -87,12 +105,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_serial_new:
+ *
+ * Creates a new #NMSettingSerial object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingSerial object
+ **/
NMSetting *
nm_setting_serial_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_SERIAL, NULL);
}
+/**
+ * nm_setting_serial_get_baud:
+ * @setting: the #NMSettingSerial
+ *
+ * Returns: the #NMSettingSerial:baud property of the setting
+ **/
guint
nm_setting_serial_get_baud (NMSettingSerial *setting)
{
@@ -101,6 +132,12 @@ nm_setting_serial_get_baud (NMSettingSerial *setting)
return NM_SETTING_SERIAL_GET_PRIVATE (setting)->baud;
}
+/**
+ * nm_setting_serial_get_bits:
+ * @setting: the #NMSettingSerial
+ *
+ * Returns: the #NMSettingSerial:bits property of the setting
+ **/
guint
nm_setting_serial_get_bits (NMSettingSerial *setting)
{
@@ -109,6 +146,12 @@ nm_setting_serial_get_bits (NMSettingSerial *setting)
return NM_SETTING_SERIAL_GET_PRIVATE (setting)->bits;
}
+/**
+ * nm_setting_serial_get_parity:
+ * @setting: the #NMSettingSerial
+ *
+ * Returns: the #NMSettingSerial:parity property of the setting
+ **/
char
nm_setting_serial_get_parity (NMSettingSerial *setting)
{
@@ -117,6 +160,12 @@ nm_setting_serial_get_parity (NMSettingSerial *setting)
return NM_SETTING_SERIAL_GET_PRIVATE (setting)->parity;
}
+/**
+ * nm_setting_serial_get_stopbits:
+ * @setting: the #NMSettingSerial
+ *
+ * Returns: the #NMSettingSerial:stopbits property of the setting
+ **/
guint
nm_setting_serial_get_stopbits (NMSettingSerial *setting)
{
@@ -125,6 +174,12 @@ nm_setting_serial_get_stopbits (NMSettingSerial *setting)
return NM_SETTING_SERIAL_GET_PRIVATE (setting)->stopbits;
}
+/**
+ * nm_setting_serial_get_send_delay:
+ * @setting: the #NMSettingSerial
+ *
+ * Returns: the #NMSettingSerial:send-delay property of the setting
+ **/
guint64
nm_setting_serial_get_send_delay (NMSettingSerial *setting)
{
diff --git a/libnm-util/nm-setting-serial.h b/libnm-util/nm-setting-serial.h
index d39e5a794..9562950c9 100644
--- a/libnm-util/nm-setting-serial.h
+++ b/libnm-util/nm-setting-serial.h
@@ -39,8 +39,16 @@ G_BEGIN_DECLS
#define NM_SETTING_SERIAL_SETTING_NAME "serial"
-typedef enum
-{
+/**
+ * NMSettingSerialError:
+ * @NM_SETTING_SERIAL_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING: one of the properties of the
+ * setting requires the connection to contain an #NMSettingPPP setting
+ */
+typedef enum {
NM_SETTING_SERIAL_ERROR_UNKNOWN = 0,
NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY,
NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY,
diff --git a/libnm-util/nm-setting-vpn.c b/libnm-util/nm-setting-vpn.c
index 23f073831..50091cb9a 100644
--- a/libnm-util/nm-setting-vpn.c
+++ b/libnm-util/nm-setting-vpn.c
@@ -32,6 +32,27 @@
#include "nm-dbus-glib-types.h"
#include "nm-setting-private.h"
+/**
+ * SECTION:nm-setting-vpn
+ * @short_description: Describes connection properties for Virtual Private Networks
+ * @include: nm-setting-vpn.h
+ *
+ * The #NMSettingVPN object is a #NMSetting subclass that describes properties
+ * necessary for connection to Virtual Private Networks. NetworkManager uses
+ * a plugin architecture to allow easier use of new VPN types, and this
+ * setting abstracts the configuration for those plugins. Since the configuration
+ * options are only known to the VPN plugins themselves, the VPN configuration
+ * options are stored as key/value pairs of strings rather than GObject
+ * properties.
+ **/
+
+/**
+ * nm_setting_vpn_error_quark:
+ *
+ * Registers an error quark for #NMSettingVPN if necessary.
+ *
+ * Returns: the error quark used for #NMSettingVPN errors.
+ **/
GQuark
nm_setting_vpn_error_quark (void)
{
@@ -108,12 +129,28 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_vpn_new:
+ *
+ * Creates a new #NMSettingVPN object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingVPN object
+ **/
NMSetting *
nm_setting_vpn_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_VPN, NULL);
}
+/**
+ * nm_setting_vpn_get_service_type:
+ * @setting: the #NMSettingVPN
+ *
+ * Returns the service name of the VPN, which identifies the specific VPN
+ * plugin that should be used to connect to this VPN.
+ *
+ * Returns: the VPN plugin's service name
+ **/
const char *
nm_setting_vpn_get_service_type (NMSettingVPN *setting)
{
@@ -122,6 +159,12 @@ nm_setting_vpn_get_service_type (NMSettingVPN *setting)
return NM_SETTING_VPN_GET_PRIVATE (setting)->service_type;
}
+/**
+ * nm_setting_vpn_get_user_name:
+ * @setting: the #NMSettingVPN
+ *
+ * Returns: the #NMSettingVPN:user-name property of the setting
+ **/
const char *
nm_setting_vpn_get_user_name (NMSettingVPN *setting)
{
@@ -130,6 +173,16 @@ nm_setting_vpn_get_user_name (NMSettingVPN *setting)
return NM_SETTING_VPN_GET_PRIVATE (setting)->user_name;
}
+/**
+ * nm_setting_vpn_add_data_item:
+ * @setting: the #NMSettingVPN
+ * @key: a name that uniquely identifies the given value @item
+ * @item: the value to be referenced by @key
+ *
+ * Establishes a relationship between @key and @item internally in the
+ * setting which may be retrieved later. Should not be used to store passwords
+ * or other secrets, which is what nm_setting_vpn_add_secret() is for.
+ **/
void
nm_setting_vpn_add_data_item (NMSettingVPN *setting,
const char *key,
@@ -145,6 +198,16 @@ nm_setting_vpn_add_data_item (NMSettingVPN *setting,
g_strdup (key), g_strdup (item));
}
+/**
+ * nm_setting_vpn_get_data_item:
+ * @setting: the #NMSettingVPN
+ * @key: the name of the data item to retrieve
+ *
+ * Retrieves the data item of a key/value relationship previously established
+ * by nm_setting_vpn_add_data_item().
+ *
+ * Returns: the data item, if any
+ **/
const char *
nm_setting_vpn_get_data_item (NMSettingVPN *setting, const char *key)
{
@@ -153,6 +216,14 @@ nm_setting_vpn_get_data_item (NMSettingVPN *setting, const char *key)
return (const char *) g_hash_table_lookup (NM_SETTING_VPN_GET_PRIVATE (setting)->data, key);
}
+/**
+ * nm_setting_vpn_remove_data_item:
+ * @setting: the #NMSettingVPN
+ * @key: the name of the data item to remove
+ *
+ * Deletes a key/value relationship previously established by
+ * nm_setting_vpn_add_data_item().
+ **/
void
nm_setting_vpn_remove_data_item (NMSettingVPN *setting, const char *key)
{
@@ -212,6 +283,15 @@ nm_setting_vpn_foreach_data_item (NMSettingVPN *setting,
foreach_item_helper (NM_SETTING_VPN_GET_PRIVATE (setting)->data, func, user_data);
}
+/**
+ * nm_setting_vpn_add_secret:
+ * @setting: the #NMSettingVPN
+ * @key: a name that uniquely identifies the given secret @secret
+ * @secret: the secret to be referenced by @key
+ *
+ * Establishes a relationship between @key and @secret internally in the
+ * setting which may be retrieved later.
+ **/
void
nm_setting_vpn_add_secret (NMSettingVPN *setting,
const char *key,
@@ -227,6 +307,16 @@ nm_setting_vpn_add_secret (NMSettingVPN *setting,
g_strdup (key), g_strdup (secret));
}
+/**
+ * nm_setting_vpn_get_secret:
+ * @setting: the #NMSettingVPN
+ * @key: the name of the secret to retrieve
+ *
+ * Retrieves the secret of a key/value relationship previously established
+ * by nm_setting_vpn_add_secret().
+ *
+ * Returns: the secret, if any
+ **/
const char *
nm_setting_vpn_get_secret (NMSettingVPN *setting, const char *key)
{
@@ -235,6 +325,14 @@ nm_setting_vpn_get_secret (NMSettingVPN *setting, const char *key)
return (const char *) g_hash_table_lookup (NM_SETTING_VPN_GET_PRIVATE (setting)->secrets, key);
}
+/**
+ * nm_setting_vpn_remove_secret:
+ * @setting: the #NMSettingVPN
+ * @key: the name of the secret to remove
+ *
+ * Deletes a key/value relationship previously established by
+ * nm_setting_vpn_add_secret().
+ **/
void
nm_setting_vpn_remove_secret (NMSettingVPN *setting, const char *key)
{
@@ -451,6 +549,68 @@ need_secrets (NMSetting *setting)
return g_ptr_array_sized_new (1);
}
+static gboolean
+compare_one_secret (NMSettingVPN *a,
+ NMSettingVPN *b,
+ NMSettingCompareFlags flags)
+{
+ GHashTable *a_secrets, *b_secrets;
+ GHashTableIter iter;
+ const char *key, *val;
+
+ a_secrets = NM_SETTING_VPN_GET_PRIVATE (a)->secrets;
+ b_secrets = NM_SETTING_VPN_GET_PRIVATE (b)->secrets;
+
+ g_hash_table_iter_init (&iter, a_secrets);
+ while (g_hash_table_iter_next (&iter, (gpointer) &key, (gpointer) &val)) {
+ NMSettingSecretFlags a_secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+ NMSettingSecretFlags b_secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+
+ nm_setting_get_secret_flags (NM_SETTING (a), key, &a_secret_flags, NULL);
+ nm_setting_get_secret_flags (NM_SETTING (b), key, &b_secret_flags, NULL);
+
+ /* If the secret flags aren't the same, the settings aren't the same */
+ if (a_secret_flags != b_secret_flags)
+ return FALSE;
+
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS)
+ && (a_secret_flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED))
+ continue;
+
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)
+ && (a_secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED))
+ continue;
+
+ /* Now compare the values themselves */
+ if (g_strcmp0 (val, nm_setting_vpn_get_secret (b, key)) != 0)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+compare_property (NMSetting *setting,
+ NMSetting *other,
+ const GParamSpec *prop_spec,
+ NMSettingCompareFlags flags)
+{
+ gboolean same;
+
+ /* We only need to treat the 'secrets' property specially */
+ if (g_strcmp0 (prop_spec->name, NM_SETTING_VPN_SECRETS) != 0)
+ return NM_SETTING_CLASS (nm_setting_vpn_parent_class)->compare_property (setting, other, prop_spec, flags);
+
+ /* Compare A to B to ensure everything in A is found in B */
+ same = compare_one_secret (NM_SETTING_VPN (setting), NM_SETTING_VPN (other), flags);
+ if (same) {
+ /* And then B to A to ensure everything in B is also found in A */
+ same = compare_one_secret (NM_SETTING_VPN (other), NM_SETTING_VPN (setting), flags);
+ }
+
+ return same;
+}
+
static void
destroy_one_secret (gpointer data)
{
@@ -572,6 +732,7 @@ nm_setting_vpn_class_init (NMSettingVPNClass *setting_class)
parent_class->get_secret_flags = get_secret_flags;
parent_class->set_secret_flags = set_secret_flags;
parent_class->need_secrets = need_secrets;
+ parent_class->compare_property = compare_property;
/* Properties */
/**
@@ -595,23 +756,27 @@ nm_setting_vpn_class_init (NMSettingVPNClass *setting_class)
/**
* NMSettinVPN:user-name:
*
- * User name of the currently logged in user for connections provided by the
- * user settings service. This name is provided to the VPN plugin to use in
- * lieu of a custom username provided by that VPN plugins specific
- * configuration. The VPN plugin itself decides which user name to use.
+ * If the VPN connection requires a user name for authentication, that name
+ * should be provided here. If the connection is available to more than
+ * one user, and the VPN requires each user to supply a different name, then
+ * leave this property empty. If this property is empty, NetworkManager
+ * will automatically supply the username of the user which requested the
+ * VPN connection.
**/
g_object_class_install_property
(object_class, PROP_USER_NAME,
g_param_spec_string (NM_SETTING_VPN_USER_NAME,
- "User name",
- "User name of the currently logged in user for "
- "connections provided by the user settings service. "
- "This name is provided to the VPN plugin to use in "
- "lieu of a custom username provided by that VPN "
- "plugins specific configuration. The VPN plugin "
- "itself decides which user name to use.",
- NULL,
- G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+ "User name",
+ "If the VPN connection requires a user name for "
+ "authentication, that name should be provided here. "
+ "If the connection is available to more than one "
+ "user, and the VPN requires each user to supply a "
+ "different name, then leave this property empty. If "
+ "this property is empty, NetworkManager will "
+ "automatically supply the username of the user which "
+ "requested the VPN connection.",
+ NULL,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
/**
* NMSettingVPN:data:
diff --git a/libnm-util/nm-setting-vpn.h b/libnm-util/nm-setting-vpn.h
index 6ff192868..94fd650f3 100644
--- a/libnm-util/nm-setting-vpn.h
+++ b/libnm-util/nm-setting-vpn.h
@@ -39,8 +39,14 @@ G_BEGIN_DECLS
#define NM_SETTING_VPN_SETTING_NAME "vpn"
-typedef enum
-{
+/**
+ * NMSettingVpnError:
+ * @NM_SETTING_VPN_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_VPN_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_VPN_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ */
+typedef enum {
NM_SETTING_VPN_ERROR_UNKNOWN = 0,
NM_SETTING_VPN_ERROR_INVALID_PROPERTY,
NM_SETTING_VPN_ERROR_MISSING_PROPERTY,
@@ -71,6 +77,13 @@ typedef struct {
void (*_reserved4) (void);
} NMSettingVPNClass;
+/**
+ * NMVPNIterFunc:
+ * @key: the name of the data or secret item
+ * @value: the value of the data or secret item
+ * @user_data: User data passed to nm_setting_vpn_foreach_data_item() or
+ * nm_setting_vpn_foreach_secret()
+ **/
typedef void (*NMVPNIterFunc) (const char *key, const char *value, gpointer user_data);
GType nm_setting_vpn_get_type (void);
diff --git a/libnm-util/nm-setting-wimax.c b/libnm-util/nm-setting-wimax.c
index 628c81d35..38a442f62 100644
--- a/libnm-util/nm-setting-wimax.c
+++ b/libnm-util/nm-setting-wimax.c
@@ -27,6 +27,22 @@
#include "nm-setting-wimax.h"
#include "nm-param-spec-specialized.h"
+/**
+ * SECTION:nm-setting-wimax
+ * @short_description: Describes 802.16e Mobile WiMAX connection properties
+ * @include: nm-setting-wimax.h
+ *
+ * The #NMSettingWimax object is a #NMSetting subclass that describes properties
+ * necessary for connection to 802.16e Mobile WiMAX networks.
+ **/
+
+/**
+ * nm_setting_wimax_error_quark:
+ *
+ * Registers an error quark for #NMSettingWimax if necessary.
+ *
+ * Returns: the error quark used for #NMSettingWimax errors.
+ **/
GQuark
nm_setting_wimax_error_quark (void)
{
@@ -78,12 +94,28 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_wimax_new:
+ *
+ * Creates a new #NMSettingWimax object with default values.
+ *
+ * Returns: the new empty #NMSettingWimax object
+ **/
NMSetting *
nm_setting_wimax_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_WIMAX, NULL);
}
+/**
+ * nm_setting_wimax_get_network_name:
+ * @setting: the #NMSettingWimax
+ *
+ * Returns the WiMAX NSP name (ex "Sprint" or "CLEAR") which identifies the
+ * specific WiMAX network this setting describes a connection to.
+ *
+ * Returns: the WiMAX NSP name
+ **/
const char *
nm_setting_wimax_get_network_name (NMSettingWimax *setting)
{
@@ -92,6 +124,15 @@ nm_setting_wimax_get_network_name (NMSettingWimax *setting)
return NM_SETTING_WIMAX_GET_PRIVATE (setting)->network_name;
}
+/**
+ * nm_setting_wimax_get_mac_address:
+ * @setting: the #NMSettingWimax
+ *
+ * Returns the MAC address of a WiMAX device which this connection is locked
+ * to.
+ *
+ * Returns: the MAC address
+ **/
const GByteArray *
nm_setting_wimax_get_mac_address (NMSettingWimax *setting)
{
diff --git a/libnm-util/nm-setting-wimax.h b/libnm-util/nm-setting-wimax.h
index a3e500be5..2462ac06a 100644
--- a/libnm-util/nm-setting-wimax.h
+++ b/libnm-util/nm-setting-wimax.h
@@ -35,8 +35,14 @@ G_BEGIN_DECLS
#define NM_SETTING_WIMAX_SETTING_NAME "wimax"
-typedef enum
-{
+/**
+ * NMSettingWimaxError:
+ * @NM_SETTING_WIMAX_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ */
+typedef enum {
NM_SETTING_WIMAX_ERROR_UNKNOWN = 0,
NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY,
NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY
diff --git a/libnm-util/nm-setting-wired.c b/libnm-util/nm-setting-wired.c
index 8691aeee0..d4e52e031 100644
--- a/libnm-util/nm-setting-wired.c
+++ b/libnm-util/nm-setting-wired.c
@@ -19,7 +19,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2010 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
@@ -27,6 +27,7 @@
#include <ctype.h>
#include <net/ethernet.h>
#include <dbus/dbus-glib.h>
+#include <netinet/ether.h>
#include "nm-setting-wired.h"
#include "nm-param-spec-specialized.h"
@@ -34,6 +35,22 @@
#include "nm-utils-private.h"
#include "nm-dbus-glib-types.h"
+/**
+ * SECTION:nm-setting-wired
+ * @short_description: Describes connection properties for Ethernet-based networks
+ * @include: nm-setting-wired.h
+ *
+ * The #NMSettingWired object is a #NMSetting subclass that describes properties
+ * necessary for connection to Ethernet networks.
+ **/
+
+/**
+ * nm_setting_wired_error_quark:
+ *
+ * Registers an error quark for #NMSettingWired if necessary.
+ *
+ * Returns: the error quark used for #NMSettingWired errors.
+ **/
GQuark
nm_setting_wired_error_quark (void)
{
@@ -79,6 +96,7 @@ typedef struct {
gboolean auto_negotiate;
GByteArray *device_mac_address;
GByteArray *cloned_mac_address;
+ GSList *mac_address_blacklist;
guint32 mtu;
GPtrArray *s390_subchannels;
char *s390_nettype;
@@ -93,6 +111,7 @@ enum {
PROP_AUTO_NEGOTIATE,
PROP_MAC_ADDRESS,
PROP_CLONED_MAC_ADDRESS,
+ PROP_MAC_ADDRESS_BLACKLIST,
PROP_MTU,
PROP_S390_SUBCHANNELS,
PROP_S390_NETTYPE,
@@ -111,12 +130,25 @@ static const char *valid_s390_opts[] = {
NULL
};
+/**
+ * nm_setting_wired_new:
+ *
+ * Creates a new #NMSettingWired object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingWired object
+ **/
NMSetting *
nm_setting_wired_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_WIRED, NULL);
}
+/**
+ * nm_setting_wired_get_port:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:port property of the setting
+ **/
const char *
nm_setting_wired_get_port (NMSettingWired *setting)
{
@@ -125,6 +157,12 @@ nm_setting_wired_get_port (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->port;
}
+/**
+ * nm_setting_wired_get_speed:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:speed property of the setting
+ **/
guint32
nm_setting_wired_get_speed (NMSettingWired *setting)
{
@@ -133,6 +171,12 @@ nm_setting_wired_get_speed (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->speed;
}
+/**
+ * nm_setting_wired_get_duplex:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:duplex property of the setting
+ **/
const char *
nm_setting_wired_get_duplex (NMSettingWired *setting)
{
@@ -141,6 +185,12 @@ nm_setting_wired_get_duplex (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->duplex;
}
+/**
+ * nm_setting_wired_get_auto_negotiate:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:auto-negotiate property of the setting
+ **/
gboolean
nm_setting_wired_get_auto_negotiate (NMSettingWired *setting)
{
@@ -149,6 +199,12 @@ nm_setting_wired_get_auto_negotiate (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->auto_negotiate;
}
+/**
+ * nm_setting_wired_get_mac_address:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:mac-address property of the setting
+ **/
const GByteArray *
nm_setting_wired_get_mac_address (NMSettingWired *setting)
{
@@ -157,6 +213,12 @@ nm_setting_wired_get_mac_address (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->device_mac_address;
}
+/**
+ * nm_setting_wired_get_cloned_mac_address:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:cloned-mac-address property of the setting
+ **/
const GByteArray *
nm_setting_wired_get_cloned_mac_address (NMSettingWired *setting)
{
@@ -165,6 +227,27 @@ nm_setting_wired_get_cloned_mac_address (NMSettingWired *setting)
return NM_SETTING_WIRED_GET_PRIVATE (setting)->cloned_mac_address;
}
+/**
+ * nm_setting_wired_get_mac_address_blacklist:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: (element-type GLib.ByteArray): the #NMSettingWired:mac-address-blacklist
+ * property of the setting
+ **/
+const GSList *
+nm_setting_wired_get_mac_address_blacklist (NMSettingWired *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRED (setting), NULL);
+
+ return NM_SETTING_WIRED_GET_PRIVATE (setting)->mac_address_blacklist;
+}
+
+/**
+ * nm_setting_wired_get_mtu:
+ * @setting: the #NMSettingWired
+ *
+ * Returns: the #NMSettingWired:mtu property of the setting
+ **/
guint32
nm_setting_wired_get_mtu (NMSettingWired *setting)
{
@@ -181,8 +264,8 @@ nm_setting_wired_get_mtu (NMSettingWired *setting)
* connection is applicable to. The connection should only be used in
* conjunction with that device.
*
- * Returns: a #GPtrArray of strings, each specifying one subchannel the
- * s390 device uses to communicate to the host.
+ * Returns: (element-type utf8): #GPtrArray of strings, each specifying one
+ * subchannel the s390 device uses to communicate to the host.
**/
const GPtrArray *
nm_setting_wired_get_s390_subchannels (NMSettingWired *setting)
@@ -232,10 +315,10 @@ nm_setting_wired_get_num_s390_options (NMSettingWired *setting)
* @setting: the #NMSettingWired
* @idx: index of the desired option, from 0 to
* nm_setting_wired_get_num_s390_options() - 1
- * @out_key: on return, the key name of the s390 specific option; this value is
- * owned by the setting and should not be modified
- * @out_value: on return, the value of the key of the s390 specific option; this
+ * @out_key: (out): on return, the key name of the s390 specific option; this
* value is owned by the setting and should not be modified
+ * @out_value: (out): on return, the value of the key of the s390 specific
+ * option; this value is owned by the setting and should not be modified
*
* Given an index, return the value of the s390 option at that index. indexes
* are *not* guaranteed to be static across modifications to options done by
@@ -363,6 +446,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
const char *valid_duplex[] = { "half", "full", NULL };
const char *valid_nettype[] = { "qeth", "lcs", "ctc", NULL };
GHashTableIter iter;
+ GSList* mac_blacklist_iter;
const char *key, *value;
if (priv->port && !_nm_utils_string_in_list (priv->port, valid_ports)) {
@@ -389,6 +473,19 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
return FALSE;
}
+ for (mac_blacklist_iter = priv->mac_address_blacklist; mac_blacklist_iter;
+ mac_blacklist_iter = mac_blacklist_iter->next) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (mac_blacklist_iter->data, &addr)) {
+ g_set_error (error,
+ NM_SETTING_WIRED_ERROR,
+ NM_SETTING_WIRED_ERROR_INVALID_PROPERTY,
+ NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST);
+ return FALSE;
+ }
+ }
+
if ( priv->s390_subchannels
&& !(priv->s390_subchannels->len == 3 || priv->s390_subchannels->len == 2)) {
g_set_error (error,
@@ -456,6 +553,8 @@ finalize (GObject *object)
if (priv->cloned_mac_address)
g_byte_array_free (priv->cloned_mac_address, TRUE);
+ nm_utils_slist_free (priv->mac_address_blacklist, g_free);
+
G_OBJECT_CLASS (nm_setting_wired_parent_class)->finalize (object);
}
@@ -497,6 +596,10 @@ set_property (GObject *object, guint prop_id,
g_byte_array_free (priv->cloned_mac_address, TRUE);
priv->cloned_mac_address = g_value_dup_boxed (value);
break;
+ case PROP_MAC_ADDRESS_BLACKLIST:
+ nm_utils_slist_free (priv->mac_address_blacklist, g_free);
+ priv->mac_address_blacklist = g_value_dup_boxed (value);
+ break;
case PROP_MTU:
priv->mtu = g_value_get_uint (value);
break;
@@ -550,6 +653,9 @@ get_property (GObject *object, guint prop_id,
case PROP_CLONED_MAC_ADDRESS:
g_value_set_boxed (value, nm_setting_wired_get_cloned_mac_address (setting));
break;
+ case PROP_MAC_ADDRESS_BLACKLIST:
+ g_value_set_boxed (value, nm_setting_wired_get_mac_address_blacklist (setting));
+ break;
case PROP_MTU:
g_value_set_uint (value, nm_setting_wired_get_mtu (setting));
break;
@@ -685,6 +791,25 @@ nm_setting_wired_class_init (NMSettingWiredClass *setting_class)
"This is known as MAC cloning or spoofing.",
DBUS_TYPE_G_UCHAR_ARRAY,
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
+
+ /**
+ * NMSettingWired:mac-address-blacklist:
+ *
+ * If specified, this connection will never apply to the ethernet device
+ * whose permanent MAC address matches an address in the list. Each
+ * MAC address is in the standard hex-digits-and-colons notation
+ * (00:11:22:33:44:55).
+ **/
+ g_object_class_install_property
+ (object_class, PROP_MAC_ADDRESS_BLACKLIST,
+ _nm_param_spec_specialized (NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST,
+ "MAC Address Blacklist",
+ "If specified, this connection will never apply to "
+ "the ethernet device whose permanent MAC address matches "
+ "an address in the list. Each MAC address is in the "
+ "standard hex-digits-and-colons notation (00:11:22:33:44:55).",
+ DBUS_TYPE_G_LIST_OF_STRING,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE | NM_SETTING_PARAM_FUZZY_IGNORE));
/**
* NMSettingWired:mtu:
diff --git a/libnm-util/nm-setting-wired.h b/libnm-util/nm-setting-wired.h
index 32361b4bc..36799fbe8 100644
--- a/libnm-util/nm-setting-wired.h
+++ b/libnm-util/nm-setting-wired.h
@@ -19,7 +19,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2010 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
@@ -39,8 +39,14 @@ G_BEGIN_DECLS
#define NM_SETTING_WIRED_SETTING_NAME "802-3-ethernet"
-typedef enum
-{
+/**
+ * NMSettingWiredError:
+ * @NM_SETTING_WIRED_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_WIRED_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_WIRED_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ */
+typedef enum {
NM_SETTING_WIRED_ERROR_UNKNOWN = 0,
NM_SETTING_WIRED_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRED_ERROR_MISSING_PROPERTY
@@ -58,6 +64,7 @@ GQuark nm_setting_wired_error_quark (void);
#define NM_SETTING_WIRED_AUTO_NEGOTIATE "auto-negotiate"
#define NM_SETTING_WIRED_MAC_ADDRESS "mac-address"
#define NM_SETTING_WIRED_CLONED_MAC_ADDRESS "cloned-mac-address"
+#define NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST "mac-address-blacklist"
#define NM_SETTING_WIRED_MTU "mtu"
#define NM_SETTING_WIRED_S390_SUBCHANNELS "s390-subchannels"
#define NM_SETTING_WIRED_S390_NETTYPE "s390-nettype"
@@ -86,6 +93,7 @@ const char * nm_setting_wired_get_duplex (NMSettingWired *setting
gboolean nm_setting_wired_get_auto_negotiate (NMSettingWired *setting);
const GByteArray *nm_setting_wired_get_mac_address (NMSettingWired *setting);
const GByteArray *nm_setting_wired_get_cloned_mac_address (NMSettingWired *setting);
+const GSList *nm_setting_wired_get_mac_address_blacklist (NMSettingWired *setting);
guint32 nm_setting_wired_get_mtu (NMSettingWired *setting);
const GPtrArray * nm_setting_wired_get_s390_subchannels (NMSettingWired *setting);
diff --git a/libnm-util/nm-setting-wireless-security.c b/libnm-util/nm-setting-wireless-security.c
index 3b4eba6f7..cb9a60810 100644
--- a/libnm-util/nm-setting-wireless-security.c
+++ b/libnm-util/nm-setting-wireless-security.c
@@ -35,6 +35,36 @@
#include "nm-utils-private.h"
#include "nm-setting-private.h"
+/**
+ * SECTION:nm-setting-wireless-security
+ * @short_description: Describes connection properties for WiFi networks that
+ * use WEP, LEAP, WPA or WPA2/RSN security
+ * @include: nm-setting-wireless-security.h
+ *
+ * The #NMSettingWirelessSecurity object is a #NMSetting subclass that describes
+ * properties necessary for connection to encrypted WiFi networks.
+ *
+ * It's a good idea to read up on wpa_supplicant configuration before using this
+ * setting extensively, since most of the options here correspond closely with
+ * the relevant wpa_supplicant configuration options. To get a better overview
+ * of how WiFi security works, you may want to get copies of the following books.
+ *
+ * 802.11 Wireless Networks: The Definitive Guide, Second Edition
+ * Author: Matthew Gast
+ * ISBN: 978-0596100520
+ *
+ * Cisco Wireless LAN Security
+ * Authors: Krishna Sankar, Sri Sundaralingam, Darrin Miller, and Andrew Balinsky
+ * ISBN: 978-1587051548
+ **/
+
+/**
+ * nm_setting_wired_error_quark:
+ *
+ * Registers an error quark for #NMSettingWired if necessary.
+ *
+ * Returns: the error quark used for #NMSettingWired errors.
+ **/
GQuark
nm_setting_wireless_security_error_quark (void)
{
@@ -130,12 +160,25 @@ enum {
LAST_PROP
};
+/**
+ * nm_setting_wireless_security_new:
+ *
+ * Creates a new #NMSettingWirelessSecurity object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingWirelessSecurity object
+ **/
NMSetting *
nm_setting_wireless_security_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_WIRELESS_SECURITY, NULL);
}
+/**
+ * nm_setting_wireless_security_get_key_mgmt:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:key-mgmt property of the setting
+ **/
const char *
nm_setting_wireless_security_get_key_mgmt (NMSettingWirelessSecurity *setting)
{
@@ -144,6 +187,13 @@ nm_setting_wireless_security_get_key_mgmt (NMSettingWirelessSecurity *setting)
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->key_mgmt;
}
+/**
+ * nm_setting_wireless_security_get_num_protos:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the number of security protocols this connection allows when
+ * connecting to secure WiFi networks
+ **/
guint32
nm_setting_wireless_security_get_num_protos (NMSettingWirelessSecurity *setting)
{
@@ -152,6 +202,13 @@ nm_setting_wireless_security_get_num_protos (NMSettingWirelessSecurity *setting)
return g_slist_length (NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->proto);
}
+/**
+ * nm_setting_wireless_security_get_proto:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: an index into the protocol list
+ *
+ * Returns: the protocol at index @i
+ **/
const char *
nm_setting_wireless_security_get_proto (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -165,6 +222,21 @@ nm_setting_wireless_security_get_proto (NMSettingWirelessSecurity *setting, guin
return (const char *) g_slist_nth_data (priv->proto, i);
}
+/**
+ * nm_setting_wireless_security_add_proto:
+ * @setting: the #NMSettingWirelessSecurity
+ * @proto: the protocol to add, one of "wpa" or "rsn"
+ *
+ * Adds a WiFi security protocol (one of "wpa" or "rsn") to the allowed list;
+ * only protocols in this list will be used when finding and connecting to
+ * the WiFi network specified by this connection. For example, if the
+ * protocol list contains only "wpa" but the access point for the SSID specified
+ * by this connection only supports WPA2/RSN, the connection cannot be used
+ * with the access point.
+ *
+ * Returns: %TRUE if the protocol was new and and was added to the allowed
+ * protocol list, or %FALSE if it was already in the list
+ **/
gboolean
nm_setting_wireless_security_add_proto (NMSettingWirelessSecurity *setting, const char *proto)
{
@@ -176,7 +248,7 @@ nm_setting_wireless_security_add_proto (NMSettingWirelessSecurity *setting, cons
priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting);
for (iter = priv->proto; iter; iter = g_slist_next (iter)) {
- if (!strcmp (proto, (char *) iter->data))
+ if (strcasecmp (proto, (char *) iter->data) == 0)
return FALSE;
}
@@ -184,6 +256,13 @@ nm_setting_wireless_security_add_proto (NMSettingWirelessSecurity *setting, cons
return TRUE;
}
+/**
+ * nm_setting_wireless_security_remove_proto:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: index of the protocol to remove
+ *
+ * Removes a protocol from the allowed protocol list.
+ **/
void
nm_setting_wireless_security_remove_proto (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -200,6 +279,13 @@ nm_setting_wireless_security_remove_proto (NMSettingWirelessSecurity *setting, g
priv->proto = g_slist_delete_link (priv->proto, elt);
}
+/**
+ * nm_setting_wireless_security_clear_protos:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Removes all protocols from the allowed list. If there are no protocols
+ * specified then all protocols are allowed.
+ **/
void
nm_setting_wireless_security_clear_protos (NMSettingWirelessSecurity *setting)
{
@@ -212,6 +298,12 @@ nm_setting_wireless_security_clear_protos (NMSettingWirelessSecurity *setting)
priv->proto = NULL;
}
+/**
+ * nm_setting_wireless_security_get_num_pairwise:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the number of pairwise encryption algorithms in the allowed list
+ **/
guint32
nm_setting_wireless_security_get_num_pairwise (NMSettingWirelessSecurity *setting)
{
@@ -220,6 +312,16 @@ nm_setting_wireless_security_get_num_pairwise (NMSettingWirelessSecurity *settin
return g_slist_length (NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->pairwise);
}
+/**
+ * nm_setting_wireless_security_get_pairwise:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: index of an item in the allowed pairwise encryption algorithm list
+ *
+ * Returns the allowed pairwise encryption algorithm from allowed algorithm
+ * list.
+ *
+ * Returns: the pairwise encryption algorithm at index @i
+ **/
const char *
nm_setting_wireless_security_get_pairwise (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -233,6 +335,20 @@ nm_setting_wireless_security_get_pairwise (NMSettingWirelessSecurity *setting, g
return (const char *) g_slist_nth_data (priv->pairwise, i);
}
+/**
+ * nm_setting_wireless_security_add_pairwise:
+ * @setting: the #NMSettingWirelessSecurity
+ * @pairwise: the encryption algorithm to add, one of "wep40", "wep104",
+ * "tkip", or "ccmp"
+ *
+ * Adds an encryption algorithm to the list of allowed pairwise encryption
+ * algorithms. If the list is not empty, then only access points that support
+ * one or more of the encryption algorithms in the list will be considered
+ * compatible with this connection.
+ *
+ * Returns: %TRUE if the algorithm was added to the list, %FALSE if it was
+ * already in the list
+ **/
gboolean
nm_setting_wireless_security_add_pairwise (NMSettingWirelessSecurity *setting, const char *pairwise)
{
@@ -244,7 +360,7 @@ nm_setting_wireless_security_add_pairwise (NMSettingWirelessSecurity *setting, c
priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting);
for (iter = priv->pairwise; iter; iter = g_slist_next (iter)) {
- if (!strcmp (pairwise, (char *) iter->data))
+ if (strcasecmp (pairwise, (char *) iter->data) == 0)
return FALSE;
}
@@ -252,6 +368,14 @@ nm_setting_wireless_security_add_pairwise (NMSettingWirelessSecurity *setting, c
return TRUE;
}
+/**
+ * nm_setting_wireless_security_remove_pairwise:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: the index of an item in the allowed pairwise encryption algorithm list
+ *
+ * Removes an encryption algorithm from the allowed pairwise encryption
+ * algorithm list.
+ **/
void
nm_setting_wireless_security_remove_pairwise (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -268,6 +392,13 @@ nm_setting_wireless_security_remove_pairwise (NMSettingWirelessSecurity *setting
priv->pairwise = g_slist_delete_link (priv->pairwise, elt);
}
+/**
+ * nm_setting_wireless_security_clear_pairwise:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Removes all algorithms from the allowed list. If there are no algorithms
+ * specified then all pairwise encryption algorithms are allowed.
+ **/
void
nm_setting_wireless_security_clear_pairwise (NMSettingWirelessSecurity *setting)
{
@@ -280,6 +411,12 @@ nm_setting_wireless_security_clear_pairwise (NMSettingWirelessSecurity *setting)
priv->pairwise = NULL;
}
+/**
+ * nm_setting_wireless_security_get_num_groups:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the number of groupwise encryption algorithms in the allowed list
+ **/
guint32
nm_setting_wireless_security_get_num_groups (NMSettingWirelessSecurity *setting)
{
@@ -288,6 +425,16 @@ nm_setting_wireless_security_get_num_groups (NMSettingWirelessSecurity *setting)
return g_slist_length (NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->group);
}
+/**
+ * nm_setting_wireless_security_get_group:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: index of an item in the allowed groupwise encryption algorithm list
+ *
+ * Returns the allowed groupwise encryption algorithm from allowed algorithm
+ * list.
+ *
+ * Returns: the groupwise encryption algorithm at index @i
+ **/
const char *
nm_setting_wireless_security_get_group (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -301,6 +448,20 @@ nm_setting_wireless_security_get_group (NMSettingWirelessSecurity *setting, guin
return (const char *) g_slist_nth_data (priv->group, i);
}
+/**
+ * nm_setting_wireless_security_add_group:
+ * @setting: the #NMSettingWirelessSecurity
+ * @group: the encryption algorithm to add, one of "wep40", "wep104",
+ * "tkip", or "ccmp"
+ *
+ * Adds an encryption algorithm to the list of allowed groupwise encryption
+ * algorithms. If the list is not empty, then only access points that support
+ * one or more of the encryption algorithms in the list will be considered
+ * compatible with this connection.
+ *
+ * Returns: %TRUE if the algorithm was added to the list, %FALSE if it was
+ * already in the list
+ **/
gboolean
nm_setting_wireless_security_add_group (NMSettingWirelessSecurity *setting, const char *group)
{
@@ -312,7 +473,7 @@ nm_setting_wireless_security_add_group (NMSettingWirelessSecurity *setting, cons
priv = NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting);
for (iter = priv->group; iter; iter = g_slist_next (iter)) {
- if (!strcmp (group, (char *) iter->data))
+ if (strcasecmp (group, (char *) iter->data) == 0)
return FALSE;
}
@@ -320,6 +481,14 @@ nm_setting_wireless_security_add_group (NMSettingWirelessSecurity *setting, cons
return TRUE;
}
+/**
+ * nm_setting_wireless_security_remove_group:
+ * @setting: the #NMSettingWirelessSecurity
+ * @i: the index of an item in the allowed groupwise encryption algorithm list
+ *
+ * Removes an encryption algorithm from the allowed groupwise encryption
+ * algorithm list.
+ **/
void
nm_setting_wireless_security_remove_group (NMSettingWirelessSecurity *setting, guint32 i)
{
@@ -336,6 +505,13 @@ nm_setting_wireless_security_remove_group (NMSettingWirelessSecurity *setting, g
priv->group = g_slist_delete_link (priv->group, elt);
}
+/**
+ * nm_setting_wireless_security_clear_groups:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Removes all algorithms from the allowed list. If there are no algorithms
+ * specified then all groupwise encryption algorithms are allowed.
+ **/
void
nm_setting_wireless_security_clear_groups (NMSettingWirelessSecurity *setting)
{
@@ -348,6 +524,12 @@ nm_setting_wireless_security_clear_groups (NMSettingWirelessSecurity *setting)
priv->group = NULL;
}
+/**
+ * nm_setting_wireless_security_get_psk:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:psk property of the setting
+ **/
const char *
nm_setting_wireless_security_get_psk (NMSettingWirelessSecurity *setting)
{
@@ -371,6 +553,12 @@ nm_setting_wireless_security_get_psk_flags (NMSettingWirelessSecurity *setting)
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->psk_flags;
}
+/**
+ * nm_setting_wireless_security_get_leap_username:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:leap-username property of the setting
+ **/
const char *
nm_setting_wireless_security_get_leap_username (NMSettingWirelessSecurity *setting)
{
@@ -379,6 +567,12 @@ nm_setting_wireless_security_get_leap_username (NMSettingWirelessSecurity *setti
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->leap_username;
}
+/**
+ * nm_setting_wireless_security_get_leap_password:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:leap-password property of the setting
+ **/
const char *
nm_setting_wireless_security_get_leap_password (NMSettingWirelessSecurity *setting)
{
@@ -402,6 +596,13 @@ nm_setting_wireless_security_get_leap_password_flags (NMSettingWirelessSecurity
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->leap_password_flags;
}
+/**
+ * nm_setting_wireless_security_get_wep_key:
+ * @setting: the #NMSettingWirelessSecurity
+ * @idx: the WEP key index (0..3 inclusive)
+ *
+ * Returns: the WEP key at the given index
+ **/
const char *
nm_setting_wireless_security_get_wep_key (NMSettingWirelessSecurity *setting, guint32 idx)
{
@@ -424,6 +625,16 @@ nm_setting_wireless_security_get_wep_key (NMSettingWirelessSecurity *setting, gu
return NULL;
}
+/**
+ * nm_setting_wireless_security_set_wep_key:
+ * @setting: the #NMSettingWirelessSecurity
+ * @idx: the index of the key (0..3 inclusive)
+ * @key: the WEP key as a string, in either hexadecimal, ASCII, or passphrase
+ * form as determiend by the value of the #NMSettingWirelessSecurity:wep-key-type
+ * property.
+ *
+ * Sets a WEP key in the given index.
+ **/
void
nm_setting_wireless_security_set_wep_key (NMSettingWirelessSecurity *setting, guint32 idx, const char *key)
{
@@ -455,6 +666,12 @@ nm_setting_wireless_security_set_wep_key (NMSettingWirelessSecurity *setting, gu
}
}
+/**
+ * nm_setting_wireless_security_get_wep_tx_keyidx:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:wep-tx-keyidx property of the setting
+ **/
guint32
nm_setting_wireless_security_get_wep_tx_keyidx (NMSettingWirelessSecurity *setting)
{
@@ -463,6 +680,12 @@ nm_setting_wireless_security_get_wep_tx_keyidx (NMSettingWirelessSecurity *setti
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->wep_tx_keyidx;
}
+/**
+ * nm_setting_wireless_security_get_auth_alg:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:auth-alg property of the setting
+ **/
const char *
nm_setting_wireless_security_get_auth_alg (NMSettingWirelessSecurity *setting)
{
@@ -485,6 +708,12 @@ nm_setting_wireless_security_get_wep_key_flags (NMSettingWirelessSecurity *setti
return NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE (setting)->wep_key_flags;
}
+/**
+ * nm_setting_wireless_security_get_wep_key_type:
+ * @setting: the #NMSettingWirelessSecurity
+ *
+ * Returns: the #NMSettingWirelessSecurity:wep-key-type property of the setting
+ **/
NMWepKeyType
nm_setting_wireless_security_get_wep_key_type (NMSettingWirelessSecurity *setting)
{
@@ -1353,9 +1582,8 @@ nm_setting_wireless_security_class_init (NMSettingWirelessSecurityClass *setting
/**
* NMSettingWirelessSecurity:wep-key-type:
*
- * Controls the interpretation of WEP keys. Allowed values are 1 (interpret
- * WEP keys as hexadecimal or ASCII keys) or 2 (interpret WEP keys as WEP
- * Passphrases). If set to 1 and the keys are hexadecimal, they must be
+ * Controls the interpretation of WEP keys. Allowed values are those given
+ * by %NMWepKeyType. If set to 1 and the keys are hexadecimal, they must be
* either 10 or 26 characters in length. If set to 1 and the keys are
* ASCII keys, they must be either 5 or 13 characters in length. If set to
* 2, the passphrase is hashed using the de-facto MD5 method to derive the
diff --git a/libnm-util/nm-setting-wireless-security.h b/libnm-util/nm-setting-wireless-security.h
index 743e161f0..5f23893aa 100644
--- a/libnm-util/nm-setting-wireless-security.h
+++ b/libnm-util/nm-setting-wireless-security.h
@@ -39,8 +39,23 @@ G_BEGIN_DECLS
#define NM_SETTING_WIRELESS_SECURITY_SETTING_NAME "802-11-wireless-security"
-typedef enum
-{
+/**
+ * NMSettingWirelessSecurityError:
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY: the property was
+ * missing and is required
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_802_1X_SETTING: a property contained
+ * a value that requires the connection to contain a #NMSetting8021x setting
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_802_1X: LEAP authentication
+ * was specified but key management was not set to "8021x"
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_LEAP_REQUIRES_USERNAME: LEAP authentication
+ * was specified but no LEAP username was given
+ * @NM_SETTING_WIRELESS_SECURITY_ERROR_SHARED_KEY_REQUIRES_WEP: Shared Key
+ * authentication was specified but the setting did not specify WEP as the
+ * encryption protocol
+ */
+typedef enum {
NM_SETTING_WIRELESS_SECURITY_ERROR_UNKNOWN = 0,
NM_SETTING_WIRELESS_SECURITY_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRELESS_SECURITY_ERROR_MISSING_PROPERTY,
@@ -56,6 +71,29 @@ GType nm_setting_wireless_security_error_get_type (void);
#define NM_SETTING_WIRELESS_SECURITY_ERROR nm_setting_wireless_security_error_quark ()
GQuark nm_setting_wireless_security_error_quark (void);
+/**
+ * NMWepKeyType:
+ * @NM_WEP_KEY_TYPE_UNKNOWN: unknown WEP key type
+ * @NM_WEP_KEY_TYPE_KEY: indicates a hexadecimal or ASCII formatted WEP key.
+ * Hex keys are either 10 or 26 hexadecimal characters (ie "5f782f2f5f" or
+ * "732f2d712e4a394a375d366931"), while ASCII keys are either 5 or 13 ASCII
+ * characters (ie "abcde" or "blahblah99$*1").
+ * @NM_WEP_KEY_TYPE_PASSPHRASE: indicates a WEP passphrase (ex "I bought a duck
+ * on my way back from the market 235Q&^%^*%") instead of a hexadecimal or ASCII
+ * key. Passphrases are between 8 and 64 characters inclusive and are hashed
+ * the actual WEP key using the MD5 hash algorithm.
+ * @NM_WEP_KEY_TYPE_LAST: placeholder value for bounds-checking
+ *
+ * The #NMWepKeyType values specify how any WEP keys present in the setting
+ * are intepreted. There are no standards governing how to hash the various WEP
+ * key/passphrase formats into the actual WEP key. Unfortunately some WEP keys
+ * can be interpreted in multiple ways, requring the setting to specify how to
+ * interpret the any WEP keys. For example, the key "732f2d712e4a394a375d366931"
+ * is both a valid Hexadecimal WEP key and a WEP passphrase. Further, many
+ * ASCII keys are also valid WEP passphrases, but since passphrases and ASCII
+ * keys are hashed differently to determine the actual WEP key the type must be
+ * specified.
+ */
typedef enum {
NM_WEP_KEY_TYPE_UNKNOWN = 0,
NM_WEP_KEY_TYPE_KEY = 1, /* Hex or ASCII */
diff --git a/libnm-util/nm-setting-wireless.c b/libnm-util/nm-setting-wireless.c
index 1e243f0f4..37ad07ab5 100644
--- a/libnm-util/nm-setting-wireless.c
+++ b/libnm-util/nm-setting-wireless.c
@@ -19,7 +19,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2010 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
@@ -37,6 +37,22 @@
#include "nm-dbus-glib-types.h"
#include "nm-utils-private.h"
+/**
+ * SECTION:nm-setting-wireless
+ * @short_description: Describes connection properties for 802.11 WiFi networks
+ * @include: nm-setting-wireless.h
+ *
+ * The #NMSettingWireless object is a #NMSetting subclass that describes properties
+ * necessary for connection to 802.11 WiFi networks.
+ **/
+
+/**
+ * nm_setting_wireless_error_quark:
+ *
+ * Registers an error quark for #NMSettingWireless if necessary.
+ *
+ * Returns: the error quark used for #NMSettingWireless errors.
+ **/
GQuark
nm_setting_wireless_error_quark (void)
{
@@ -89,6 +105,7 @@ typedef struct {
guint32 tx_power;
GByteArray *device_mac_address;
GByteArray *cloned_mac_address;
+ GSList *mac_address_blacklist;
guint32 mtu;
GSList *seen_bssids;
char *security;
@@ -105,6 +122,7 @@ enum {
PROP_TX_POWER,
PROP_MAC_ADDRESS,
PROP_CLONED_MAC_ADDRESS,
+ PROP_MAC_ADDRESS_BLACKLIST,
PROP_MTU,
PROP_SEEN_BSSIDS,
PROP_SEC,
@@ -128,6 +146,27 @@ match_cipher (const char *cipher,
return TRUE;
}
+/**
+ * nm_setting_wireless_ap_security_compatible:
+ * @s_wireless: a #NMSettingWireless
+ * @s_wireless_sec: a #NMSettingWirelessSecurity or %NULL
+ * @ap_flags: the %NM80211ApFlags of the given access point
+ * @ap_wpa: the %NM80211ApSecurityFlags of the given access point's WPA
+ * capabilities
+ * @ap_rsn: the %NM80211ApSecurityFlags of the given access point's WPA2/RSN
+ * capabilities
+ * @ap_mode: the 802.11 mode of the AP, either Ad-Hoc or Infrastructure
+ *
+ * Given a #NMSettingWireless and an optional #NMSettingWirelessSecurity,
+ * determine if the configuration given by the settings is compatible with
+ * the security of an access point using that access point's capability flags
+ * and mode. Useful for clients that wish to filter a set of connections
+ * against a set of access points and determine which connections are
+ * compatible with which access points.
+ *
+ * Returns: %TRUE if the given settings are compatible with the access point's
+ * security flags and mode, %FALSE if they are not.
+ */
gboolean
nm_setting_wireless_ap_security_compatible (NMSettingWireless *s_wireless,
NMSettingWirelessSecurity *s_wireless_sec,
@@ -289,12 +328,25 @@ nm_setting_wireless_ap_security_compatible (NMSettingWireless *s_wireless,
return FALSE;
}
+/**
+ * nm_setting_wireless_new:
+ *
+ * Creates a new #NMSettingWireless object with default values.
+ *
+ * Returns: (transfer full): the new empty #NMSettingWireless object
+ **/
NMSetting *
nm_setting_wireless_new (void)
{
return (NMSetting *) g_object_new (NM_TYPE_SETTING_WIRELESS, NULL);
}
+/**
+ * nm_setting_wireless_get_ssid:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:ssid property of the setting
+ **/
const GByteArray *
nm_setting_wireless_get_ssid (NMSettingWireless *setting)
{
@@ -303,6 +355,12 @@ nm_setting_wireless_get_ssid (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->ssid;
}
+/**
+ * nm_setting_wireless_get_mode:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:mode property of the setting
+ **/
const char *
nm_setting_wireless_get_mode (NMSettingWireless *setting)
{
@@ -311,6 +369,12 @@ nm_setting_wireless_get_mode (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mode;
}
+/**
+ * nm_setting_wireless_get_band:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:band property of the setting
+ **/
const char *
nm_setting_wireless_get_band (NMSettingWireless *setting)
{
@@ -319,6 +383,12 @@ nm_setting_wireless_get_band (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->band;
}
+/**
+ * nm_setting_wireless_get_channel:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:channel property of the setting
+ **/
guint32
nm_setting_wireless_get_channel (NMSettingWireless *setting)
{
@@ -327,6 +397,12 @@ nm_setting_wireless_get_channel (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->channel;
}
+/**
+ * nm_setting_wireless_get_bssid:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:bssid property of the setting
+ **/
const GByteArray *
nm_setting_wireless_get_bssid (NMSettingWireless *setting)
{
@@ -335,6 +411,12 @@ nm_setting_wireless_get_bssid (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->bssid;
}
+/**
+ * nm_setting_wireless_get_rate:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:rate property of the setting
+ **/
guint32
nm_setting_wireless_get_rate (NMSettingWireless *setting)
{
@@ -343,6 +425,12 @@ nm_setting_wireless_get_rate (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->rate;
}
+/**
+ * nm_setting_wireless_get_tx_power:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:tx-power property of the setting
+ **/
guint32
nm_setting_wireless_get_tx_power (NMSettingWireless *setting)
{
@@ -351,6 +439,12 @@ nm_setting_wireless_get_tx_power (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->tx_power;
}
+/**
+ * nm_setting_wireless_get_mac_address:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:mac-address property of the setting
+ **/
const GByteArray *
nm_setting_wireless_get_mac_address (NMSettingWireless *setting)
{
@@ -359,6 +453,12 @@ nm_setting_wireless_get_mac_address (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->device_mac_address;
}
+/**
+ * nm_setting_wireless_get_cloned_mac_address:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:cloned-mac-address property of the setting
+ **/
const GByteArray *
nm_setting_wireless_get_cloned_mac_address (NMSettingWireless *setting)
{
@@ -367,6 +467,27 @@ nm_setting_wireless_get_cloned_mac_address (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->cloned_mac_address;
}
+/**
+ * nm_setting_wireless_get_mac_address_blacklist:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: (element-type GLib.ByteArray): the
+ * #NMSettingWireless:mac-address-blacklist property of the setting
+ **/
+const GSList *
+nm_setting_wireless_get_mac_address_blacklist (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mac_address_blacklist;
+}
+
+/**
+ * nm_setting_wireless_get_mtu:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:mtu property of the setting
+ **/
guint32
nm_setting_wireless_get_mtu (NMSettingWireless *setting)
{
@@ -375,6 +496,12 @@ nm_setting_wireless_get_mtu (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mtu;
}
+/**
+ * nm_setting_wireless_get_security:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the #NMSettingWireless:security property of the setting
+ **/
const char *
nm_setting_wireless_get_security (NMSettingWireless *setting)
{
@@ -383,6 +510,17 @@ nm_setting_wireless_get_security (NMSettingWireless *setting)
return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->security;
}
+/**
+ * nm_setting_wireless_add_seen_bssid:
+ * @setting: the #NMSettingWireless
+ * @bssid: the new BSSID to add to the list
+ *
+ * Adds a new WiFi AP's BSSID to the previously seen BSSID list of the setting.
+ * NetworkManager tracks previously seen BSSIDs internally so this function
+ * no longer has much use.
+ *
+ * Returns: %TRUE if @bssid was already known, %FALSE if not
+ **/
gboolean
nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
const char *bssid)
@@ -416,6 +554,12 @@ nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
return !found;
}
+/**
+ * nm_setting_wireless_get_num_seen_bssids:
+ * @setting: the #NMSettingWireless
+ *
+ * Returns: the number of BSSIDs in the previously seen BSSID list
+ **/
guint32
nm_setting_wireless_get_num_seen_bssids (NMSettingWireless *setting)
{
@@ -424,6 +568,13 @@ nm_setting_wireless_get_num_seen_bssids (NMSettingWireless *setting)
return g_slist_length (NM_SETTING_WIRELESS_GET_PRIVATE (setting)->seen_bssids);
}
+/**
+ * nm_setting_wireless_get_seen_bssid:
+ * @setting: the #NMSettingWireless
+ * @i: index of a BSSID in the previously seen BSSID list
+ *
+ * Returns: the BSSID at index @i
+ **/
const char *
nm_setting_wireless_get_seen_bssid (NMSettingWireless *setting,
guint32 i)
@@ -524,6 +675,18 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
return FALSE;
}
+ for (iter = priv->mac_address_blacklist; iter; iter = iter->next) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (iter->data, &addr)) {
+ g_set_error (error,
+ NM_SETTING_WIRELESS_ERROR,
+ NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
+ NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST);
+ return FALSE;
+ }
+ }
+
for (iter = priv->seen_bssids; iter; iter = iter->next) {
struct ether_addr addr;
@@ -571,7 +734,7 @@ finalize (GObject *object)
g_byte_array_free (priv->device_mac_address, TRUE);
if (priv->cloned_mac_address)
g_byte_array_free (priv->cloned_mac_address, TRUE);
-
+ nm_utils_slist_free (priv->mac_address_blacklist, g_free);
nm_utils_slist_free (priv->seen_bssids, g_free);
G_OBJECT_CLASS (nm_setting_wireless_parent_class)->finalize (object);
@@ -621,6 +784,10 @@ set_property (GObject *object, guint prop_id,
g_byte_array_free (priv->cloned_mac_address, TRUE);
priv->cloned_mac_address = g_value_dup_boxed (value);
break;
+ case PROP_MAC_ADDRESS_BLACKLIST:
+ nm_utils_slist_free (priv->mac_address_blacklist, g_free);
+ priv->mac_address_blacklist = g_value_dup_boxed (value);
+ break;
case PROP_MTU:
priv->mtu = g_value_get_uint (value);
break;
@@ -672,6 +839,9 @@ get_property (GObject *object, guint prop_id,
case PROP_CLONED_MAC_ADDRESS:
g_value_set_boxed (value, nm_setting_wireless_get_cloned_mac_address (setting));
break;
+ case PROP_MAC_ADDRESS_BLACKLIST:
+ g_value_set_boxed (value, nm_setting_wireless_get_mac_address_blacklist (setting));
+ break;
case PROP_MTU:
g_value_set_uint (value, nm_setting_wireless_get_mtu (setting));
break;
@@ -869,31 +1039,41 @@ nm_setting_wireless_class_init (NMSettingWirelessClass *setting_class)
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
/**
+ * NMSettingWireless:mac-address-blacklist:
+ *
+ * If specified, this connection will never apply to the WiFi device
+ * whose permanent MAC address matches an address in the list. Each
+ * MAC address is in the standard hex-digits-and-colons notation.
+ * (00:11:22:33:44:55).
+ **/
+ g_object_class_install_property
+ (object_class, PROP_MAC_ADDRESS_BLACKLIST,
+ _nm_param_spec_specialized (NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST,
+ "MAC Address Blacklist",
+ "If specified, this connection will never apply to "
+ "the WiFi device whose permanent MAC address matches "
+ "an address in the list. Each MAC address is in the "
+ "standard hex-digits-and-colons notation (00:11:22:33:44:55).",
+ DBUS_TYPE_G_LIST_OF_STRING,
+ G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE | NM_SETTING_PARAM_FUZZY_IGNORE));
+
+ /**
* NMSettingWireless:seen-bssids:
*
* A list of BSSIDs (each BSSID formatted as a MAC address like
* '00:11:22:33:44:55') that have been detected as part of the WiFI network.
- * The settings service will usually populate this property by periodically
- * asking NetworkManager what the device's current AP is while connected
- * to the network (or monitoring the device's 'active-ap' property) and
- * adding the current AP'sBSSID to this list. This list helps NetworkManager
- * find hidden APs by matching up scan results with the BSSIDs in this list.
+ * NetworkManager internally tracks previously seen BSSIDs so this property
+ * is no longer of much use.
**/
g_object_class_install_property
(object_class, PROP_SEEN_BSSIDS,
_nm_param_spec_specialized (NM_SETTING_WIRELESS_SEEN_BSSIDS,
"Seen BSSIDS",
"A list of BSSIDs (each BSSID formatted as a MAC "
- "address like '00:11:22:33:44:55') that have been "
- "detected as part of the WiFI network. The "
- "settings service will usually populate this "
- "property by periodically asking NetworkManager "
- "what the device's current AP is while connected "
- "to the network (or monitoring the device's "
- "'active-ap' property) and adding the current AP's "
- "BSSID to this list. This list helps NetworkManager "
- "find hidden APs by matching up scan results with "
- "the BSSIDs in this list.",
+ "address like 00:11:22:33:44:55') that have been "
+ "detected as part of the WiFI network. "
+ "NetworkManager internally tracks previously seen "
+ "BSSIDs so this property is no longer of much use.",
DBUS_TYPE_G_LIST_OF_STRING,
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE | NM_SETTING_PARAM_FUZZY_IGNORE));
diff --git a/libnm-util/nm-setting-wireless.h b/libnm-util/nm-setting-wireless.h
index d3e1ed41a..746466be9 100644
--- a/libnm-util/nm-setting-wireless.h
+++ b/libnm-util/nm-setting-wireless.h
@@ -19,7 +19,7 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2010 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
@@ -41,8 +41,18 @@ G_BEGIN_DECLS
#define NM_SETTING_WIRELESS_SETTING_NAME "802-11-wireless"
-typedef enum
-{
+/**
+ * NMSettingWirelessError:
+ * @NM_SETTING_WIRELESS_ERROR_UNKNOWN: unknown or unclassified error
+ * @NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY: the property was invalid
+ * @NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY: the property was missing and is
+ * required
+ * @NM_SETTING_WIRELESS_ERROR_MISSING_SECURITY_SETTING: property values require
+ * the presence of an #NMSettingWirelessSecurity object in the connection
+ * @NM_SETTING_WIRELESS_ERROR_CHANNEL_REQUIRES_BAND: the property channel was
+ * set to a value that requires the #NMSettingWireless:band property to be set
+ */
+typedef enum {
NM_SETTING_WIRELESS_ERROR_UNKNOWN = 0,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY,
@@ -65,11 +75,24 @@ GQuark nm_setting_wireless_error_quark (void);
#define NM_SETTING_WIRELESS_TX_POWER "tx-power"
#define NM_SETTING_WIRELESS_MAC_ADDRESS "mac-address"
#define NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS "cloned-mac-address"
+#define NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST "mac-address-blacklist"
#define NM_SETTING_WIRELESS_MTU "mtu"
#define NM_SETTING_WIRELESS_SEEN_BSSIDS "seen-bssids"
#define NM_SETTING_WIRELESS_SEC "security"
+/**
+ * NM_SETTING_WIRELESS_MODE_ADHOC:
+ *
+ * Indicates Ad-Hoc mode where no access point is expected to be present.
+ */
#define NM_SETTING_WIRELESS_MODE_ADHOC "adhoc"
+
+/**
+ * NM_SETTING_WIRELESS_MODE_INFRA
+ *
+ * Indicates infrastructure mode where an access point is expected to be present
+ * for this connection.
+ */
#define NM_SETTING_WIRELESS_MODE_INFRA "infrastructure"
typedef struct {
@@ -99,6 +122,7 @@ guint32 nm_setting_wireless_get_rate (NMSettingWireless
guint32 nm_setting_wireless_get_tx_power (NMSettingWireless *setting);
const GByteArray *nm_setting_wireless_get_mac_address (NMSettingWireless *setting);
const GByteArray *nm_setting_wireless_get_cloned_mac_address (NMSettingWireless *setting);
+const GSList *nm_setting_wireless_get_mac_address_blacklist (NMSettingWireless *setting);
guint32 nm_setting_wireless_get_mtu (NMSettingWireless *setting);
const char *nm_setting_wireless_get_security (NMSettingWireless *setting);
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index 3fe90db29..3573f8887 100644
--- a/libnm-util/nm-setting.c
+++ b/libnm-util/nm-setting.c
@@ -332,27 +332,52 @@ nm_setting_verify (NMSetting *setting, GSList *all_settings, GError **error)
return TRUE;
}
-static inline gboolean
-should_compare_prop (NMSetting *setting,
- const char *prop_name,
- NMSettingCompareFlags comp_flags,
- GParamFlags prop_flags)
+static gboolean
+compare_property (NMSetting *setting,
+ NMSetting *other,
+ const GParamSpec *prop_spec,
+ NMSettingCompareFlags flags)
{
- /* Fuzzy compare ignores secrets and properties defined with the FUZZY_IGNORE flag */
- if ( (comp_flags & NM_SETTING_COMPARE_FLAG_FUZZY)
- && (prop_flags & (NM_SETTING_PARAM_FUZZY_IGNORE | NM_SETTING_PARAM_SECRET)))
- return FALSE;
+ GValue value1 = { 0 };
+ GValue value2 = { 0 };
+ gboolean different;
- if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS)
- && (prop_flags & NM_SETTING_PARAM_SECRET))
- return FALSE;
+ /* Handle compare flags */
+ if (prop_spec->flags & NM_SETTING_PARAM_SECRET) {
+ NMSettingSecretFlags a_secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+ NMSettingSecretFlags b_secret_flags = NM_SETTING_SECRET_FLAG_NONE;
- if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_ID)
- && NM_IS_SETTING_CONNECTION (setting)
- && !strcmp (prop_name, NM_SETTING_CONNECTION_ID))
- return FALSE;
+ nm_setting_get_secret_flags (setting, prop_spec->name, &a_secret_flags, NULL);
+ nm_setting_get_secret_flags (other, prop_spec->name, &b_secret_flags, NULL);
- return TRUE;
+ /* If the secret flags aren't the same the settings aren't the same */
+ if (a_secret_flags != b_secret_flags)
+ return FALSE;
+
+ /* Check for various secret flags that might cause us to ignore comparing
+ * this property.
+ */
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS)
+ && (a_secret_flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED))
+ return TRUE;
+
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)
+ && (a_secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED))
+ return TRUE;
+ }
+
+ g_value_init (&value1, prop_spec->value_type);
+ g_object_get_property (G_OBJECT (setting), prop_spec->name, &value1);
+
+ g_value_init (&value2, prop_spec->value_type);
+ g_object_get_property (G_OBJECT (other), prop_spec->name, &value2);
+
+ different = g_param_values_cmp ((GParamSpec *) prop_spec, &value1, &value2);
+
+ g_value_unset (&value1);
+ g_value_unset (&value2);
+
+ return different == 0 ? TRUE : FALSE;
}
/**
@@ -374,7 +399,7 @@ nm_setting_compare (NMSetting *a,
{
GParamSpec **property_specs;
guint n_property_specs;
- gint different;
+ gint same = TRUE;
guint i;
g_return_val_if_fail (NM_IS_SETTING (a), FALSE);
@@ -386,32 +411,59 @@ nm_setting_compare (NMSetting *a,
/* And now all properties */
property_specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (a), &n_property_specs);
- different = FALSE;
-
- for (i = 0; i < n_property_specs && !different; i++) {
+ for (i = 0; i < n_property_specs && same; i++) {
GParamSpec *prop_spec = property_specs[i];
- GValue value1 = { 0 };
- GValue value2 = { 0 };
- /* Handle compare flags */
- if (!should_compare_prop (a, prop_spec->name, flags, prop_spec->flags))
+ /* Fuzzy compare ignores secrets and properties defined with the FUZZY_IGNORE flag */
+ if ( (flags & NM_SETTING_COMPARE_FLAG_FUZZY)
+ && (prop_spec->flags & (NM_SETTING_PARAM_FUZZY_IGNORE | NM_SETTING_PARAM_SECRET)))
continue;
- g_value_init (&value1, prop_spec->value_type);
- g_object_get_property (G_OBJECT (a), prop_spec->name, &value1);
+ if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS)
+ && (prop_spec->flags & NM_SETTING_PARAM_SECRET))
+ continue;
+
+ same = NM_SETTING_GET_CLASS (a)->compare_property (a, b, prop_spec, flags);
+ }
+ g_free (property_specs);
- g_value_init (&value2, prop_spec->value_type);
- g_object_get_property (G_OBJECT (b), prop_spec->name, &value2);
+ return same;
+}
- different = g_param_values_cmp (prop_spec, &value1, &value2);
+static inline gboolean
+should_compare_prop (NMSetting *setting,
+ const char *prop_name,
+ NMSettingCompareFlags comp_flags,
+ GParamFlags prop_flags)
+{
+ /* Fuzzy compare ignores secrets and properties defined with the FUZZY_IGNORE flag */
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_FUZZY)
+ && (prop_flags & (NM_SETTING_PARAM_FUZZY_IGNORE | NM_SETTING_PARAM_SECRET)))
+ return FALSE;
- g_value_unset (&value1);
- g_value_unset (&value2);
+ if (prop_flags & NM_SETTING_PARAM_SECRET) {
+ NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+
+ if (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS)
+ return FALSE;
+
+ nm_setting_get_secret_flags (setting, prop_name, &secret_flags, NULL);
+
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS)
+ && (secret_flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED))
+ return FALSE;
+
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)
+ && (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED))
+ return FALSE;
}
- g_free (property_specs);
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_ID)
+ && NM_IS_SETTING_CONNECTION (setting)
+ && !strcmp (prop_name, NM_SETTING_CONNECTION_ID))
+ return FALSE;
- return different == 0 ? TRUE : FALSE;
+ return TRUE;
}
/**
@@ -976,6 +1028,7 @@ nm_setting_class_init (NMSettingClass *setting_class)
setting_class->update_one_secret = update_one_secret;
setting_class->get_secret_flags = get_secret_flags;
setting_class->set_secret_flags = set_secret_flags;
+ setting_class->compare_property = compare_property;
/* Properties */
diff --git a/libnm-util/nm-setting.h b/libnm-util/nm-setting.h
index ef3011adb..e21efd812 100644
--- a/libnm-util/nm-setting.h
+++ b/libnm-util/nm-setting.h
@@ -112,6 +112,35 @@ typedef enum {
} NMSettingSecretFlags;
/**
+ * NMSettingCompareFlags:
+ * @NM_SETTING_COMPARE_FLAG_EXACT: match all properties exactly
+ * @NM_SETTING_COMPARE_FLAG_FUZZY: match only important attributes, like SSID,
+ * type, security settings, etc. Does not match, for example, connection ID
+ * or UUID.
+ * @NM_SETTING_COMPARE_FLAG_IGNORE_ID: ignore the connection's ID
+ * @NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS: ignore all secrets
+ * @NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS: ignore secrets for which
+ * the secret's flags indicate the secret is owned by a user secret agent
+ * (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_AGENT_OWNED)
+ * @NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS: ignore secrets for which
+ * the secret's flags indicate the secret should not be saved to persistent
+ * storage (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_NOT_SAVED)
+ *
+ * These flags modify the comparison behavior when comparing two settings or
+ * two connections.
+ *
+ **/
+typedef enum {
+ NM_SETTING_COMPARE_FLAG_EXACT = 0x00000000,
+ NM_SETTING_COMPARE_FLAG_FUZZY = 0x00000001,
+ NM_SETTING_COMPARE_FLAG_IGNORE_ID = 0x00000002,
+ NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS = 0x00000004,
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS = 0x00000008,
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS = 0x00000010
+} NMSettingCompareFlags;
+
+
+/**
* NMSetting:
*
* The NMSetting struct contains only private data.
@@ -148,13 +177,27 @@ typedef struct {
NMSettingSecretFlags flags,
GError **error);
+ /* Returns TRUE if the given property contains the same value in both settings */
+ gboolean (*compare_property) (NMSetting *setting,
+ NMSetting *other,
+ const GParamSpec *prop_spec,
+ NMSettingCompareFlags flags);
+
/* Padding for future expansion */
void (*_reserved1) (void);
void (*_reserved2) (void);
void (*_reserved3) (void);
- void (*_reserved4) (void);
} NMSettingClass;
+/**
+ * NMSettingValueIterFn:
+ * @setting: The setting for which properties are being iterated, given to
+ * nm_setting_enumerate_values()
+ * @key: The value/property name
+ * @value: The property's value
+ * @flags: The property's flags, like %NM_SETTING_PARAM_SECRET
+ * @user_data: User data passed to nm_setting_enumerate_values()
+ */
typedef void (*NMSettingValueIterFn) (NMSetting *setting,
const char *key,
const GValue *value,
@@ -194,26 +237,6 @@ gboolean nm_setting_verify (NMSetting *setting,
GSList *all_settings,
GError **error);
-/**
- * NMSettingCompareFlags:
- * @NM_SETTING_COMPARE_FLAG_EXACT: match all properties exactly
- * @NM_SETTING_COMPARE_FLAG_FUZZY: match only important attributes, like SSID,
- * type, security settings, etc. Does not match, for example, connection ID
- * or UUID.
- * @NM_SETTING_COMPARE_FLAG_IGNORE_ID: ignore the connection's ID
- * @NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS: ignore secrets
- *
- * These flags modify the comparison behavior when comparing two settings or
- * two connections.
- *
- **/
-typedef enum {
- NM_SETTING_COMPARE_FLAG_EXACT = 0x00000000,
- NM_SETTING_COMPARE_FLAG_FUZZY = 0x00000001,
- NM_SETTING_COMPARE_FLAG_IGNORE_ID = 0x00000002,
- NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS = 0x00000004
-} NMSettingCompareFlags;
-
gboolean nm_setting_compare (NMSetting *a,
NMSetting *b,
NMSettingCompareFlags flags);
diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c
index 449deb1cc..d8bcf3491 100644
--- a/libnm-util/nm-utils.c
+++ b/libnm-util/nm-utils.c
@@ -1192,12 +1192,12 @@ device_supports_ap_ciphers (guint32 dev_caps,
**/
gboolean
nm_utils_security_valid (NMUtilsSecurityType type,
- guint32 wifi_caps,
+ NMDeviceWifiCapabilities wifi_caps,
gboolean have_ap,
gboolean adhoc,
- guint32 ap_flags,
- guint32 ap_wpa,
- guint32 ap_rsn)
+ NM80211ApFlags ap_flags,
+ NM80211ApSecurityFlags ap_wpa,
+ NM80211ApSecurityFlags ap_rsn)
{
gboolean good = TRUE;
diff --git a/libnm-util/nm-utils.h b/libnm-util/nm-utils.h
index e4714a96f..6a1792689 100644
--- a/libnm-util/nm-utils.h
+++ b/libnm-util/nm-utils.h
@@ -48,6 +48,24 @@ GHashTable *nm_utils_gvalue_hash_dup (GHashTable *hash);
void nm_utils_slist_free (GSList *list, GDestroyNotify elem_destroy_fn);
+/**
+ * NMUtilsSecurityType:
+ * @NMU_SEC_INVALID: unknown or invalid security, placeholder and not used
+ * @NMU_SEC_NONE: unencrypted and open
+ * @NMU_SEC_STATIC_WEP: static WEP keys are used for encryption
+ * @NMU_SEC_LEAP: Cisco LEAP is used for authentication and for generating the
+ * dynamic WEP keys automatically
+ * @NMU_SEC_DYNAMIC_WEP: standard 802.1x is used for authentication and
+ * generating the dynamic WEP keys automatically
+ * @NMU_SEC_WPA_PSK: WPA1 is used with Pre-Shared Keys (PSK)
+ * @NMU_SEC_WPA_ENTERPRISE: WPA1 is used with 802.1x authentication
+ * @NMU_SEC_WPA2_PSK: WPA2/RSN is used with Pre-Shared Keys (PSK)
+ * @NMU_SEC_WPA2_ENTERPRISE: WPA2 is used with 802.1x authentication
+ *
+ * Describes generic security mechanisms that 802.11 access points may offer.
+ * Used with nm_utils_security_valid() for checking whether a given access
+ * point is compatible with a network device.
+ **/
typedef enum {
NMU_SEC_INVALID = 0,
NMU_SEC_NONE,
@@ -61,12 +79,12 @@ typedef enum {
} NMUtilsSecurityType;
gboolean nm_utils_security_valid (NMUtilsSecurityType type,
- guint32 wifi_caps,
+ NMDeviceWifiCapabilities wifi_caps,
gboolean have_ap,
gboolean adhoc,
- guint32 ap_flags,
- guint32 ap_wpa,
- guint32 ap_rsn);
+ NM80211ApFlags ap_flags,
+ NM80211ApSecurityFlags ap_wpa,
+ NM80211ApSecurityFlags ap_rsn);
GSList *nm_utils_ip4_addresses_from_gvalue (const GValue *value);
void nm_utils_ip4_addresses_to_gvalue (GSList *list, GValue *value);
@@ -95,11 +113,11 @@ GByteArray *nm_utils_rsa_key_encrypt (const GByteArray *data,
char **out_password,
GError **error);
-G_END_DECLS
-
guint32 nm_utils_wifi_freq_to_channel (guint32 freq);
guint32 nm_utils_wifi_channel_to_freq (guint32 channel, const char *band);
guint32 nm_utils_wifi_find_next_channel (guint32 channel, int direction, char *band);
gboolean nm_utils_wifi_is_channel_valid (guint32 channel, const char *band);
+G_END_DECLS
+
#endif /* NM_UTILS_H */
diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c
index 87a50d670..f2f7e8ffe 100644
--- a/libnm-util/tests/test-general.c
+++ b/libnm-util/tests/test-general.c
@@ -852,16 +852,17 @@ test_connection_diff_a_only (void)
{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN }
} },
{ NM_SETTING_WIRED_SETTING_NAME, {
- { NM_SETTING_WIRED_PORT, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_SPEED, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_DUPLEX, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_AUTO_NEGOTIATE, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_MAC_ADDRESS, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_CLONED_MAC_ADDRESS, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_MTU, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_S390_SUBCHANNELS, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_S390_NETTYPE, NM_SETTING_DIFF_RESULT_IN_A },
- { NM_SETTING_WIRED_S390_OPTIONS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_PORT, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_SPEED, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_DUPLEX, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_AUTO_NEGOTIATE, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_MAC_ADDRESS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_CLONED_MAC_ADDRESS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_MTU, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_S390_SUBCHANNELS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_S390_NETTYPE, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_WIRED_S390_OPTIONS, NM_SETTING_DIFF_RESULT_IN_A },
{ NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
} },
{ NM_SETTING_IP4_CONFIG_SETTING_NAME, {
@@ -1205,14 +1206,101 @@ test_connection_bad_base_types (void)
g_clear_error (&error);
}
+static void
+test_setting_compare_id (void)
+{
+ NMSetting *old, *new;
+ gboolean success;
+
+ old = nm_setting_connection_new ();
+ g_object_set (old,
+ NM_SETTING_CONNECTION_ID, "really awesome cool connection",
+ NM_SETTING_CONNECTION_UUID, "fbbd59d5-acab-4e30-8f86-258d272617e7",
+ NM_SETTING_CONNECTION_AUTOCONNECT, FALSE,
+ NULL);
+
+ new = nm_setting_duplicate (old);
+ g_object_set (new, NM_SETTING_CONNECTION_ID, "some different connection id", NULL);
+
+ /* First make sure they are different */
+ success = nm_setting_compare (old, new, NM_SETTING_COMPARE_FLAG_EXACT);
+ g_assert (success == FALSE);
+
+ success = nm_setting_compare (old, new, NM_SETTING_COMPARE_FLAG_IGNORE_ID);
+ g_assert (success);
+}
+
+static void
+test_setting_compare_secrets (NMSettingSecretFlags secret_flags,
+ NMSettingCompareFlags comp_flags,
+ gboolean remove_secret)
+{
+ NMSetting *old, *new;
+ gboolean success;
+
+ /* Make sure that a connection with transient/unsaved secrets compares
+ * successfully to the same connection without those secrets.
+ */
+
+ old = nm_setting_wireless_security_new ();
+ g_object_set (old,
+ NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-psk",
+ NM_SETTING_WIRELESS_SECURITY_PSK, "really cool psk",
+ NULL);
+ nm_setting_set_secret_flags (old, NM_SETTING_WIRELESS_SECURITY_PSK, secret_flags, NULL);
+
+ /* Clear the PSK from the duplicated setting */
+ new = nm_setting_duplicate (old);
+ if (remove_secret) {
+ g_object_set (new, NM_SETTING_WIRELESS_SECURITY_PSK, NULL, NULL);
+
+ success = nm_setting_compare (old, new, NM_SETTING_COMPARE_FLAG_EXACT);
+ g_assert (success == FALSE);
+ }
+
+ success = nm_setting_compare (old, new, comp_flags);
+ g_assert (success);
+}
+
+static void
+test_setting_compare_vpn_secrets (NMSettingSecretFlags secret_flags,
+ NMSettingCompareFlags comp_flags,
+ gboolean remove_secret)
+{
+ NMSetting *old, *new;
+ gboolean success;
+
+ /* Make sure that a connection with transient/unsaved secrets compares
+ * successfully to the same connection without those secrets.
+ */
+
+ old = nm_setting_vpn_new ();
+ nm_setting_vpn_add_secret (NM_SETTING_VPN (old), "foobarbaz", "really secret password");
+ nm_setting_vpn_add_secret (NM_SETTING_VPN (old), "asdfasdfasdf", "really adfasdfasdfasdf");
+ nm_setting_vpn_add_secret (NM_SETTING_VPN (old), "0123456778", "abcdefghijklmnpqrstuvqxyz");
+ nm_setting_vpn_add_secret (NM_SETTING_VPN (old), "borkbork", "yet another really secret password");
+ nm_setting_set_secret_flags (old, "borkbork", secret_flags, NULL);
+
+ /* Clear "borkbork" from the duplicated setting */
+ new = nm_setting_duplicate (old);
+ if (remove_secret) {
+ nm_setting_vpn_remove_secret (NM_SETTING_VPN (new), "borkbork");
+
+ /* First make sure they are different */
+ success = nm_setting_compare (old, new, NM_SETTING_COMPARE_FLAG_EXACT);
+ g_assert (success == FALSE);
+ }
+
+ success = nm_setting_compare (old, new, comp_flags);
+ g_assert (success);
+}
+
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
@@ -1228,6 +1316,16 @@ int main (int argc, char **argv)
test_setting_to_hash_all ();
test_setting_to_hash_no_secrets ();
test_setting_to_hash_only_secrets ();
+ test_setting_compare_id ();
+ test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
+ test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
+ test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
+ test_setting_compare_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
+ test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_AGENT_OWNED, NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS, TRUE);
+ test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NOT_SAVED, NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS, TRUE);
+ test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, TRUE);
+ test_setting_compare_vpn_secrets (NM_SETTING_SECRET_FLAG_NONE, NM_SETTING_COMPARE_FLAG_EXACT, FALSE);
+
test_connection_to_hash_setting_name ();
test_setting_connection_permissions_helpers ();
test_setting_connection_permissions_property ();
diff --git a/libnm-util/tests/test-secrets.c b/libnm-util/tests/test-secrets.c
index 6d46f99e9..1fe3c4382 100644
--- a/libnm-util/tests/test-secrets.c
+++ b/libnm-util/tests/test-secrets.c
@@ -20,7 +20,6 @@
*/
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <string.h>
#include "nm-test-helpers.h"
@@ -592,7 +591,84 @@ test_update_secrets_wifi_bad_setting_name (void)
"asdfasdfasdfasf",
secrets,
&error);
- g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND);
+ g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
+ g_assert (success == FALSE);
+
+ g_object_unref (connection);
+}
+
+static void
+test_update_secrets_whole_connection (void)
+{
+ NMConnection *connection;
+ NMSettingWirelessSecurity *s_wsec;
+ GHashTable *secrets, *wsec_hash;
+ GError *error = NULL;
+ gboolean success;
+ const char *wepkey = "11111111111111111111111111";
+
+ connection = wifi_connection_new ();
+
+ /* Build up the secrets hash */
+ secrets = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
+ wsec_hash = g_hash_table_lookup (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
+ g_assert (wsec_hash);
+ g_hash_table_insert (wsec_hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
+
+ success = nm_connection_update_secrets (connection, NULL, secrets, &error);
+ g_assert_no_error (error);
+ g_assert (success == TRUE);
+
+ s_wsec = nm_connection_get_setting_wireless_security (connection);
+ g_assert (s_wsec);
+ g_assert_cmpstr (nm_setting_wireless_security_get_wep_key (s_wsec, 0), ==, wepkey);
+
+ g_object_unref (connection);
+}
+
+static void
+test_update_secrets_whole_connection_empty_hash (void)
+{
+ NMConnection *connection;
+ GHashTable *secrets;
+ GError *error = NULL;
+ gboolean success;
+
+ connection = wifi_connection_new ();
+ secrets = g_hash_table_new (g_str_hash, g_str_equal);
+ success = nm_connection_update_secrets (connection, NULL, secrets, &error);
+ g_assert_no_error (error);
+ g_assert (success == TRUE);
+ g_object_unref (connection);
+}
+
+static void
+test_update_secrets_whole_connection_bad_setting (void)
+{
+ NMConnection *connection;
+ GHashTable *secrets, *wsec_hash;
+ GError *error = NULL;
+ gboolean success;
+ const char *wepkey = "11111111111111111111111111";
+
+ connection = wifi_connection_new ();
+
+ /* Build up the secrets hash */
+ secrets = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
+ wsec_hash = g_hash_table_lookup (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
+ g_assert (wsec_hash);
+ g_hash_table_insert (wsec_hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
+
+ /* Steal the wsec setting hash so it's not deallocated, and stuff it back
+ * in with a different name so we ensure libnm-util is returning the right
+ * error when it finds an entry in the connection hash that doesn't match
+ * any setting in the connection.
+ */
+ g_hash_table_steal (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
+ g_hash_table_insert (secrets, "asdfasdfasdfasdf", wsec_hash);
+
+ success = nm_connection_update_secrets (connection, NULL, secrets, &error);
+ g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
g_assert (success == FALSE);
g_object_unref (connection);
@@ -601,11 +677,9 @@ test_update_secrets_wifi_bad_setting_name (void)
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
@@ -620,6 +694,10 @@ int main (int argc, char **argv)
test_update_secrets_wifi_full_hash ();
test_update_secrets_wifi_bad_setting_name ();
+ test_update_secrets_whole_connection ();
+ test_update_secrets_whole_connection_empty_hash ();
+ test_update_secrets_whole_connection_bad_setting ();
+
base = g_path_get_basename (argv[0]);
fprintf (stdout, "%s: SUCCESS\n", base);
g_free (base);
diff --git a/libnm-util/tests/test-setting-8021x.c b/libnm-util/tests/test-setting-8021x.c
index 6d1e3bd0c..bdfc8e036 100644
--- a/libnm-util/tests/test-setting-8021x.c
+++ b/libnm-util/tests/test-setting-8021x.c
@@ -20,7 +20,6 @@
*/
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <string.h>
#include "nm-test-helpers.h"
@@ -407,14 +406,12 @@ test_clear_phase2_private_key (const char *path, const char *password)
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
if (argc < 3)
FAIL ("init", "need at least two arguments: <path> <password>");
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
diff --git a/libnm-util/tests/test-settings-defaults.c b/libnm-util/tests/test-settings-defaults.c
index 9f38a1455..b77ddfef9 100644
--- a/libnm-util/tests/test-settings-defaults.c
+++ b/libnm-util/tests/test-settings-defaults.c
@@ -15,12 +15,11 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*
*/
#include <glib.h>
-#include <dbus/dbus-glib.h>
#include <string.h>
#include "nm-test-helpers.h"
@@ -103,11 +102,9 @@ test_defaults (GType type, const char *name)
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
diff --git a/m4/libnl-check.m4 b/m4/libnl-check.m4
index f7d6d7071..8eef576f0 100644
--- a/m4/libnl-check.m4
+++ b/m4/libnl-check.m4
@@ -4,14 +4,12 @@ AC_DEFUN([NM_LIBNL_CHECK], [
save_LDFLAGS="$LDFLAGS"
CFLAGS="$CFLAGS $LIBNL_CFLAGS"
LDFLAGS="$LDFLAGS $LIBNL_LIBS"
- AC_RUN_IFELSE([
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
#include <stdio.h>
#include <netlink/route/addr.h>
#include <netlink/object-api.h>
-
-int
-main (int argc, char **argv)
-{
+]],
+[[
struct nl_handle *nlh;
struct nl_cache *cache;
struct nl_object *obj;
@@ -37,8 +35,7 @@ main (int argc, char **argv)
return 1;
else
return 2;
-}
-], libnl_bug=$?, libnl_bug=$?, libnl_bug=cross)
+]])], libnl_bug=$?, libnl_bug=$?, libnl_bug=cross)
CFLAGS="$save_CFLAGS"
LDFLAGS="$save_LDFLAGS"
diff --git a/man/NetworkManager.8 b/man/NetworkManager.8
index c5f44513d..127c72bf3 100644
--- a/man/NetworkManager.8
+++ b/man/NetworkManager.8
@@ -1,14 +1,16 @@
.\" NetworkManager(8) manual page
.\"
-.\" Copyright (C) 2005 - 2010 Red Hat, Inc.
+.\" Copyright (C) 2005 - 2011 Red Hat, Inc.
.\" Copyright (C) 2005 - 2009 Novell, Inc.
.\" Copyright (C) 2005 Robert Love
.\"
-.TH NETWORKMANAGER "8" "January 29, 2010"
+.TH NETWORKMANAGER "8" "2 August 2011"
.SH NAME
NetworkManager \- network management daemon
.SH SYNOPSIS
-.B NetworkManager [\-\-version] [\-\-no\-daemon] [\-\-pid\-file=<filename>] [\-\-state\-file=<filename>] [\-\-config=<filename>] [\-\-plugins=<plugin1>,plugin2>,...] [\-\-log\-level=<level>] [\-\-log\-domains=<domain1>,<domain2>,...]
+.B NetworkManager [\-\-version] | [\-\-help]
+.PP
+.B NetworkManager [\-\-no\-daemon] [\-\-pid\-file=<filename>] [\-\-state\-file=<filename>] [\-\-config=<filename>] [\-\-plugins=<plugin1>,plugin2>,...] [\-\-log\-level=<level>] [\-\-log\-domains=<domain1>,<domain2>,...]
.SH DESCRIPTION
The \fINetworkManager\fP daemon attempts to make networking configuration and
operation as painless and automatic as possible by managing the primary network
@@ -21,10 +23,22 @@ settings and operation.
.P
NetworkManager will execute scripts in the /etc/NetworkManager/dispatcher.d
directory in alphabetical order in response to network events. Each script
-should be (a) a regular file, (b) owned by root, (c) not writable by group or
-other, (d) not set-uid, (e) and executable by the owner. Each script receives
-two arguments, the first being the interface name of the device just activated,
-and second an action.
+should be:
+.IP "(a)" 4
+a regular file
+.IP "(b)" 4
+owned by root
+.IP "(c)" 4
+not writable by group or other
+.IP "(d)" 4
+not set-uid
+.IP "(e)" 4
+and executable by the owner
+.PP
+Each script receives two arguments, the first being the interface name of the
+device just activated, and second an action.
+.PP
+Actions:
.TP
.I "up"
The interface has been activated. The environment contains more information
@@ -64,6 +78,9 @@ The following options are supported:
.I "\-\-version"
Print the NetworkManager software version and exit.
.TP
+.I "\-\-help"
+Print NetworkManager's available options and exit.
+.TP
.I "\-\-no\-daemon"
Do not daemonize. This is useful for debugging, and directs log output to the
controlling terminal in addition to syslog.
@@ -113,5 +130,7 @@ When set to anything, causes NetworkManager to turn on PPP debugging in pppd,
which logs all PPP and PPTP frames and client/server exchanges.
.SH SEE ALSO
.BR nm\-tool (1),
+.BR nm\-online (1),
+.BR nmcli (1),
.BR NetworkManager.conf (5).
diff --git a/man/NetworkManager.8.in b/man/NetworkManager.8.in
index c5f44513d..127c72bf3 100644
--- a/man/NetworkManager.8.in
+++ b/man/NetworkManager.8.in
@@ -1,14 +1,16 @@
.\" NetworkManager(8) manual page
.\"
-.\" Copyright (C) 2005 - 2010 Red Hat, Inc.
+.\" Copyright (C) 2005 - 2011 Red Hat, Inc.
.\" Copyright (C) 2005 - 2009 Novell, Inc.
.\" Copyright (C) 2005 Robert Love
.\"
-.TH NETWORKMANAGER "8" "January 29, 2010"
+.TH NETWORKMANAGER "8" "2 August 2011"
.SH NAME
NetworkManager \- network management daemon
.SH SYNOPSIS
-.B NetworkManager [\-\-version] [\-\-no\-daemon] [\-\-pid\-file=<filename>] [\-\-state\-file=<filename>] [\-\-config=<filename>] [\-\-plugins=<plugin1>,plugin2>,...] [\-\-log\-level=<level>] [\-\-log\-domains=<domain1>,<domain2>,...]
+.B NetworkManager [\-\-version] | [\-\-help]
+.PP
+.B NetworkManager [\-\-no\-daemon] [\-\-pid\-file=<filename>] [\-\-state\-file=<filename>] [\-\-config=<filename>] [\-\-plugins=<plugin1>,plugin2>,...] [\-\-log\-level=<level>] [\-\-log\-domains=<domain1>,<domain2>,...]
.SH DESCRIPTION
The \fINetworkManager\fP daemon attempts to make networking configuration and
operation as painless and automatic as possible by managing the primary network
@@ -21,10 +23,22 @@ settings and operation.
.P
NetworkManager will execute scripts in the /etc/NetworkManager/dispatcher.d
directory in alphabetical order in response to network events. Each script
-should be (a) a regular file, (b) owned by root, (c) not writable by group or
-other, (d) not set-uid, (e) and executable by the owner. Each script receives
-two arguments, the first being the interface name of the device just activated,
-and second an action.
+should be:
+.IP "(a)" 4
+a regular file
+.IP "(b)" 4
+owned by root
+.IP "(c)" 4
+not writable by group or other
+.IP "(d)" 4
+not set-uid
+.IP "(e)" 4
+and executable by the owner
+.PP
+Each script receives two arguments, the first being the interface name of the
+device just activated, and second an action.
+.PP
+Actions:
.TP
.I "up"
The interface has been activated. The environment contains more information
@@ -64,6 +78,9 @@ The following options are supported:
.I "\-\-version"
Print the NetworkManager software version and exit.
.TP
+.I "\-\-help"
+Print NetworkManager's available options and exit.
+.TP
.I "\-\-no\-daemon"
Do not daemonize. This is useful for debugging, and directs log output to the
controlling terminal in addition to syslog.
@@ -113,5 +130,7 @@ When set to anything, causes NetworkManager to turn on PPP debugging in pppd,
which logs all PPP and PPTP frames and client/server exchanges.
.SH SEE ALSO
.BR nm\-tool (1),
+.BR nm\-online (1),
+.BR nmcli (1),
.BR NetworkManager.conf (5).
diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5
index d047f3939..9fe722c4c 100644
--- a/man/NetworkManager.conf.5
+++ b/man/NetworkManager.conf.5
@@ -1,8 +1,8 @@
.\" NetworkManager.conf(5) manual page
.\"
-.\" Copyright (C) 2010 Red Hat, Inc.
+.\" Copyright (C) 2010 - 2011 Red Hat, Inc.
.\"
-.TH "NetworkManager.conf" "5" "23 November 2010" ""
+.TH "NetworkManager.conf" "5" "2 August 2011" ""
.SH NAME
NetworkManager.conf \- NetworkManager configuration file
.SH SYNOPSIS
@@ -20,9 +20,6 @@ is a configuration file for NetworkManager. It is used to set up various
aspects of NetworkManager's behavior. The location of
the file may be changed through use of the "\-\-config=" argument for
\fBNetworkManager\fP (8).
-
-It is not necessary to restart NetworkManager when making changes, as the
-configuration file is watched for changes and reloaded automatically when necessary.
.SH "FILE FORMAT"
.P
The configuration file format is so-called key file (sort of ini-style format).
@@ -163,12 +160,61 @@ warning messages.
The following log domains are available: [NONE, HW, RFKILL, ETHER, WIFI, BT, MB,
DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT,
AGENTS, SETTINGS, SUSPEND, CORE, DEVICE, OLPC, WIMAX]. When "NONE" is given by
-itself, logging is disabled. MB = Mobile Broadband, AGENTS = secret agents
-operations and communication, SETTINGS = settings/config service operations,
-OLPC = OLPC Mesh device operations, CORE = core daemon operations, DEVICE =
-activation and general interface operations.
+itself, logging is disabled.
+.PP
+.RS
+HW = Hardware related operations
+.br
+RFKILL = RFKill subsystem operations
+.br
+ETHER = Ethernet device operations
+.br
+WIFI = Wi-Fi device operations
+.br
+BT = Bluetooth
+.br
+MB = Mobile Broadband
+.br
+DHCP4 = DHCP for IPv4
+.br
+DHCP6 = DHCP for IPv6
+.br
+PPP = Point-to-point protocol operations
+.br
+WIFI_SCAN = Wi-Fi scanning operations
+.br
+IP4 = Domain for IPv4 logging
+.br
+IP6 = Domain for IPv6 logging
+.br
+AUTOIP4 = AutoIP (avahi) operations
+.br
+DNS = Domain Name System related operations
+.br
+VPN = Virtual Private Network connections and operaions
+.br
+SHARING = Connection sharing
+.br
+SUPPLICANT = WPA supplicant related operations
+.br
+AGENTS = Secret agents operations and communication
+.br
+SETTINGS = Settings/config service operations
+.br
+SUSPEND = Suspend/resume
+.br
+CORE = Core daemon operations
+.br
+DEVICE = Activation and general interface operations
+.br
+OLPC = OLPC Mesh device operations
+.br
+WIMAX = Wimax device operations
+.br
.SH "SEE ALSO"
.BR http://live.gnome.org/NetworkManager/SystemSettings
.sp
.BR NetworkManager (8),
-.BR nm\-tool (1).
+.BR nmcli (1),
+.BR nm\-tool (1),
+.BR nm\-online (1).
diff --git a/man/NetworkManager.conf.5.in b/man/NetworkManager.conf.5.in
index d047f3939..9fe722c4c 100644
--- a/man/NetworkManager.conf.5.in
+++ b/man/NetworkManager.conf.5.in
@@ -1,8 +1,8 @@
.\" NetworkManager.conf(5) manual page
.\"
-.\" Copyright (C) 2010 Red Hat, Inc.
+.\" Copyright (C) 2010 - 2011 Red Hat, Inc.
.\"
-.TH "NetworkManager.conf" "5" "23 November 2010" ""
+.TH "NetworkManager.conf" "5" "2 August 2011" ""
.SH NAME
NetworkManager.conf \- NetworkManager configuration file
.SH SYNOPSIS
@@ -20,9 +20,6 @@ is a configuration file for NetworkManager. It is used to set up various
aspects of NetworkManager's behavior. The location of
the file may be changed through use of the "\-\-config=" argument for
\fBNetworkManager\fP (8).
-
-It is not necessary to restart NetworkManager when making changes, as the
-configuration file is watched for changes and reloaded automatically when necessary.
.SH "FILE FORMAT"
.P
The configuration file format is so-called key file (sort of ini-style format).
@@ -163,12 +160,61 @@ warning messages.
The following log domains are available: [NONE, HW, RFKILL, ETHER, WIFI, BT, MB,
DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT,
AGENTS, SETTINGS, SUSPEND, CORE, DEVICE, OLPC, WIMAX]. When "NONE" is given by
-itself, logging is disabled. MB = Mobile Broadband, AGENTS = secret agents
-operations and communication, SETTINGS = settings/config service operations,
-OLPC = OLPC Mesh device operations, CORE = core daemon operations, DEVICE =
-activation and general interface operations.
+itself, logging is disabled.
+.PP
+.RS
+HW = Hardware related operations
+.br
+RFKILL = RFKill subsystem operations
+.br
+ETHER = Ethernet device operations
+.br
+WIFI = Wi-Fi device operations
+.br
+BT = Bluetooth
+.br
+MB = Mobile Broadband
+.br
+DHCP4 = DHCP for IPv4
+.br
+DHCP6 = DHCP for IPv6
+.br
+PPP = Point-to-point protocol operations
+.br
+WIFI_SCAN = Wi-Fi scanning operations
+.br
+IP4 = Domain for IPv4 logging
+.br
+IP6 = Domain for IPv6 logging
+.br
+AUTOIP4 = AutoIP (avahi) operations
+.br
+DNS = Domain Name System related operations
+.br
+VPN = Virtual Private Network connections and operaions
+.br
+SHARING = Connection sharing
+.br
+SUPPLICANT = WPA supplicant related operations
+.br
+AGENTS = Secret agents operations and communication
+.br
+SETTINGS = Settings/config service operations
+.br
+SUSPEND = Suspend/resume
+.br
+CORE = Core daemon operations
+.br
+DEVICE = Activation and general interface operations
+.br
+OLPC = OLPC Mesh device operations
+.br
+WIMAX = Wimax device operations
+.br
.SH "SEE ALSO"
.BR http://live.gnome.org/NetworkManager/SystemSettings
.sp
.BR NetworkManager (8),
-.BR nm\-tool (1).
+.BR nmcli (1),
+.BR nm\-tool (1),
+.BR nm\-online (1).
diff --git a/po/es.po b/po/es.po
index 8ee753166..802d482f8 100644
--- a/po/es.po
+++ b/po/es.po
@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: NetworkManager.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2011-03-03 03:25+0000\n"
+"product=NetworkManager&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-05-18 03:24+0000\n"
"PO-Revision-Date: 2011-03-13 15:03+0100\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
@@ -25,36 +25,36 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ../cli/src/connections.c:62 ../cli/src/connections.c:76
-#: ../cli/src/devices.c:99 ../cli/src/devices.c:112 ../cli/src/devices.c:122
-#: ../cli/src/devices.c:132 ../cli/src/devices.c:146 ../cli/src/devices.c:160
-#: ../cli/src/devices.c:171 ../cli/src/devices.c:182 ../cli/src/devices.c:191
-#: ../cli/src/devices.c:200 ../cli/src/devices.c:222
+#: ../cli/src/connections.c:64 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124
+#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162
+#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:224
msgid "NAME"
msgstr "NOMBRE"
#. 0
-#: ../cli/src/connections.c:63 ../cli/src/connections.c:77
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:79
msgid "UUID"
msgstr "UUID"
#. 1
-#: ../cli/src/connections.c:64
+#: ../cli/src/connections.c:66
msgid "DEVICES"
msgstr "DISPOSITIVOS"
#. 2
-#: ../cli/src/connections.c:65
+#: ../cli/src/connections.c:67
msgid "DEFAULT"
msgstr "PREDETERMINADO"
#. 3
-#: ../cli/src/connections.c:66
+#: ../cli/src/connections.c:68
msgid "SPEC-OBJECT"
msgstr "OBJETO SPEC"
#. 4
-#: ../cli/src/connections.c:67
+#: ../cli/src/connections.c:69
msgid "VPN"
msgstr "VPN"
@@ -63,8 +63,8 @@ msgstr "VPN"
#. 2
#. 11
#. 5
-#: ../cli/src/connections.c:68 ../cli/src/connections.c:83
-#: ../cli/src/devices.c:67 ../cli/src/devices.c:212 ../cli/src/devices.c:228
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:85
+#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230
msgid "DBUS-PATH"
msgstr "RUTA-DBUS"
@@ -72,42 +72,33 @@ msgstr "RUTA-DBUS"
#. 0
#. 1
#. 2
-#: ../cli/src/connections.c:78 ../cli/src/devices.c:65
-#: ../cli/src/devices.c:101 ../cli/src/devices.c:225
+#: ../cli/src/connections.c:80 ../cli/src/devices.c:67
+#: ../cli/src/devices.c:103 ../cli/src/devices.c:227
msgid "TYPE"
msgstr "TIPO"
#. 2
-#: ../cli/src/connections.c:79
+#: ../cli/src/connections.c:81
msgid "TIMESTAMP"
msgstr "MARCA DE TIEMPO"
#. 3
-#: ../cli/src/connections.c:80
+#: ../cli/src/connections.c:82
msgid "TIMESTAMP-REAL"
msgstr "MARCA DE TIEMPO-REAL"
#. 4
-#: ../cli/src/connections.c:81
+#: ../cli/src/connections.c:83
msgid "AUTOCONNECT"
msgstr "AUTOCONECTAR"
#. 5
-#: ../cli/src/connections.c:82
+#: ../cli/src/connections.c:84
msgid "READONLY"
msgstr "SÓLOLECTURA"
-#: ../cli/src/connections.c:166
-#, c-format
-#| msgid ""
-#| "Usage: nmcli con { COMMAND | help }\n"
-#| " COMMAND := { list | status | up | down }\n"
-#| "\n"
-#| " list [id <id> | uuid <id> | system | user]\n"
-#| " status\n"
-#| " up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--"
-#| "timeout <timeout>]\n"
-#| " down id <id> | uuid <id>\n"
+#: ../cli/src/connections.c:167
+#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
" COMMAND := { list | status | up | down }\n"
@@ -131,351 +122,347 @@ msgstr ""
"<timeout>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:219 ../cli/src/connections.c:541
+#: ../cli/src/connections.c:220 ../cli/src/connections.c:542
#, c-format
msgid "Error: 'con list': %s"
msgstr "Error: «con list»: %s"
-#: ../cli/src/connections.c:221 ../cli/src/connections.c:543
+#: ../cli/src/connections.c:222 ../cli/src/connections.c:544
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
msgstr "Error: «con list»: %s; campos permitidos: %s"
-#: ../cli/src/connections.c:229
+#: ../cli/src/connections.c:230
msgid "Connection details"
msgstr "Detalles de conexiones"
-#: ../cli/src/connections.c:416
+#: ../cli/src/connections.c:417
msgid "never"
msgstr "nunca"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:417 ../cli/src/connections.c:418
-#: ../cli/src/connections.c:596 ../cli/src/connections.c:598
-#: ../cli/src/devices.c:507 ../cli/src/devices.c:560 ../cli/src/devices.c:685
-#: ../cli/src/devices.c:711 ../cli/src/devices.c:712 ../cli/src/devices.c:713
-#: ../cli/src/devices.c:714 ../cli/src/devices.c:715 ../cli/src/settings.c:518
-#: ../cli/src/settings.c:561 ../cli/src/settings.c:661
-#: ../cli/src/settings.c:935 ../cli/src/settings.c:936
-#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
-#: ../cli/src/settings.c:1065 ../cli/src/settings.c:1066
-#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1146
-#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
+#: ../cli/src/connections.c:418 ../cli/src/connections.c:419
+#: ../cli/src/connections.c:597 ../cli/src/connections.c:599
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940 ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148
#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150
#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152
#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154
#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156
#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158
-#: ../cli/src/settings.c:1233
+#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
msgid "yes"
msgstr "sí"
-#: ../cli/src/connections.c:417 ../cli/src/connections.c:418
-#: ../cli/src/connections.c:596 ../cli/src/connections.c:598
-#: ../cli/src/devices.c:507 ../cli/src/devices.c:560 ../cli/src/devices.c:685
-#: ../cli/src/devices.c:711 ../cli/src/devices.c:712 ../cli/src/devices.c:713
-#: ../cli/src/devices.c:714 ../cli/src/devices.c:715 ../cli/src/settings.c:518
-#: ../cli/src/settings.c:520 ../cli/src/settings.c:561
-#: ../cli/src/settings.c:661 ../cli/src/settings.c:935
-#: ../cli/src/settings.c:936 ../cli/src/settings.c:938
-#: ../cli/src/settings.c:940 ../cli/src/settings.c:1065
-#: ../cli/src/settings.c:1066 ../cli/src/settings.c:1067
-#: ../cli/src/settings.c:1146 ../cli/src/settings.c:1147
+#: ../cli/src/connections.c:418 ../cli/src/connections.c:419
+#: ../cli/src/connections.c:597 ../cli/src/connections.c:599
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663 ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151
#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153
#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155
#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157
-#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1233
+#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235
msgid "no"
msgstr "no"
-#: ../cli/src/connections.c:492
-#| msgid "Connection details"
+#: ../cli/src/connections.c:493
msgid "Connection list"
msgstr "Lista de conexiones"
-#: ../cli/src/connections.c:505 ../cli/src/connections.c:1457
-#: ../cli/src/connections.c:1472 ../cli/src/connections.c:1481
-#: ../cli/src/connections.c:1491 ../cli/src/connections.c:1503
-#: ../cli/src/connections.c:1598 ../cli/src/devices.c:1188
-#: ../cli/src/devices.c:1198 ../cli/src/devices.c:1312
-#: ../cli/src/devices.c:1319 ../cli/src/devices.c:1532
-#: ../cli/src/devices.c:1539
+#: ../cli/src/connections.c:506 ../cli/src/connections.c:1378
+#: ../cli/src/connections.c:1393 ../cli/src/connections.c:1402
+#: ../cli/src/connections.c:1412 ../cli/src/connections.c:1424
+#: ../cli/src/connections.c:1519 ../cli/src/devices.c:1190
+#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314
+#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534
+#: ../cli/src/devices.c:1541
#, c-format
msgid "Error: %s argument is missing."
msgstr "Error: falta el argumento %s."
-#: ../cli/src/connections.c:518
+#: ../cli/src/connections.c:519
#, c-format
msgid "Error: %s - no such connection."
msgstr "Error: %s - no hay tal conexión."
-#: ../cli/src/connections.c:524 ../cli/src/connections.c:1516
-#: ../cli/src/connections.c:1615 ../cli/src/devices.c:985
-#: ../cli/src/devices.c:1065 ../cli/src/devices.c:1212
-#: ../cli/src/devices.c:1325 ../cli/src/devices.c:1545
+#: ../cli/src/connections.c:525 ../cli/src/connections.c:1437
+#: ../cli/src/connections.c:1536 ../cli/src/devices.c:987
+#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214
+#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "Parámetro desconocido: %s\n"
-#: ../cli/src/connections.c:533
+#: ../cli/src/connections.c:534
#, c-format
msgid "Error: no valid parameter specified."
msgstr "Error: no se especificó un parámetro válido."
-#: ../cli/src/connections.c:548 ../cli/src/connections.c:1706
-#: ../cli/src/devices.c:1753 ../cli/src/network-manager.c:461
+#: ../cli/src/connections.c:549 ../cli/src/connections.c:1627
+#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463
#, c-format
msgid "Error: %s."
msgstr "Error: %s."
-#: ../cli/src/connections.c:636
+#: ../cli/src/connections.c:637
#, c-format
msgid "Error: 'con status': %s"
msgstr "Error: «con status»: %s"
-#: ../cli/src/connections.c:638
+#: ../cli/src/connections.c:639
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
msgstr "Error: «con status»: %s; campos permitidos: %s"
-#: ../cli/src/connections.c:646 ../cli/src/connections.c:1531
-#: ../cli/src/connections.c:1630 ../cli/src/devices.c:1012
-#: ../cli/src/devices.c:1074 ../cli/src/devices.c:1227
-#: ../cli/src/devices.c:1355 ../cli/src/devices.c:1574
+#: ../cli/src/connections.c:647 ../cli/src/connections.c:1452
+#: ../cli/src/connections.c:1551 ../cli/src/devices.c:1014
+#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576
#, c-format
-#| msgid "Error: Could not connect to NetworkManager."
msgid "Error: Can't find out if NetworkManager is running: %s."
msgstr "Error: no se puede saber si NetworkManager se está ejecutando: %s."
-#: ../cli/src/connections.c:650 ../cli/src/connections.c:1535
-#: ../cli/src/connections.c:1634 ../cli/src/devices.c:1016
-#: ../cli/src/devices.c:1078 ../cli/src/devices.c:1231
-#: ../cli/src/devices.c:1359 ../cli/src/devices.c:1578
+#: ../cli/src/connections.c:651 ../cli/src/connections.c:1456
+#: ../cli/src/connections.c:1555 ../cli/src/devices.c:1018
+#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233
+#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580
#, c-format
-#| msgid "NetworkManager status"
msgid "Error: NetworkManager is not running."
msgstr "Error: NetworkManager no se está ejecutando."
-#: ../cli/src/connections.c:658
+#: ../cli/src/connections.c:659
msgid "Active connections"
msgstr "Conexiones activas"
-#: ../cli/src/connections.c:1128
+#: ../cli/src/connections.c:1095
#, c-format
msgid "no active connection on device '%s'"
msgstr "conexión no activa en el dispositivo «%s»"
-#: ../cli/src/connections.c:1136
+#: ../cli/src/connections.c:1103
#, c-format
msgid "no active connection or device"
msgstr "conexión o dispositivo no activo"
-#: ../cli/src/connections.c:1207
+#: ../cli/src/connections.c:1174
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "dispositivo «%s» incompatible con conexión «%s»"
-#: ../cli/src/connections.c:1209
+#: ../cli/src/connections.c:1176
#, c-format
msgid "no device found for connection '%s'"
msgstr "no se encontró dispositivo para conexión «%s»"
-#: ../cli/src/connections.c:1220
+#: ../cli/src/connections.c:1187
msgid "activating"
msgstr "activando"
-#: ../cli/src/connections.c:1222
+#: ../cli/src/connections.c:1189
msgid "activated"
msgstr "activada"
-#: ../cli/src/connections.c:1225 ../cli/src/connections.c:1248
-#: ../cli/src/connections.c:1281 ../cli/src/devices.c:306
-#: ../cli/src/devices.c:686 ../cli/src/network-manager.c:116
-#: ../cli/src/network-manager.c:178 ../cli/src/network-manager.c:181
-#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:351
-#: ../cli/src/network-manager.c:389 ../cli/src/network-manager.c:428
-#: ../cli/src/settings.c:483 ../cli/src/utils.c:396
+#: ../cli/src/connections.c:1191 ../cli/src/devices.c:304
+msgid "deactivating"
+msgstr "desactivando"
+
+#: ../cli/src/connections.c:1194 ../cli/src/connections.c:1217
+#: ../cli/src/connections.c:1250 ../cli/src/devices.c:308
+#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118
+#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183
+#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298
+#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391
+#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485
+#: ../cli/src/utils.c:396
msgid "unknown"
msgstr "desconocido"
-#: ../cli/src/connections.c:1234
+#: ../cli/src/connections.c:1203
msgid "VPN connecting (prepare)"
msgstr "Conectando VPN (preparar)"
-#: ../cli/src/connections.c:1236
+#: ../cli/src/connections.c:1205
msgid "VPN connecting (need authentication)"
msgstr "Conectando VPN (necesita autenticación)"
-#: ../cli/src/connections.c:1238
+#: ../cli/src/connections.c:1207
msgid "VPN connecting"
msgstr "Conectando VPN"
-#: ../cli/src/connections.c:1240
+#: ../cli/src/connections.c:1209
msgid "VPN connecting (getting IP configuration)"
msgstr "Conectando VPN (obteniendo configuración IP)"
-#: ../cli/src/connections.c:1242
+#: ../cli/src/connections.c:1211
msgid "VPN connected"
msgstr "VPN conectada"
-#: ../cli/src/connections.c:1244
+#: ../cli/src/connections.c:1213
msgid "VPN connection failed"
msgstr "FalloÌ la conexioÌn VPN"
-#: ../cli/src/connections.c:1246
+#: ../cli/src/connections.c:1215
msgid "VPN disconnected"
msgstr "VPN desconectada"
-#: ../cli/src/connections.c:1257
+#: ../cli/src/connections.c:1226
msgid "unknown reason"
msgstr "razón desconocida"
-#: ../cli/src/connections.c:1259
+#: ../cli/src/connections.c:1228
msgid "none"
msgstr "ninguna"
-#: ../cli/src/connections.c:1261
+#: ../cli/src/connections.c:1230
msgid "the user was disconnected"
msgstr "el usuario estaba desconectado"
-#: ../cli/src/connections.c:1263
+#: ../cli/src/connections.c:1232
msgid "the base network connection was interrupted"
msgstr "se interrumpió la conexión de red de base"
-#: ../cli/src/connections.c:1265
+#: ../cli/src/connections.c:1234
msgid "the VPN service stopped unexpectedly"
msgstr "el servicio VPN se detuvo inesperadamente"
-#: ../cli/src/connections.c:1267
+#: ../cli/src/connections.c:1236
msgid "the VPN service returned invalid configuration"
msgstr "el servicio VPN retornó una configuración no válida"
-#: ../cli/src/connections.c:1269
+#: ../cli/src/connections.c:1238
msgid "the connection attempt timed out"
msgstr "se agotaron los intentos de conexión"
-#: ../cli/src/connections.c:1271
+#: ../cli/src/connections.c:1240
msgid "the VPN service did not start in time"
msgstr "el servicio VPN no inició a tiempo"
-#: ../cli/src/connections.c:1273
+#: ../cli/src/connections.c:1242
msgid "the VPN service failed to start"
msgstr "el servicio VPN falló en el inicio"
-#: ../cli/src/connections.c:1275
+#: ../cli/src/connections.c:1244
msgid "no valid VPN secrets"
msgstr "secretos VPN inválidos"
-#: ../cli/src/connections.c:1277
+#: ../cli/src/connections.c:1246
msgid "invalid VPN secrets"
msgstr "secretos VPN válidos"
-#: ../cli/src/connections.c:1279
+#: ../cli/src/connections.c:1248
msgid "the connection was removed"
msgstr "se eliminó la conexión"
-#: ../cli/src/connections.c:1293
+#: ../cli/src/connections.c:1262
#, c-format
msgid "state: %s\n"
msgstr "estado: %s\n"
-#: ../cli/src/connections.c:1296 ../cli/src/connections.c:1322
+#: ../cli/src/connections.c:1265 ../cli/src/connections.c:1291
#, c-format
msgid "Connection activated\n"
msgstr "Conexión activada\n"
-#: ../cli/src/connections.c:1299
+#: ../cli/src/connections.c:1268
#, c-format
msgid "Error: Connection activation failed."
msgstr "Error: falló la activación de la conexión."
-#: ../cli/src/connections.c:1318
+#: ../cli/src/connections.c:1287
#, c-format
msgid "state: %s (%d)\n"
msgstr "estado: %s (%d)\n"
-#: ../cli/src/connections.c:1328
+#: ../cli/src/connections.c:1297
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Error: falló la activación de la conexión: %s."
-#: ../cli/src/connections.c:1345 ../cli/src/devices.c:1134
+#: ../cli/src/connections.c:1314 ../cli/src/devices.c:1136
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "Error: expiró la pausa de %d segundos."
-#: ../cli/src/connections.c:1388
+#: ../cli/src/connections.c:1327
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Error: falló la activación de la conexión: %s"
-#: ../cli/src/connections.c:1402
-#, c-format
-msgid "Error: Obtaining active connection for '%s' failed."
-msgstr "Error: falló la obtención de conexión activa para «%s»."
-
-#: ../cli/src/connections.c:1411
+#: ../cli/src/connections.c:1333
#, c-format
msgid "Active connection state: %s\n"
msgstr "Estado de la conexión activa: %s\n"
-#: ../cli/src/connections.c:1412
+#: ../cli/src/connections.c:1334
#, c-format
msgid "Active connection path: %s\n"
msgstr "Ruta de la conexión activa: %s\n"
-#: ../cli/src/connections.c:1465 ../cli/src/connections.c:1606
+#: ../cli/src/connections.c:1386 ../cli/src/connections.c:1527
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Error: conexión desconocida: %s."
-#: ../cli/src/connections.c:1511 ../cli/src/devices.c:1206
+#: ../cli/src/connections.c:1432 ../cli/src/devices.c:1208
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Error: valor de pausa «%s» inválido."
-#: ../cli/src/connections.c:1524 ../cli/src/connections.c:1623
+#: ../cli/src/connections.c:1445 ../cli/src/connections.c:1544
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "Error: se debe especificar un id o uuid."
-#: ../cli/src/connections.c:1554
+#: ../cli/src/connections.c:1473
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "Error: no se encontró un dispositivo apropiado: %s."
-#: ../cli/src/connections.c:1556
+#: ../cli/src/connections.c:1475
#, c-format
msgid "Error: No suitable device found."
msgstr "Error: no se encontró un dispositivo apropiado."
-#: ../cli/src/connections.c:1659
+#: ../cli/src/connections.c:1580
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Advertencia: conexión inactiva\n"
-#: ../cli/src/connections.c:1697
+#: ../cli/src/connections.c:1618
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Error: comando «con» «%s» no es válido."
-#: ../cli/src/connections.c:1762
+#: ../cli/src/connections.c:1683
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Error: no se pudo conectar con D-Bus."
-#: ../cli/src/connections.c:1769
+#: ../cli/src/connections.c:1690
#, c-format
msgid "Error: Could not get system settings."
msgstr "Error: no se pudo obtener configuración de sistema."
-#: ../cli/src/connections.c:1779
+#: ../cli/src/connections.c:1700
#, c-format
-#| msgid "Error: Can't obtain connections: settings services are not running."
msgid "Error: Can't obtain connections: settings service is not running."
msgstr ""
"Error: no se pueden obtener conexiones: el servicio de configuración no se "
@@ -484,238 +471,223 @@ msgstr ""
#. 0
#. 9
#. 3
-#: ../cli/src/devices.c:64 ../cli/src/devices.c:100 ../cli/src/devices.c:210
-#: ../cli/src/devices.c:226
+#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212
+#: ../cli/src/devices.c:228
msgid "DEVICE"
msgstr "DISPOSITIVO"
#. 1
#. 4
#. 1
-#: ../cli/src/devices.c:66 ../cli/src/devices.c:104
-#: ../cli/src/network-manager.c:37
+#: ../cli/src/devices.c:68 ../cli/src/devices.c:106
+#: ../cli/src/network-manager.c:39
msgid "STATE"
msgstr "ESTADO"
-#: ../cli/src/devices.c:76
+#: ../cli/src/devices.c:78
msgid "GENERAL"
msgstr "GENERAL"
#. 0
-#: ../cli/src/devices.c:77
+#: ../cli/src/devices.c:79
msgid "CAPABILITIES"
msgstr "FUNCIONALIDADES"
#. 1
-#: ../cli/src/devices.c:78
+#: ../cli/src/devices.c:80
msgid "WIFI-PROPERTIES"
msgstr "PROPIEDADES-WIFI"
#. 2
-#: ../cli/src/devices.c:79
+#: ../cli/src/devices.c:81
msgid "AP"
msgstr "AP"
#. 3
-#: ../cli/src/devices.c:80
+#: ../cli/src/devices.c:82
msgid "WIRED-PROPERTIES"
msgstr "PROPIEDADES ALÃMBRICAS"
#. 4
-#: ../cli/src/devices.c:81
-#| msgid "WIFI-PROPERTIES"
+#: ../cli/src/devices.c:83
msgid "WIMAX-PROPERTIES"
msgstr "PROPIEDADES-WIMAX"
#. 5
#. 0
-#: ../cli/src/devices.c:82 ../cli/src/devices.c:223
-#| msgid "DNS"
+#: ../cli/src/devices.c:84 ../cli/src/devices.c:225
msgid "NSP"
msgstr "PSR"
#. 6
-#: ../cli/src/devices.c:83
+#: ../cli/src/devices.c:85
msgid "IP4-SETTINGS"
msgstr "CONFIGURACIONES IP4"
#. 7
-#: ../cli/src/devices.c:84
+#: ../cli/src/devices.c:86
msgid "IP4-DNS"
msgstr "DNS IP4"
#. 8
-#: ../cli/src/devices.c:85
+#: ../cli/src/devices.c:87
msgid "IP6-SETTINGS"
msgstr "CONFIGURACIONES IP6"
#. 9
-#: ../cli/src/devices.c:86
+#: ../cli/src/devices.c:88
msgid "IP6-DNS"
msgstr "DNS IP6"
#. 2
-#: ../cli/src/devices.c:102
+#: ../cli/src/devices.c:104
msgid "DRIVER"
msgstr "CONTROLADOR"
#. 3
-#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:105
msgid "HWADDR"
msgstr "HWADDR"
#. 0
-#: ../cli/src/devices.c:113
+#: ../cli/src/devices.c:115
msgid "CARRIER-DETECT"
msgstr "DETECTAR-PORTADOR"
#. 1
-#: ../cli/src/devices.c:114
+#: ../cli/src/devices.c:116
msgid "SPEED"
msgstr "VELOCIDAD"
#. 0
-#: ../cli/src/devices.c:123
+#: ../cli/src/devices.c:125
msgid "CARRIER"
msgstr "PORTADOR"
#. 0
-#: ../cli/src/devices.c:133
+#: ../cli/src/devices.c:135
msgid "WEP"
msgstr "WEP"
#. 1
-#: ../cli/src/devices.c:134
+#: ../cli/src/devices.c:136
msgid "WPA"
msgstr "WPA"
#. 2
-#: ../cli/src/devices.c:135
+#: ../cli/src/devices.c:137
msgid "WPA2"
msgstr "WPA2"
#. 3
-#: ../cli/src/devices.c:136
+#: ../cli/src/devices.c:138
msgid "TKIP"
msgstr "TKIP"
#. 4
-#: ../cli/src/devices.c:137
+#: ../cli/src/devices.c:139
msgid "CCMP"
msgstr "CCMP"
#. 0
-#: ../cli/src/devices.c:147
-#| msgid "FREQ"
+#: ../cli/src/devices.c:149
msgid "CTR-FREQ"
msgstr "CTR-FREC"
#. 1
-#: ../cli/src/devices.c:148
-#| msgid "SSID"
+#: ../cli/src/devices.c:150
msgid "RSSI"
msgstr "RSSI"
#. 2
-#: ../cli/src/devices.c:149
+#: ../cli/src/devices.c:151
msgid "CINR"
msgstr "CINR"
#. 3
-#: ../cli/src/devices.c:150
+#: ../cli/src/devices.c:152
msgid "TX-POW"
msgstr "TX-POW"
#. 4
-#: ../cli/src/devices.c:151
-#| msgid "BSSID"
+#: ../cli/src/devices.c:153
msgid "BSID"
msgstr "BSID"
#. 0
-#: ../cli/src/devices.c:161 ../cli/src/devices.c:172
+#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
msgid "ADDRESS"
msgstr "DIRECCIÓN"
#. 1
-#: ../cli/src/devices.c:162 ../cli/src/devices.c:173
+#: ../cli/src/devices.c:164 ../cli/src/devices.c:175
msgid "PREFIX"
msgstr "PREFIJO"
#. 2
-#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
+#: ../cli/src/devices.c:165 ../cli/src/devices.c:176
msgid "GATEWAY"
msgstr "PUERTA DE ENLACE"
#. 0
-#: ../cli/src/devices.c:183 ../cli/src/devices.c:192
+#: ../cli/src/devices.c:185 ../cli/src/devices.c:194
msgid "DNS"
msgstr "DNS"
#. 0
-#: ../cli/src/devices.c:201
+#: ../cli/src/devices.c:203
msgid "SSID"
msgstr "SSID"
#. 1
-#: ../cli/src/devices.c:202
+#: ../cli/src/devices.c:204
msgid "BSSID"
msgstr "BSSID"
#. 2
-#: ../cli/src/devices.c:203
+#: ../cli/src/devices.c:205
msgid "MODE"
msgstr "MODO"
#. 3
-#: ../cli/src/devices.c:204
+#: ../cli/src/devices.c:206
msgid "FREQ"
msgstr "FREC"
#. 4
-#: ../cli/src/devices.c:205
+#: ../cli/src/devices.c:207
msgid "RATE"
msgstr "TASA"
#. 5
#. 1
-#: ../cli/src/devices.c:206 ../cli/src/devices.c:224
+#: ../cli/src/devices.c:208 ../cli/src/devices.c:226
msgid "SIGNAL"
msgstr "SEÑAL"
#. 6
-#: ../cli/src/devices.c:207
+#: ../cli/src/devices.c:209
msgid "SECURITY"
msgstr "SEGURIDAD"
#. 7
-#: ../cli/src/devices.c:208
+#: ../cli/src/devices.c:210
msgid "WPA-FLAGS"
msgstr "INDICADORES-WPA"
#. 8
-#: ../cli/src/devices.c:209
+#: ../cli/src/devices.c:211
msgid "RSN-FLAGS"
msgstr "INDICADORES-RSN"
#. 10
#. 4
-#: ../cli/src/devices.c:211 ../cli/src/devices.c:227
+#: ../cli/src/devices.c:213 ../cli/src/devices.c:229
msgid "ACTIVE"
msgstr "ACTIVO"
-#: ../cli/src/devices.c:254
-#, c-format
-#| msgid ""
-#| "Usage: nmcli dev { COMMAND | help }\n"
-#| "\n"
-#| " COMMAND := { status | list | disconnect | wifi }\n"
-#| "\n"
-#| " status\n"
-#| " list [iface <iface>]\n"
-#| " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
-#| " wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
-#| "\n"
+#: ../cli/src/devices.c:256
+#, c-format
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
"\n"
@@ -741,330 +713,306 @@ msgstr ""
" wimax [list [iface <iface>] [nsp <name>]]\n"
"\n"
-#: ../cli/src/devices.c:282
+#: ../cli/src/devices.c:284
msgid "unmanaged"
msgstr "sin gestión"
-#: ../cli/src/devices.c:284
+#: ../cli/src/devices.c:286
msgid "unavailable"
msgstr "no disponible"
-#: ../cli/src/devices.c:286 ../cli/src/network-manager.c:113
+#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115
msgid "disconnected"
msgstr "desconectado"
-#: ../cli/src/devices.c:288
+#: ../cli/src/devices.c:290
msgid "connecting (prepare)"
msgstr "conectando (preparar)"
-#: ../cli/src/devices.c:290
+#: ../cli/src/devices.c:292
msgid "connecting (configuring)"
msgstr "conectando (configurando)"
-#: ../cli/src/devices.c:292
+#: ../cli/src/devices.c:294
msgid "connecting (need authentication)"
msgstr "conectando (necesita autenticación)"
-#: ../cli/src/devices.c:294
+#: ../cli/src/devices.c:296
msgid "connecting (getting IP configuration)"
msgstr "conectando (obteniendo configuración IP)"
-#: ../cli/src/devices.c:296
-#| msgid "connecting (getting IP configuration)"
+#: ../cli/src/devices.c:298
msgid "connecting (checking IP connectivity)"
msgstr "conectando (comprobando conectividad IP)"
-#: ../cli/src/devices.c:298
-#| msgid "connecting (getting IP configuration)"
+#: ../cli/src/devices.c:300
msgid "connecting (starting secondary connections)"
msgstr "conectando (iniciando conexiones secundarias)"
-#: ../cli/src/devices.c:300 ../cli/src/network-manager.c:109
+#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111
msgid "connected"
msgstr "conectado"
-#: ../cli/src/devices.c:302
-#| msgid "activating"
-msgid "deactivating"
-msgstr "desactivando"
-
-#: ../cli/src/devices.c:304
+#: ../cli/src/devices.c:306
msgid "connection failed"
msgstr "conexión falló"
-#: ../cli/src/devices.c:329 ../cli/src/devices.c:339 ../cli/src/devices.c:499
-#: ../cli/src/devices.c:543
+#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501
+#: ../cli/src/devices.c:545
msgid "Unknown"
msgstr "desconocido"
-#: ../cli/src/devices.c:372
+#: ../cli/src/devices.c:374
msgid "(none)"
msgstr "(ninguno)"
-#: ../cli/src/devices.c:397
+#: ../cli/src/devices.c:399
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: error convirtiendo dirección IP4 0x%X"
-#: ../cli/src/devices.c:468
+#: ../cli/src/devices.c:470
#, c-format
msgid "%u MHz"
msgstr "%u MHz"
-#: ../cli/src/devices.c:469
+#: ../cli/src/devices.c:471
#, c-format
msgid "%u MB/s"
msgstr "%u MB/s"
-#: ../cli/src/devices.c:478
+#: ../cli/src/devices.c:480
msgid "Encrypted: "
msgstr "Encriptado: "
-#: ../cli/src/devices.c:483
+#: ../cli/src/devices.c:485
msgid "WEP "
msgstr "WEP"
-#: ../cli/src/devices.c:485
+#: ../cli/src/devices.c:487
msgid "WPA "
msgstr "WPA"
-#: ../cli/src/devices.c:487
+#: ../cli/src/devices.c:489
msgid "WPA2 "
msgstr "WPA2"
-#: ../cli/src/devices.c:490
+#: ../cli/src/devices.c:492
msgid "Enterprise "
msgstr "Empresa"
-#: ../cli/src/devices.c:499
+#: ../cli/src/devices.c:501
msgid "Ad-Hoc"
msgstr "Ad-Hoc"
-#: ../cli/src/devices.c:499
+#: ../cli/src/devices.c:501
msgid "Infrastructure"
msgstr "Infraestructura"
-#: ../cli/src/devices.c:534
+#: ../cli/src/devices.c:536
msgid "Home"
msgstr "Casa"
-#: ../cli/src/devices.c:537
+#: ../cli/src/devices.c:539
msgid "Partner"
msgstr "Asociado"
-#: ../cli/src/devices.c:540
+#: ../cli/src/devices.c:542
msgid "Roaming"
msgstr "Roaming"
-#: ../cli/src/devices.c:610
+#: ../cli/src/devices.c:612
#, c-format
msgid "Error: 'dev list': %s"
msgstr "Error: «dev list»: %s"
-#: ../cli/src/devices.c:612
+#: ../cli/src/devices.c:614
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
msgstr "Error: «dev list»: %s; campos permitidos: %s"
-#: ../cli/src/devices.c:621
+#: ../cli/src/devices.c:623
msgid "Device details"
msgstr "Detalles de los dispositivos"
-#: ../cli/src/devices.c:655 ../cli/src/devices.c:1150 ../cli/src/utils.c:342
+#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342
msgid "(unknown)"
msgstr "(desconocido)"
-#: ../cli/src/devices.c:656
+#: ../cli/src/devices.c:658
msgid "unknown)"
msgstr "desconocido"
-#: ../cli/src/devices.c:682
+#: ../cli/src/devices.c:684
#, c-format
msgid "%u Mb/s"
msgstr "%u Mb/s"
#. Print header
#. "WIRED-PROPERTIES"
-#: ../cli/src/devices.c:755
+#: ../cli/src/devices.c:757
msgid "on"
msgstr "encendido"
-#: ../cli/src/devices.c:755
+#: ../cli/src/devices.c:757
msgid "off"
msgstr "apagado"
-#: ../cli/src/devices.c:1002
+#: ../cli/src/devices.c:1004
#, c-format
msgid "Error: 'dev status': %s"
msgstr "Error: «dev status»: %s"
-#: ../cli/src/devices.c:1004
+#: ../cli/src/devices.c:1006
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
msgstr "Error: «dev status»: %s; campos permitidos: %s"
-#: ../cli/src/devices.c:1027
+#: ../cli/src/devices.c:1029
msgid "Status of devices"
msgstr "Estado de los dispositivos"
-#: ../cli/src/devices.c:1058
+#: ../cli/src/devices.c:1060
#, c-format
msgid "Error: '%s' argument is missing."
msgstr "Error: falta el argumento «%s»."
-#: ../cli/src/devices.c:1099 ../cli/src/devices.c:1251
-#: ../cli/src/devices.c:1387 ../cli/src/devices.c:1606
+#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253
+#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608
#, c-format
msgid "Error: Device '%s' not found."
msgstr "Error: no se encontró el dispositivo «%s»."
-#: ../cli/src/devices.c:1122
+#: ../cli/src/devices.c:1124
#, c-format
msgid "Success: Device '%s' successfully disconnected."
msgstr "Éxito: dispositivo «%s» desconectado correctamente."
-#: ../cli/src/devices.c:1147
+#: ../cli/src/devices.c:1149
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
msgstr "Error: falló la desconexión del dispositivo «%s» (%s): %s"
-#: ../cli/src/devices.c:1155
+#: ../cli/src/devices.c:1157
#, c-format
msgid "Device state: %d (%s)\n"
msgstr "Estado del dispositivo: %d (%s)\n"
-#: ../cli/src/devices.c:1220
+#: ../cli/src/devices.c:1222
#, c-format
msgid "Error: iface has to be specified."
msgstr "Error: se debe especificar iface."
-#: ../cli/src/devices.c:1345
+#: ../cli/src/devices.c:1347
#, c-format
msgid "Error: 'dev wifi': %s"
msgstr "Error: «dev wifi» «%s»"
-#: ../cli/src/devices.c:1347
+#: ../cli/src/devices.c:1349
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
msgstr "Error: «dev wifi»: %s; campos permitidos: %s"
-#: ../cli/src/devices.c:1370
+#: ../cli/src/devices.c:1372
msgid "WiFi scan list"
msgstr "lista de análisis WiFi"
-#: ../cli/src/devices.c:1407 ../cli/src/devices.c:1461
-#: ../cli/src/devices.c:1668
+#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463
+#: ../cli/src/devices.c:1670
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
msgstr "Error: no se encontró el punto de acceso con hwaddr «%s»."
-#: ../cli/src/devices.c:1424
+#: ../cli/src/devices.c:1426
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
msgstr "Error: el dispositivo «%s» no es un dispositivo WiFi."
-#: ../cli/src/devices.c:1488
+#: ../cli/src/devices.c:1490
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
msgstr "Error: comando «dev wifi» «%s» inválido."
-#: ../cli/src/devices.c:1564
+#: ../cli/src/devices.c:1566
#, c-format
-#| msgid "Error: 'dev wifi': %s"
msgid "Error: 'dev wimax': %s"
msgstr "Error: «dev wimax» «%s»"
-#: ../cli/src/devices.c:1566
+#: ../cli/src/devices.c:1568
#, c-format
-#| msgid "Error: 'dev wifi': %s; allowed fields: %s"
msgid "Error: 'dev wimax': %s; allowed fields: %s"
msgstr "Error: «dev wimax»: %s; campos permitidos: %s"
-#: ../cli/src/devices.c:1589
+#: ../cli/src/devices.c:1591
msgid "WiMAX NSP list"
msgstr "Lista PSR WiMAX"
-#: ../cli/src/devices.c:1626
+#: ../cli/src/devices.c:1628
#, c-format
-#| msgid "Error: Device '%s' not found."
msgid "Error: NSP with name '%s' not found."
msgstr "Error: no se encontró el PSR con el nombre «%s»."
-#: ../cli/src/devices.c:1637
+#: ../cli/src/devices.c:1639
#, c-format
-#| msgid "Error: Device '%s' is not a WiFi device."
msgid "Error: Device '%s' is not a WiMAX device."
msgstr "Error: el dispositivo «%s» no es un dispositivo WiMAX."
-#: ../cli/src/devices.c:1695
+#: ../cli/src/devices.c:1697
#, c-format
-#| msgid "Error: 'dev wifi' command '%s' is not valid."
msgid "Error: 'dev wimax' command '%s' is not valid."
msgstr "Error: comando «dev wimax» «%s» no válido."
-#: ../cli/src/devices.c:1745
+#: ../cli/src/devices.c:1747
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
msgstr "Error: comando «dev» «%s» no válido."
-#: ../cli/src/network-manager.c:35
+#: ../cli/src/network-manager.c:37
msgid "RUNNING"
msgstr "EJECUTANDO"
#. 0
-#: ../cli/src/network-manager.c:36
+#: ../cli/src/network-manager.c:38
msgid "VERSION"
msgstr "VERSIÓN"
#. 2
-#: ../cli/src/network-manager.c:38
+#: ../cli/src/network-manager.c:40
msgid "NET-ENABLED"
msgstr "RED-ACTIVADA"
#. 3
-#: ../cli/src/network-manager.c:39
+#: ../cli/src/network-manager.c:41
msgid "WIFI-HARDWARE"
msgstr "HARDWARE-WIFI"
#. 4
-#: ../cli/src/network-manager.c:40
+#: ../cli/src/network-manager.c:42
msgid "WIFI"
msgstr "WIFI"
#. 5
-#: ../cli/src/network-manager.c:41
+#: ../cli/src/network-manager.c:43
msgid "WWAN-HARDWARE"
msgstr "HARDWARE-WWAN"
#. 6
-#: ../cli/src/network-manager.c:42
+#: ../cli/src/network-manager.c:44
msgid "WWAN"
msgstr "WWAN"
#. 7
-#: ../cli/src/network-manager.c:43
-#| msgid "WIFI-HARDWARE"
+#: ../cli/src/network-manager.c:45
msgid "WIMAX-HARDWARE"
msgstr "HARDWARE-WIMAX"
#. 8
-#: ../cli/src/network-manager.c:44
+#: ../cli/src/network-manager.c:46
msgid "WIMAX"
msgstr "WIMAX"
-#: ../cli/src/network-manager.c:72
-#, c-format
-#| msgid ""
-#| "Usage: nmcli nm { COMMAND | help }\n"
-#| "\n"
-#| " COMMAND := { status | enable | sleep | wifi | wwan }\n"
-#| "\n"
-#| " status\n"
-#| " enable [true|false]\n"
-#| " sleep [true|false]\n"
-#| " wifi [on|off]\n"
-#| " wwan [on|off]\n"
-#| "\n"
+#: ../cli/src/network-manager.c:74
+#, c-format
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
@@ -1094,164 +1042,142 @@ msgstr ""
" wimax [on|off]\n"
"\n"
-#: ../cli/src/network-manager.c:101
+#: ../cli/src/network-manager.c:103
msgid "asleep"
msgstr "dormido"
-#: ../cli/src/network-manager.c:103
+#: ../cli/src/network-manager.c:105
msgid "connecting"
msgstr "conectando"
-#: ../cli/src/network-manager.c:105
+#: ../cli/src/network-manager.c:107
msgid "connected (local only)"
msgstr "conectado (sólo local)"
-#: ../cli/src/network-manager.c:107
-#| msgid "connected"
+#: ../cli/src/network-manager.c:109
msgid "connected (site only)"
msgstr "conectado (sólo el sitio)"
-#: ../cli/src/network-manager.c:111
-#| msgid "connecting"
+#: ../cli/src/network-manager.c:113
msgid "disconnecting"
msgstr "desconectando"
-#: ../cli/src/network-manager.c:151
+#: ../cli/src/network-manager.c:153
#, c-format
msgid "Error: 'nm status': %s"
msgstr "Error: «nm status»: %s"
-#: ../cli/src/network-manager.c:153
+#: ../cli/src/network-manager.c:155
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
msgstr "Error: «nm status»: %s; campos permitidos: %s"
#. create NMClient
-#: ../cli/src/network-manager.c:166 ../cli/src/network-manager.c:167
#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
-#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:172
-#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:294
-#: ../cli/src/network-manager.c:349 ../cli/src/network-manager.c:387
-#: ../cli/src/network-manager.c:426
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "enabled"
msgstr "activado"
-#: ../cli/src/network-manager.c:166 ../cli/src/network-manager.c:167
#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
-#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:172
-#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:294
-#: ../cli/src/network-manager.c:349 ../cli/src/network-manager.c:387
-#: ../cli/src/network-manager.c:426
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "disabled"
msgstr "desactivado"
-#: ../cli/src/network-manager.c:186
+#: ../cli/src/network-manager.c:188
msgid "NetworkManager status"
msgstr "Estado de NetworkManager"
#. Print header
-#: ../cli/src/network-manager.c:189
+#: ../cli/src/network-manager.c:191
msgid "running"
msgstr "ejecutando"
-#: ../cli/src/network-manager.c:189
+#: ../cli/src/network-manager.c:191
msgid "not running"
msgstr "no ejecutando"
-#: ../cli/src/network-manager.c:220 ../cli/src/utils.c:322
+#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322
#, c-format
msgid "Error: Couldn't connect to system bus: %s"
msgstr "Error: no se pudo conectar con el bus del sistema: %s"
-#: ../cli/src/network-manager.c:231
+#: ../cli/src/network-manager.c:233
#, c-format
msgid "Error: Couldn't create D-Bus object proxy."
msgstr "Error: no se pudo crear un objeto proxy en D-Bus."
-#: ../cli/src/network-manager.c:237
+#: ../cli/src/network-manager.c:239
#, c-format
msgid "Error in sleep: %s"
msgstr "Error al dormir: %s"
-#: ../cli/src/network-manager.c:281 ../cli/src/network-manager.c:336
-#: ../cli/src/network-manager.c:374 ../cli/src/network-manager.c:413
+#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "Error: «--fields» valor «%s» no es válido aquí; campos permitidos: %s"
-#: ../cli/src/network-manager.c:289
+#: ../cli/src/network-manager.c:291
msgid "Networking enabled"
msgstr "Red activada"
-#: ../cli/src/network-manager.c:305
+#: ../cli/src/network-manager.c:307
#, c-format
msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
msgstr "Error: parámetro «enable» inválido: «%s»; use «true» o «false»."
-#: ../cli/src/network-manager.c:315
+#: ../cli/src/network-manager.c:317
#, c-format
msgid "Error: Sleeping status is not exported by NetworkManager."
msgstr "Error: NetworkManager no exporta el estado para dormir."
-#: ../cli/src/network-manager.c:323
+#: ../cli/src/network-manager.c:325
#, c-format
msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr "Error: parámetro «wifi» inválido: «%s»."
-#: ../cli/src/network-manager.c:344
+#: ../cli/src/network-manager.c:346
msgid "WiFi enabled"
msgstr "WiFi activado"
-#: ../cli/src/network-manager.c:360
+#: ../cli/src/network-manager.c:362
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
msgstr "Error: parámetro «wifi» inválido: «%s»."
-#: ../cli/src/network-manager.c:382
+#: ../cli/src/network-manager.c:384
msgid "WWAN enabled"
msgstr "WWAN activado"
-#: ../cli/src/network-manager.c:398
+#: ../cli/src/network-manager.c:400
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
msgstr "Error: parámetro «wwan» inválido: «%s»."
-#: ../cli/src/network-manager.c:421
-#| msgid "WiFi enabled"
+#: ../cli/src/network-manager.c:423
msgid "WiMAX enabled"
msgstr "WiMAX activado"
-#: ../cli/src/network-manager.c:437
+#: ../cli/src/network-manager.c:439
#, c-format
-#| msgid "Error: invalid 'wifi' parameter: '%s'."
msgid "Error: invalid 'wimax' parameter: '%s'."
msgstr "Error: parámetro «wimax» inválido: «%s»."
-#: ../cli/src/network-manager.c:450
+#: ../cli/src/network-manager.c:452
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "Error: comando «nm» command «%s» inválido."
#: ../cli/src/nmcli.c:64
#, c-format
-#| msgid ""
-#| "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
-#| "\n"
-#| "OPTIONS\n"
-#| " -t[erse] terse output\n"
-#| " -p[retty] pretty output\n"
-#| " -m[ode] tabular|multiline output mode\n"
-#| " -f[ields] <field1,field2,...>|all|common specify fields to output\n"
-#| " -e[scape] yes|no escape columns separators in "
-#| "values\n"
-#| " -v[ersion] show program version\n"
-#| " -h[elp] print this help\n"
-#| "\n"
-#| "OBJECT\n"
-#| " nm NetworkManager status\n"
-#| " con NetworkManager connections\n"
-#| " dev devices managed by NetworkManager\n"
-#| "\n"
msgid ""
"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
"\n"
@@ -1351,7 +1277,6 @@ msgid "Caught signal %d, shutting down..."
msgstr "Señal capturada %d, apagando..."
#: ../cli/src/nmcli.c:257
-#| msgid "Error: Couldn't create D-Bus object proxy."
msgid "Error: Could not create NMClient object."
msgstr "Error: no se pudo crear un objeto NMClient."
@@ -1359,79 +1284,79 @@ msgstr "Error: no se pudo crear un objeto NMClient."
msgid "Success"
msgstr "Éxito"
-#: ../cli/src/settings.c:421
+#: ../cli/src/settings.c:423
#, c-format
msgid "%d (hex-ascii-key)"
msgstr "%d (clave-hex-ascii)"
-#: ../cli/src/settings.c:423
+#: ../cli/src/settings.c:425
#, c-format
msgid "%d (104/128-bit passphrase)"
msgstr "%d (frase de acceso 104/128-bits)"
-#: ../cli/src/settings.c:426
+#: ../cli/src/settings.c:428
#, c-format
msgid "%d (unknown)"
msgstr "%d (desconocido)"
-#: ../cli/src/settings.c:452
+#: ../cli/src/settings.c:454
msgid "0 (unknown)"
msgstr "0 (desconocido)"
-#: ../cli/src/settings.c:458
+#: ../cli/src/settings.c:460
msgid "any, "
msgstr "cualquiera,"
-#: ../cli/src/settings.c:460
+#: ../cli/src/settings.c:462
msgid "900 MHz, "
msgstr "900 MHz, "
-#: ../cli/src/settings.c:462
+#: ../cli/src/settings.c:464
msgid "1800 MHz, "
msgstr "1800 MHz, "
-#: ../cli/src/settings.c:464
+#: ../cli/src/settings.c:466
msgid "1900 MHz, "
msgstr "1900 MHz, "
-#: ../cli/src/settings.c:466
+#: ../cli/src/settings.c:468
msgid "850 MHz, "
msgstr "850 MHz, "
-#: ../cli/src/settings.c:468
+#: ../cli/src/settings.c:470
msgid "WCDMA 3GPP UMTS 2100 MHz, "
msgstr "WCDMA 3GPP UMTS 2100 MHz, "
-#: ../cli/src/settings.c:470
+#: ../cli/src/settings.c:472
msgid "WCDMA 3GPP UMTS 1800 MHz, "
msgstr "WCDMA 3GPP UMTS 1800 MHz, "
-#: ../cli/src/settings.c:472
+#: ../cli/src/settings.c:474
msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
-#: ../cli/src/settings.c:474
+#: ../cli/src/settings.c:476
msgid "WCDMA 3GPP UMTS 800 MHz, "
msgstr "WCDMA 3GPP UMTS 800 MHz, "
-#: ../cli/src/settings.c:476
+#: ../cli/src/settings.c:478
msgid "WCDMA 3GPP UMTS 850 MHz, "
msgstr "WCDMA 3GPP UMTS 850 MHz, "
-#: ../cli/src/settings.c:478
+#: ../cli/src/settings.c:480
msgid "WCDMA 3GPP UMTS 900 MHz, "
msgstr "WCDMA 3GPP UMTS 900 MHz, "
-#: ../cli/src/settings.c:480
+#: ../cli/src/settings.c:482
msgid "WCDMA 3GPP UMTS 1700 MHz, "
msgstr "WCDMA 3GPP UMTS 1700 MHz, "
-#: ../cli/src/settings.c:564 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:566 ../cli/src/settings.c:732
msgid "auto"
msgstr "auto"
-#: ../cli/src/settings.c:725 ../cli/src/settings.c:728
-#: ../cli/src/settings.c:729 ../cli/src/utils.c:176
+#: ../cli/src/settings.c:727 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:731 ../cli/src/utils.c:176
msgid "not set"
msgstr "no establecido"
@@ -1457,7 +1382,6 @@ msgstr "Opción «--terse» requiere valores de «--fields» específicos, no «
#: ../cli/src/utils.c:333
#, c-format
-#| msgid "Error: Couldn't create D-Bus object proxy."
msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus"
msgstr ""
"Error: no se pudo crear un objeto proxy en D-Bus para org.freedesktop.DBus"
@@ -1483,350 +1407,378 @@ msgid ""
"execution using --nocheck, but the results are unpredictable."
msgstr ""
"Error: las versiones de nmcli (%s) y de NetworkManager (%s) no coinciden. "
-"Fuerce la ejecución usando «--nocheck», pero los resultados son "
-"impredecibles."
+"Fuerce la ejecución usando «--nocheck», pero los resultados son impredecibles."
-#: ../libnm-util/crypto.c:125
+#: ../libnm-util/crypto.c:133
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "El archivo de clave PEM no tiene la etiqueta de finalización «%s»."
-#: ../libnm-util/crypto.c:138
+#: ../libnm-util/crypto.c:146
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "No parece ser un archivo de clave privada PEM."
-#: ../libnm-util/crypto.c:146
+#: ../libnm-util/crypto.c:154
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr "No hay memoria suficiente para almacenar el archivo de datos PEM."
-#: ../libnm-util/crypto.c:162
+#: ../libnm-util/crypto.c:170
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr "Archivo PEM mal formado: la primera etiqueta no era Proc-Type."
-#: ../libnm-util/crypto.c:170
+#: ../libnm-util/crypto.c:178
#, c-format
msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
msgstr "Archivo PEM mal formado: etiqueta Proc-Type «%s» desconocida."
-#: ../libnm-util/crypto.c:180
+#: ../libnm-util/crypto.c:188
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
msgstr "Archivo PEM mal formado: la segunda etiqueta no era DEK-Info."
-#: ../libnm-util/crypto.c:191
+#: ../libnm-util/crypto.c:199
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr "Archivo PEM mal formado: no se encontró IV en la etiqueta DEK-Info."
-#: ../libnm-util/crypto.c:198
+#: ../libnm-util/crypto.c:206
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr ""
"Archivo PEM mal formado: formato de IV no válido en la etiqueta DEK-Info."
-#: ../libnm-util/crypto.c:211
+#: ../libnm-util/crypto.c:219
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr "Archivo PEM malformado: cifrador de clave privada «%s» desconocido."
-#: ../libnm-util/crypto.c:230
+#: ../libnm-util/crypto.c:238
#, c-format
msgid "Could not decode private key."
msgstr "No se pudo decodificar la clave privada."
-#: ../libnm-util/crypto.c:266 ../libnm-util/crypto.c:552
+#: ../libnm-util/crypto.c:284
+msgid "Failed to find expected PKCS#8 start tag."
+msgstr "Falló al buscar la etiqueta de inicio de PKCS#8."
+
+#: ../libnm-util/crypto.c:292
+#, c-format
+msgid "Failed to find expected PKCS#8 end tag '%s'."
+msgstr "Falló al buscar la etiqueta de final «%s» de PKCS#8."
+
+#: ../libnm-util/crypto.c:312
+#| msgid "Not enough memory to store file data."
+msgid "Not enough memory to store private key data."
+msgstr "No hay memoria suficiente para almacenar los datos de la clave privada."
+
+#: ../libnm-util/crypto.c:317
+#| msgid "Failed to decrypt the private key."
+msgid "Failed to decode PKCS#8 private key."
+msgstr "Falló al descifrar la clave privada PKCS#8."
+
+#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625
#, c-format
msgid "Not enough memory to store certificate data."
msgstr "No hay memoria suficiente para almacenar los datos del certificado."
-#: ../libnm-util/crypto.c:292
+#: ../libnm-util/crypto.c:365
#, c-format
msgid "IV must be an even number of bytes in length."
msgstr "IV debe ser un número par de bytes de longitud."
-#: ../libnm-util/crypto.c:301
+#: ../libnm-util/crypto.c:374
#, c-format
msgid "Not enough memory to store the IV."
msgstr "No hay memoria suficiente para almacenar la IV."
-#: ../libnm-util/crypto.c:312
+#: ../libnm-util/crypto.c:385
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "IV contiene dígitos no hexadecimales."
-#: ../libnm-util/crypto.c:350 ../libnm-util/crypto_gnutls.c:148
-#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171
-#: ../libnm-util/crypto_nss.c:336
+#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147
+#: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167
+#: ../libnm-util/crypto_nss.c:332
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "Se desconocía el cifrador de clave privada «%s»."
-#: ../libnm-util/crypto.c:359
+#: ../libnm-util/crypto.c:432
#, c-format
msgid "Not enough memory to decrypt private key."
msgstr "No hay memoria suficiente para descifrar la clave privada."
-#: ../libnm-util/crypto.c:424
+#: ../libnm-util/crypto.c:497
#, c-format
msgid "Not enough memory to store decrypted private key."
msgstr "No hay memoria suficiente para almacenar la clave privada descifrada."
-#: ../libnm-util/crypto.c:469
+#: ../libnm-util/crypto.c:542
#, c-format
msgid "Unable to determine private key type."
msgstr "No se pudo determinar el tipo de clave privada."
-#: ../libnm-util/crypto.c:524
+#: ../libnm-util/crypto.c:597
#, c-format
-#| msgid "PEM certificate '%s' had no end tag '%s'."
msgid "PEM certificate had no start tag '%s'."
msgstr "El certificado PEM no tiene etiqueta de inicio «%s»."
-#: ../libnm-util/crypto.c:533
+#: ../libnm-util/crypto.c:606
#, c-format
-#| msgid "PEM certificate '%s' had no end tag '%s'."
msgid "PEM certificate had no end tag '%s'."
msgstr "El certificado PEM no tiene etiqueta de finalización «%s»."
-#: ../libnm-util/crypto.c:557
+#: ../libnm-util/crypto.c:630
#, c-format
msgid "Failed to decode certificate."
msgstr "No se pudo decodificar el certificado."
-#: ../libnm-util/crypto_gnutls.c:49
+#: ../libnm-util/crypto_gnutls.c:50
msgid "Failed to initialize the crypto engine."
msgstr "Falló al inicializar el motor de descifrado."
-#: ../libnm-util/crypto_gnutls.c:93
+#: ../libnm-util/crypto_gnutls.c:92
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
msgstr "Falló al inicializar el motor MD5: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:156
+#: ../libnm-util/crypto_gnutls.c:155
#, c-format
msgid "Invalid IV length (must be at least %zd)."
msgstr "Longitud IV inválida (debe ser al menos de %zd)."
-#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#: ../libnm-util/crypto_gnutls.c:164 ../libnm-util/crypto_nss.c:184
#, c-format
msgid "Not enough memory for decrypted key buffer."
msgstr "No hay memoria suficiente para el búfer de la clave descifrada."
-#: ../libnm-util/crypto_gnutls.c:173
+#: ../libnm-util/crypto_gnutls.c:172
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
msgstr "Falló al inicializar el contexto de descifrado: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:182
+#: ../libnm-util/crypto_gnutls.c:181
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
msgstr "Falló al establecer la clave simétrica para el descifrado: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:191
+#: ../libnm-util/crypto_gnutls.c:190
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
msgstr "Falló al establecer IV para el descifrado: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:200
+#: ../libnm-util/crypto_gnutls.c:199
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
msgstr "Falló al descifrar la clave privada: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#: ../libnm-util/crypto_gnutls.c:209 ../libnm-util/crypto_nss.c:263
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr "Falló al descifrar la clave privada: longitud inesperada del relleno."
-#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#: ../libnm-util/crypto_gnutls.c:220 ../libnm-util/crypto_nss.c:274
#, c-format
msgid "Failed to decrypt the private key."
msgstr "Falló al descifrar la clave privada."
-#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#: ../libnm-util/crypto_gnutls.c:285 ../libnm-util/crypto_nss.c:352
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "No se pudo reservar memoria para el cifrado."
-#: ../libnm-util/crypto_gnutls.c:294
+#: ../libnm-util/crypto_gnutls.c:293
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
msgstr "Falló al inicializar el contexto de cifrador: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:303
+#: ../libnm-util/crypto_gnutls.c:302
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
msgstr "Falló al establecer la clave simétrica para el cifrado: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:313
+#: ../libnm-util/crypto_gnutls.c:312
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
msgstr "Falló al establecer IV para el cifrado: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:322
+#: ../libnm-util/crypto_gnutls.c:321
#, c-format
msgid "Failed to encrypt the data: %s / %s."
msgstr "Falló al cifrar los datos: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:362
+#: ../libnm-util/crypto_gnutls.c:361
#, c-format
msgid "Error initializing certificate data: %s"
msgstr "Error al inicializar los datos del certificado: %s"
-#: ../libnm-util/crypto_gnutls.c:384
+#: ../libnm-util/crypto_gnutls.c:383
#, c-format
msgid "Couldn't decode certificate: %s"
msgstr "No se pudo decodificar el certificado: %s"
-#: ../libnm-util/crypto_gnutls.c:408
+#: ../libnm-util/crypto_gnutls.c:407
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
msgstr "No se pudo inicializar el decodificador PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:421
+#: ../libnm-util/crypto_gnutls.c:420
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
msgstr "No se pudo decodificar el archivo PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:433
+#: ../libnm-util/crypto_gnutls.c:432
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "No se pudo verificar el archivo PKCS#12: %s"
+#: ../libnm-util/crypto_gnutls.c:460
+#, c-format
+#| msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgid "Couldn't initialize PKCS#8 decoder: %s"
+msgstr "No se pudo inicializar el decodificador PKCS#8: %s"
+
+#: ../libnm-util/crypto_gnutls.c:483
+#, c-format
+#| msgid "Couldn't decode PKCS#12 file: %s"
+msgid "Couldn't decode PKCS#8 file: %s"
+msgstr "No se pudo decodificar el archivo PKCS#8: %s"
+
#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "Falló al inicializar el motor de cifrado: %d."
-#: ../libnm-util/crypto_nss.c:111
+#: ../libnm-util/crypto_nss.c:107
#, c-format
msgid "Failed to initialize the MD5 context: %d."
msgstr "Falló al inicializar el contexto MD5: %d"
-#: ../libnm-util/crypto_nss.c:179
+#: ../libnm-util/crypto_nss.c:175
#, c-format
msgid "Invalid IV length (must be at least %d)."
msgstr "Longitud IV inválida (debe ser al menos de %d)."
-#: ../libnm-util/crypto_nss.c:196
+#: ../libnm-util/crypto_nss.c:192
#, c-format
msgid "Failed to initialize the decryption cipher slot."
msgstr "Falló al inicializar la ranura de descifrado."
-#: ../libnm-util/crypto_nss.c:206
+#: ../libnm-util/crypto_nss.c:202
#, c-format
msgid "Failed to set symmetric key for decryption."
msgstr "Falló al establecer la clave simétrica para el descifrado."
-#: ../libnm-util/crypto_nss.c:216
+#: ../libnm-util/crypto_nss.c:212
#, c-format
msgid "Failed to set IV for decryption."
msgstr "Falló al establecer IV para el descifrado."
-#: ../libnm-util/crypto_nss.c:224
+#: ../libnm-util/crypto_nss.c:220
#, c-format
msgid "Failed to initialize the decryption context."
msgstr "Falló al inicializar el contexto de descifrado."
-#: ../libnm-util/crypto_nss.c:237
+#: ../libnm-util/crypto_nss.c:233
#, c-format
msgid "Failed to decrypt the private key: %d."
msgstr "Falló al descifrar la clave privada: %d."
-#: ../libnm-util/crypto_nss.c:245
+#: ../libnm-util/crypto_nss.c:241
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
msgstr ""
"Falló al descifrar la clave privada: los datos descifrados son demasiado "
"grandes."
-#: ../libnm-util/crypto_nss.c:256
+#: ../libnm-util/crypto_nss.c:252
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "Falló la finalización del descifrado de la clave privada: %d."
-#: ../libnm-util/crypto_nss.c:364
+#: ../libnm-util/crypto_nss.c:360
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "Falló al inicializar la ranura de cifrado."
-#: ../libnm-util/crypto_nss.c:372
+#: ../libnm-util/crypto_nss.c:368
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "Falló al establecer la clave simétrica para el cifrado."
-#: ../libnm-util/crypto_nss.c:380
+#: ../libnm-util/crypto_nss.c:376
#, c-format
msgid "Failed to set IV for encryption."
msgstr "Falló al establecer IV para el cifrado."
-#: ../libnm-util/crypto_nss.c:388
+#: ../libnm-util/crypto_nss.c:384
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "Falló al inicializar el contexto de cifrado."
-#: ../libnm-util/crypto_nss.c:396
+#: ../libnm-util/crypto_nss.c:392
#, c-format
msgid "Failed to encrypt: %d."
msgstr "Falló al cifrar: %d."
-#: ../libnm-util/crypto_nss.c:404
+#: ../libnm-util/crypto_nss.c:400
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "Cantidad inesperada de datos después del encriptado."
-#: ../libnm-util/crypto_nss.c:447
+#: ../libnm-util/crypto_nss.c:443
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "No se pudo decodificar el certificado: %d"
-#: ../libnm-util/crypto_nss.c:482
+#: ../libnm-util/crypto_nss.c:478
#, c-format
msgid "Couldn't convert password to UCS2: %d"
msgstr "No se pudo convertir la contraseña a UCS2: %d"
-#: ../libnm-util/crypto_nss.c:510
+#: ../libnm-util/crypto_nss.c:506
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "No se pudo inicializar el decodificador PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:519
+#: ../libnm-util/crypto_nss.c:515
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "No se pudo decodificar el archivo PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:528
+#: ../libnm-util/crypto_nss.c:524
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "No se pudo verificar el archivo PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:557
+#: ../libnm-util/crypto_nss.c:568
msgid "Could not generate random data."
msgstr "No se pudo generar datos aleatorios."
-#: ../libnm-util/nm-utils.c:1988
+#: ../libnm-util/nm-utils.c:2000
#, c-format
msgid "Not enough memory to make encryption key."
msgstr "No hay memoria suficiente para crear la clave privada de cifrado."
-#: ../libnm-util/nm-utils.c:2098
+#: ../libnm-util/nm-utils.c:2110
msgid "Could not allocate memory for PEM file creation."
msgstr "No se pudo reservar memoria para crear el archivo PEM."
-#: ../libnm-util/nm-utils.c:2110
+#: ../libnm-util/nm-utils.c:2122
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr "No pudo asignar memoria para escribir IV al archivo PEM."
-#: ../libnm-util/nm-utils.c:2122
+#: ../libnm-util/nm-utils.c:2134
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
msgstr ""
"No se pudo asignar memoria para escribir llave encriptada al archivo PEM."
-#: ../libnm-util/nm-utils.c:2141
+#: ../libnm-util/nm-utils.c:2153
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "No se pudo reservar memoria para el archivo de datos PEM."
@@ -1848,7 +1800,6 @@ msgid "Enable or disable WiFi devices"
msgstr "Activar o desactivar los dispositivos inalaÌmbricos"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
-#| msgid "Enable or disable mobile broadband devices"
msgid "Enable or disable WiMAX mobile broadband devices"
msgstr "Activar o desactivar los dispositivos de banda ancha moÌvil WiMAX"
@@ -1861,7 +1812,6 @@ msgid "Enable or disable system networking"
msgstr "Activar o desactivar la red del sistema"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
-#| msgid "Modify system connections"
msgid "Modify network connections for all users"
msgstr "Modificar las conexiones de red para todos los usuarios"
@@ -1870,7 +1820,6 @@ msgid "Modify persistent system hostname"
msgstr "Modificar nombre de host de sistema persistente"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
-#| msgid "Allow control of network connections"
msgid "Modify personal network connections"
msgstr "Modificar las conexiones de red personales"
@@ -1893,8 +1842,6 @@ msgstr ""
"inalaÌmbricos"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
-#| msgid ""
-#| "System policy prevents enabling or disabling mobile broadband devices"
msgid ""
"System policy prevents enabling or disabling WiMAX mobile broadband devices"
msgstr ""
@@ -1912,14 +1859,12 @@ msgid "System policy prevents enabling or disabling system networking"
msgstr "La poliÌtica del sistema evita activar o desactivar la red del sistema"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:17
-#| msgid "System policy prevents modification of system settings"
msgid "System policy prevents modification of network settings for all users"
msgstr ""
"La política del sistema evita la modificación de la configuración de la red "
"para todos los usuarios"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18
-#| msgid "System policy prevents modification of system settings"
msgid "System policy prevents modification of personal network settings"
msgstr ""
"La política del sistema evita la modificación de la configuración personal "
@@ -1948,13 +1893,13 @@ msgstr ""
"La política del sistema evita compartir conexiones a través de una red WiFi "
"abierta"
-#: ../src/main.c:519
+#: ../src/main.c:530
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr ""
"Opción no válida. Use --help para ver una lista de las opciones válidas.\n"
-#: ../src/main.c:590
+#: ../src/main.c:611
#, c-format
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. Usar --help para ver la lista de opciones válidas.\n"
@@ -1989,70 +1934,63 @@ msgstr "se pudo encontrar «dhcpcd»."
msgid "unsupported DHCP client '%s'"
msgstr "«%s» cliente DHCP sin soporte "
-#: ../src/dns-manager/nm-dns-manager.c:367
+#: ../src/dns-manager/nm-dns-manager.c:369
msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr ""
"NOTA: el resolutor de nombres de libc puede que no soporte más de 3 "
"servidores de nombres."
-#: ../src/dns-manager/nm-dns-manager.c:369
+#: ../src/dns-manager/nm-dns-manager.c:371
msgid "The nameservers listed below may not be recognized."
msgstr "Puede que los servidores de nombres listados abajo no se reconozcan."
-#: ../src/logging/nm-logging.c:148
+#: ../src/logging/nm-logging.c:149
#, c-format
msgid "Unknown log level '%s'"
msgstr "Nivel de registro desconocido «%s»"
-#: ../src/logging/nm-logging.c:173
+#: ../src/logging/nm-logging.c:174
#, c-format
msgid "Unknown log domain '%s'"
msgstr "Dominio de registro desconocido «%s»"
-#: ../src/modem-manager/nm-modem-cdma.c:294 ../src/nm-device-bt.c:353
+#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355
#, c-format
-#| msgid "connection failed"
msgid "CDMA connection %d"
msgstr "Conexión CDMA %d"
-#: ../src/modem-manager/nm-modem-gsm.c:497 ../src/nm-device-bt.c:349
+#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351
#, c-format
-#| msgid "connection failed"
msgid "GSM connection %d"
msgstr "Conexión GSM %d"
-#: ../src/nm-device-bt.c:324
+#: ../src/nm-device-bt.c:326
#, c-format
-#| msgid "VPN connection failed"
msgid "PAN connection %d"
msgstr "Conexión PAN %d"
-#: ../src/nm-device-bt.c:357
+#: ../src/nm-device-bt.c:359
#, c-format
-#| msgid "VPN connection failed"
msgid "DUN connection %d"
msgstr "Conexión DUN %d"
-#: ../src/nm-device-ethernet.c:1684
+#: ../src/nm-device-ethernet.c:1681
#, c-format
-#| msgid "VPN connection failed"
msgid "PPPoE connection %d"
msgstr "Conexión PPPoE %d"
-#: ../src/nm-device-ethernet.c:1684
+#: ../src/nm-device-ethernet.c:1681 ../src/settings/nm-settings-utils.c:50
#, c-format
-#| msgid "Active connections"
msgid "Wired connection %d"
msgstr "Conexión cableada %d"
-#: ../src/nm-device-olpc-mesh.c:422
+#: ../src/nm-device-olpc-mesh.c:423
#, c-format
msgid "Mesh %d"
msgstr "Malla %d"
-#: ../src/nm-manager.c:679
+#: ../src/nm-manager.c:673
#, c-format
-#| msgid "VPN connection failed"
msgid "VPN connection %d"
msgstr "Conexión VPN %d"
@@ -2101,15 +2039,16 @@ msgstr "no pudo unirse al grupo netlink: %s"
msgid "error updating link cache: %s"
msgstr "error al actualizar el enlace caché: %s"
-#: ../src/settings/plugins/ifcfg-rh/reader.c:3402
-#: ../src/settings/plugins/ifnet/connection_parser.c:49
+#: ../src/settings/plugins/ifcfg-rh/reader.c:3512
+#: ../src/settings/plugins/ifnet/connection_parser.c:51
msgid "System"
msgstr "Sistema"
-#: ../src/settings/nm-default-wired-connection.c:143
-#, c-format
-msgid "Auto %s"
-msgstr "Auto %s"
+#~ msgid "Error: Obtaining active connection for '%s' failed."
+#~ msgstr "Error: falló la obtención de conexión activa para «%s»."
+
+#~ msgid "Auto %s"
+#~ msgstr "Auto %s"
#~ msgid "SCOPE"
#~ msgstr "ALCANCE"
@@ -2132,9 +2071,6 @@ msgstr "Auto %s"
#~ msgid "Error: Could not get user settings."
#~ msgstr "Error: No se pudo obtener configuración de usuario."
-#~ msgid "Not enough memory to store file data."
-#~ msgstr "No hay memoria suficiente para almacenar el archivo."
-
#~ msgid "Allow use of user-specific connections"
#~ msgstr "Permitir el uso de conexiones especiÌficas de usuario"
diff --git a/po/id.po b/po/id.po
index e8adc1510..278b0e820 100644
--- a/po/id.po
+++ b/po/id.po
@@ -1,15 +1,14 @@
# Indonesian translation for network-manager
# Copyright (C) 2010 THE network-manager'S COPYRIGHT HOLDER
# This file is distributed under the same license as the network-manager package.
-# Andika Triwidada <andika@gmail.com>, 2010.
+# Andika Triwidada <andika@gmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: network-manager master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2010-08-10 03:25+0000\n"
-"PO-Revision-Date: 2010-08-10 16:04+0700\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-05-18 03:24+0000\n"
+"PO-Revision-Date: 2011-08-14 21:21+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: GNOME Indonesian Translation Team <gnome@i15n.org>\n"
"MIME-Version: 1.0\n"
@@ -19,961 +18,1352 @@ msgstr ""
"X-Poedit-Language: Indonesian\n"
"X-Poedit-Country: Indonesia\n"
-#: ../cli/src/connections.c:60 ../cli/src/connections.c:75
-#: ../cli/src/devices.c:88 ../cli/src/devices.c:101 ../cli/src/devices.c:111
-#: ../cli/src/devices.c:121 ../cli/src/devices.c:134 ../cli/src/devices.c:145
-#: ../cli/src/devices.c:156 ../cli/src/devices.c:165 ../cli/src/devices.c:174
+#: ../cli/src/connections.c:64
+#: ../cli/src/connections.c:78
+#: ../cli/src/devices.c:101
+#: ../cli/src/devices.c:114
+#: ../cli/src/devices.c:124
+#: ../cli/src/devices.c:134
+#: ../cli/src/devices.c:148
+#: ../cli/src/devices.c:162
+#: ../cli/src/devices.c:173
+#: ../cli/src/devices.c:184
+#: ../cli/src/devices.c:193
+#: ../cli/src/devices.c:202
+#: ../cli/src/devices.c:224
msgid "NAME"
msgstr "NAME"
#. 0
-#: ../cli/src/connections.c:61 ../cli/src/connections.c:76
+#: ../cli/src/connections.c:65
+#: ../cli/src/connections.c:79
msgid "UUID"
msgstr "UUID"
#. 1
-#: ../cli/src/connections.c:62
+#: ../cli/src/connections.c:66
msgid "DEVICES"
msgstr "DEVICES"
#. 2
-#: ../cli/src/connections.c:63 ../cli/src/connections.c:78
-msgid "SCOPE"
-msgstr "SCOPE"
-
-#. 3
-#: ../cli/src/connections.c:64
+#: ../cli/src/connections.c:67
msgid "DEFAULT"
msgstr "DEFAULT"
-#. 4
-#: ../cli/src/connections.c:65
-msgid "DBUS-SERVICE"
-msgstr "DBUS-SERVICE"
-
-#. 5
-#: ../cli/src/connections.c:66
+#. 3
+#: ../cli/src/connections.c:68
msgid "SPEC-OBJECT"
msgstr "SPEC-OBJECT"
-#. 6
-#: ../cli/src/connections.c:67
+#. 4
+#: ../cli/src/connections.c:69
msgid "VPN"
msgstr "VPN"
+#. 5
+#. 6
+#. 2
+#. 11
+#. 5
+#: ../cli/src/connections.c:70
+#: ../cli/src/connections.c:85
+#: ../cli/src/devices.c:69
+#: ../cli/src/devices.c:214
+#: ../cli/src/devices.c:230
+msgid "DBUS-PATH"
+msgstr "DBUS-PATH"
+
#. 1
#. 0
#. 1
-#: ../cli/src/connections.c:77 ../cli/src/devices.c:62 ../cli/src/devices.c:90
+#. 2
+#: ../cli/src/connections.c:80
+#: ../cli/src/devices.c:67
+#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:227
msgid "TYPE"
msgstr "TYPE"
-#. 3
-#: ../cli/src/connections.c:79
+#. 2
+#: ../cli/src/connections.c:81
msgid "TIMESTAMP"
msgstr "TIMESTAMP"
-#. 4
-#: ../cli/src/connections.c:80
+#. 3
+#: ../cli/src/connections.c:82
msgid "TIMESTAMP-REAL"
msgstr "TIMESTAMP-REAL"
-#. 5
-#: ../cli/src/connections.c:81
+#. 4
+#: ../cli/src/connections.c:83
msgid "AUTOCONNECT"
msgstr "AUTOCONNECT"
-#. 6
-#: ../cli/src/connections.c:82
+#. 5
+#: ../cli/src/connections.c:84
msgid "READONLY"
msgstr "READONLY"
-#: ../cli/src/connections.c:158
-#, c-format
+#: ../cli/src/connections.c:167
+#, c-format
+#| msgid ""
+#| "Usage: nmcli con { COMMAND | help }\n"
+#| " COMMAND := { list | status | up | down }\n"
+#| "\n"
+#| " list [id <id> | uuid <id> | system | user]\n"
+#| " status\n"
+#| " up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--"
+#| "timeout <timeout>]\n"
+#| " down id <id> | uuid <id>\n"
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
" COMMAND := { list | status | up | down }\n"
"\n"
-" list [id <id> | uuid <id> | system | user]\n"
+" list [id <id> | uuid <id>]\n"
" status\n"
-" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
-"<timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--nowait] [--timeout <timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n"
" down id <id> | uuid <id>\n"
msgstr ""
"Cara pakai: nmcli con { PERINTAH | help }\n"
" PERINTAH := { list | status | up | down }\n"
"\n"
-" list [id <id> | uuid <id> | system | user]\n"
+" list [id <id> | uuid <id>\n"
" status\n"
-" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
-"<timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>][--nowait] [--timeout <timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:198 ../cli/src/connections.c:537
+#: ../cli/src/connections.c:220
+#: ../cli/src/connections.c:542
#, c-format
msgid "Error: 'con list': %s"
msgstr "Galat: 'con list': %s"
-#: ../cli/src/connections.c:200 ../cli/src/connections.c:539
+#: ../cli/src/connections.c:222
+#: ../cli/src/connections.c:544
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
msgstr "Galat: 'con list': %s; ruas yang diijinkan: %s"
-#: ../cli/src/connections.c:208
+#: ../cli/src/connections.c:230
msgid "Connection details"
msgstr "Rincian koneksi"
-#: ../cli/src/connections.c:382 ../cli/src/connections.c:602
-msgid "system"
-msgstr "system"
-
-#: ../cli/src/connections.c:382 ../cli/src/connections.c:602
-msgid "user"
-msgstr "user"
-
-#: ../cli/src/connections.c:384
+#: ../cli/src/connections.c:417
msgid "never"
msgstr "never"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:385 ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603 ../cli/src/connections.c:606
-#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
-#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
-#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
-#: ../cli/src/settings.c:551 ../cli/src/settings.c:652
-#: ../cli/src/settings.c:926 ../cli/src/settings.c:927
-#: ../cli/src/settings.c:929 ../cli/src/settings.c:931
-#: ../cli/src/settings.c:1056 ../cli/src/settings.c:1057
-#: ../cli/src/settings.c:1058 ../cli/src/settings.c:1137
-#: ../cli/src/settings.c:1138 ../cli/src/settings.c:1139
-#: ../cli/src/settings.c:1140 ../cli/src/settings.c:1141
-#: ../cli/src/settings.c:1142 ../cli/src/settings.c:1143
-#: ../cli/src/settings.c:1144 ../cli/src/settings.c:1145
-#: ../cli/src/settings.c:1146 ../cli/src/settings.c:1147
-#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
-#: ../cli/src/settings.c:1224
+#: ../cli/src/connections.c:418
+#: ../cli/src/connections.c:419
+#: ../cli/src/connections.c:597
+#: ../cli/src/connections.c:599
+#: ../cli/src/devices.c:509
+#: ../cli/src/devices.c:562
+#: ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713
+#: ../cli/src/devices.c:714
+#: ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716
+#: ../cli/src/devices.c:717
+#: ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149
+#: ../cli/src/settings.c:1150
+#: ../cli/src/settings.c:1151
+#: ../cli/src/settings.c:1152
+#: ../cli/src/settings.c:1153
+#: ../cli/src/settings.c:1154
+#: ../cli/src/settings.c:1155
+#: ../cli/src/settings.c:1156
+#: ../cli/src/settings.c:1157
+#: ../cli/src/settings.c:1158
+#: ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
msgid "yes"
msgstr "ya"
-#: ../cli/src/connections.c:385 ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603 ../cli/src/connections.c:606
-#: ../cli/src/devices.c:432 ../cli/src/devices.c:557 ../cli/src/devices.c:583
-#: ../cli/src/devices.c:584 ../cli/src/devices.c:585 ../cli/src/devices.c:586
-#: ../cli/src/devices.c:587 ../cli/src/settings.c:508
-#: ../cli/src/settings.c:510 ../cli/src/settings.c:551
-#: ../cli/src/settings.c:652 ../cli/src/settings.c:926
-#: ../cli/src/settings.c:927 ../cli/src/settings.c:929
-#: ../cli/src/settings.c:931 ../cli/src/settings.c:1056
-#: ../cli/src/settings.c:1057 ../cli/src/settings.c:1058
-#: ../cli/src/settings.c:1137 ../cli/src/settings.c:1138
-#: ../cli/src/settings.c:1139 ../cli/src/settings.c:1140
-#: ../cli/src/settings.c:1141 ../cli/src/settings.c:1142
-#: ../cli/src/settings.c:1143 ../cli/src/settings.c:1144
-#: ../cli/src/settings.c:1145 ../cli/src/settings.c:1146
-#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
-#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1224
+#: ../cli/src/connections.c:418
+#: ../cli/src/connections.c:419
+#: ../cli/src/connections.c:597
+#: ../cli/src/connections.c:599
+#: ../cli/src/devices.c:509
+#: ../cli/src/devices.c:562
+#: ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713
+#: ../cli/src/devices.c:714
+#: ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716
+#: ../cli/src/devices.c:717
+#: ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522
+#: ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149
+#: ../cli/src/settings.c:1150
+#: ../cli/src/settings.c:1151
+#: ../cli/src/settings.c:1152
+#: ../cli/src/settings.c:1153
+#: ../cli/src/settings.c:1154
+#: ../cli/src/settings.c:1155
+#: ../cli/src/settings.c:1156
+#: ../cli/src/settings.c:1157
+#: ../cli/src/settings.c:1158
+#: ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
msgid "no"
msgstr "tidak"
-#: ../cli/src/connections.c:458 ../cli/src/connections.c:501
-msgid "System connections"
-msgstr "Koneksi sistem"
-
-#: ../cli/src/connections.c:463 ../cli/src/connections.c:514
-msgid "User connections"
-msgstr "Koneksi pengguna"
+#: ../cli/src/connections.c:493
+#| msgid "Connection details"
+msgid "Connection list"
+msgstr "Daftar koneksi"
-#: ../cli/src/connections.c:475 ../cli/src/connections.c:1335
-#: ../cli/src/connections.c:1351 ../cli/src/connections.c:1360
-#: ../cli/src/connections.c:1371 ../cli/src/connections.c:1456
-#: ../cli/src/devices.c:962 ../cli/src/devices.c:972 ../cli/src/devices.c:1074
-#: ../cli/src/devices.c:1081
+#: ../cli/src/connections.c:506
+#: ../cli/src/connections.c:1378
+#: ../cli/src/connections.c:1393
+#: ../cli/src/connections.c:1402
+#: ../cli/src/connections.c:1412
+#: ../cli/src/connections.c:1424
+#: ../cli/src/connections.c:1519
+#: ../cli/src/devices.c:1190
+#: ../cli/src/devices.c:1200
+#: ../cli/src/devices.c:1314
+#: ../cli/src/devices.c:1321
+#: ../cli/src/devices.c:1534
+#: ../cli/src/devices.c:1541
#, c-format
msgid "Error: %s argument is missing."
msgstr "Galat: argumen %s hilang."
-#: ../cli/src/connections.c:488
+#: ../cli/src/connections.c:519
#, c-format
msgid "Error: %s - no such connection."
msgstr "Galat: %s - koneksi tak ada."
-#: ../cli/src/connections.c:520 ../cli/src/connections.c:1384
-#: ../cli/src/connections.c:1474 ../cli/src/devices.c:785
-#: ../cli/src/devices.c:852 ../cli/src/devices.c:986 ../cli/src/devices.c:1087
+#: ../cli/src/connections.c:525
+#: ../cli/src/connections.c:1437
+#: ../cli/src/connections.c:1536
+#: ../cli/src/devices.c:987
+#: ../cli/src/devices.c:1067
+#: ../cli/src/devices.c:1214
+#: ../cli/src/devices.c:1327
+#: ../cli/src/devices.c:1547
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "Parameter tak dikenal: %s\n"
-#: ../cli/src/connections.c:529
+#: ../cli/src/connections.c:534
#, c-format
msgid "Error: no valid parameter specified."
msgstr "Galat: tak ada parameter valid yang dinyatakan."
-#: ../cli/src/connections.c:544 ../cli/src/connections.c:1577
-#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:274
+#: ../cli/src/connections.c:549
+#: ../cli/src/connections.c:1627
+#: ../cli/src/devices.c:1755
+#: ../cli/src/network-manager.c:463
#, c-format
msgid "Error: %s."
msgstr "Galat: %s."
-#: ../cli/src/connections.c:650
+#: ../cli/src/connections.c:637
#, c-format
msgid "Error: 'con status': %s"
msgstr "Galat: 'con status': %s"
-#: ../cli/src/connections.c:652
+#: ../cli/src/connections.c:639
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
msgstr "Galat: 'con status': %s; ruas yang diijinkan: %s"
+#: ../cli/src/connections.c:647
+#: ../cli/src/connections.c:1452
+#: ../cli/src/connections.c:1551
+#: ../cli/src/devices.c:1014
+#: ../cli/src/devices.c:1076
+#: ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1357
+#: ../cli/src/devices.c:1576
+#, c-format
+#| msgid "Error: Could not connect to NetworkManager."
+msgid "Error: Can't find out if NetworkManager is running: %s."
+msgstr "Galat: Tak bisa menentukan apakah NetworkManager sedang berjalan: %s."
+
+#: ../cli/src/connections.c:651
+#: ../cli/src/connections.c:1456
+#: ../cli/src/connections.c:1555
+#: ../cli/src/devices.c:1018
+#: ../cli/src/devices.c:1080
+#: ../cli/src/devices.c:1233
+#: ../cli/src/devices.c:1361
+#: ../cli/src/devices.c:1580
+#, c-format
+#| msgid "NetworkManager status"
+msgid "Error: NetworkManager is not running."
+msgstr "Galat: NetworkManager tidak sedang berjalan."
+
#: ../cli/src/connections.c:659
msgid "Active connections"
msgstr "Koneksi aktif"
-#: ../cli/src/connections.c:1027
+#: ../cli/src/connections.c:1095
#, c-format
msgid "no active connection on device '%s'"
msgstr "tak ada koneksi aktif pada perangkat '%s'"
-#: ../cli/src/connections.c:1035
+#: ../cli/src/connections.c:1103
#, c-format
msgid "no active connection or device"
msgstr "tak ada koneksi atau perangkat aktif "
-#: ../cli/src/connections.c:1085
+#: ../cli/src/connections.c:1174
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "perangkat '%s' tak kompatibel dengan koneksi '%s'"
-#: ../cli/src/connections.c:1087
+#: ../cli/src/connections.c:1176
#, c-format
msgid "no device found for connection '%s'"
msgstr "tak ditemukan perangkat bagi koneksi '%s'"
-#: ../cli/src/connections.c:1098
+#: ../cli/src/connections.c:1187
msgid "activating"
msgstr "mengaktifkan"
-#: ../cli/src/connections.c:1100
+#: ../cli/src/connections.c:1189
msgid "activated"
msgstr "diaktifkan"
-#: ../cli/src/connections.c:1103 ../cli/src/connections.c:1126
-#: ../cli/src/connections.c:1159 ../cli/src/devices.c:246
-#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:92
-#: ../cli/src/network-manager.c:145 ../cli/src/settings.c:473
+#: ../cli/src/connections.c:1191
+#: ../cli/src/devices.c:304
+#| msgid "activating"
+msgid "deactivating"
+msgstr "menonaktifkan"
+
+#: ../cli/src/connections.c:1194
+#: ../cli/src/connections.c:1217
+#: ../cli/src/connections.c:1250
+#: ../cli/src/devices.c:308
+#: ../cli/src/devices.c:688
+#: ../cli/src/network-manager.c:118
+#: ../cli/src/network-manager.c:180
+#: ../cli/src/network-manager.c:183
+#: ../cli/src/network-manager.c:192
+#: ../cli/src/network-manager.c:298
+#: ../cli/src/network-manager.c:353
+#: ../cli/src/network-manager.c:391
+#: ../cli/src/network-manager.c:430
+#: ../cli/src/settings.c:485
+#: ../cli/src/utils.c:396
msgid "unknown"
msgstr "tak diketahui"
-#: ../cli/src/connections.c:1112
+#: ../cli/src/connections.c:1203
msgid "VPN connecting (prepare)"
msgstr "VPN sedang menyiapkan"
-#: ../cli/src/connections.c:1114
+#: ../cli/src/connections.c:1205
msgid "VPN connecting (need authentication)"
msgstr "VPN sedang menyambung (perlu otentikasi)"
-#: ../cli/src/connections.c:1116
+#: ../cli/src/connections.c:1207
msgid "VPN connecting"
msgstr "VPN sedang menyambung"
-#: ../cli/src/connections.c:1118
+#: ../cli/src/connections.c:1209
msgid "VPN connecting (getting IP configuration)"
msgstr "VPN sedang menyambung (sedang mengambil konfigurasi IP)"
-#: ../cli/src/connections.c:1120
+#: ../cli/src/connections.c:1211
msgid "VPN connected"
msgstr "VPN terhubung"
-#: ../cli/src/connections.c:1122
+#: ../cli/src/connections.c:1213
msgid "VPN connection failed"
msgstr "Sambungan VPN gagal"
-#: ../cli/src/connections.c:1124
+#: ../cli/src/connections.c:1215
msgid "VPN disconnected"
msgstr "VPN diputus"
-#: ../cli/src/connections.c:1135
+#: ../cli/src/connections.c:1226
msgid "unknown reason"
msgstr "alasan tidak diketahui"
-#: ../cli/src/connections.c:1137
+#: ../cli/src/connections.c:1228
msgid "none"
msgstr "tidak ada"
-#: ../cli/src/connections.c:1139
+#: ../cli/src/connections.c:1230
msgid "the user was disconnected"
msgstr "pengguna diputus"
-#: ../cli/src/connections.c:1141
+#: ../cli/src/connections.c:1232
msgid "the base network connection was interrupted"
msgstr "koneksi jaringan dasar terputus"
-#: ../cli/src/connections.c:1143
+#: ../cli/src/connections.c:1234
msgid "the VPN service stopped unexpectedly"
msgstr "layanan VPN berhenti secara tak terduga"
-#: ../cli/src/connections.c:1145
+#: ../cli/src/connections.c:1236
msgid "the VPN service returned invalid configuration"
msgstr "layanan VPN mengembalikan konfigurasi yang tak valid"
-#: ../cli/src/connections.c:1147
+#: ../cli/src/connections.c:1238
msgid "the connection attempt timed out"
msgstr "usaha koneksi kehabisan waktu"
-#: ../cli/src/connections.c:1149
+#: ../cli/src/connections.c:1240
msgid "the VPN service did not start in time"
msgstr "layanan VPN tak mulai pada waktunya"
-#: ../cli/src/connections.c:1151
+#: ../cli/src/connections.c:1242
msgid "the VPN service failed to start"
msgstr "layanan VPN gagal dimulai"
-#: ../cli/src/connections.c:1153
+#: ../cli/src/connections.c:1244
msgid "no valid VPN secrets"
msgstr "tak ada rahasia VPN yang valid"
-#: ../cli/src/connections.c:1155
+#: ../cli/src/connections.c:1246
msgid "invalid VPN secrets"
msgstr "rahasia VPN tak valid"
-#: ../cli/src/connections.c:1157
+#: ../cli/src/connections.c:1248
msgid "the connection was removed"
msgstr "koneksi dihapus"
-#: ../cli/src/connections.c:1171
+#: ../cli/src/connections.c:1262
#, c-format
msgid "state: %s\n"
msgstr "keadaan: %s\n"
-#: ../cli/src/connections.c:1174 ../cli/src/connections.c:1200
+#: ../cli/src/connections.c:1265
+#: ../cli/src/connections.c:1291
#, c-format
msgid "Connection activated\n"
msgstr "Koneksi diaktifkan\n"
-#: ../cli/src/connections.c:1177
+#: ../cli/src/connections.c:1268
#, c-format
msgid "Error: Connection activation failed."
msgstr "Galat: Aktivasi koneksi gagal."
-#: ../cli/src/connections.c:1196
+#: ../cli/src/connections.c:1287
#, c-format
msgid "state: %s (%d)\n"
msgstr "keadaan: %s (%d)\n"
-#: ../cli/src/connections.c:1206
+#: ../cli/src/connections.c:1297
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Galat: Aktivasi koneksi gagal: %s."
-#: ../cli/src/connections.c:1223 ../cli/src/devices.c:909
+#: ../cli/src/connections.c:1314
+#: ../cli/src/devices.c:1136
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "Galat: Timeout %d detik telah berlalu."
-#: ../cli/src/connections.c:1266
+#: ../cli/src/connections.c:1327
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Galat: Aktivasi koneksi gagal: %s"
-#: ../cli/src/connections.c:1280
-#, c-format
-msgid "Error: Obtaining active connection for '%s' failed."
-msgstr "Galat: Memperoleh koneksi aktif bagi '%s' gagal."
-
-#: ../cli/src/connections.c:1289
+#: ../cli/src/connections.c:1333
#, c-format
msgid "Active connection state: %s\n"
msgstr "Keadaan koneksi aktif: %s\n"
-#: ../cli/src/connections.c:1290
+#: ../cli/src/connections.c:1334
#, c-format
msgid "Active connection path: %s\n"
msgstr "Path koneksi aktif: %s\n"
-#: ../cli/src/connections.c:1344 ../cli/src/connections.c:1465
+#: ../cli/src/connections.c:1386
+#: ../cli/src/connections.c:1527
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Galat: Koneksi tak dikenal: %s."
-#: ../cli/src/connections.c:1379 ../cli/src/devices.c:980
+#: ../cli/src/connections.c:1432
+#: ../cli/src/devices.c:1208
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Galat: nilai timeout '%s' tak valid."
-#: ../cli/src/connections.c:1392 ../cli/src/connections.c:1482
+#: ../cli/src/connections.c:1445
+#: ../cli/src/connections.c:1544
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "Galat: id atau uuid mesti dinyatakan."
-#: ../cli/src/connections.c:1412
+#: ../cli/src/connections.c:1473
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "Galat: tak ditemukan perangkat yang cocok: %s."
-#: ../cli/src/connections.c:1414
+#: ../cli/src/connections.c:1475
#, c-format
msgid "Error: No suitable device found."
msgstr "Galat: tak ditemukan perangkat yang cocok."
-#: ../cli/src/connections.c:1509
+#: ../cli/src/connections.c:1580
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Peringatan: Sambungan tak aktif\n"
-#: ../cli/src/connections.c:1566
+#: ../cli/src/connections.c:1618
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Galat: 'con' perintah '%s' tak valid."
-#: ../cli/src/connections.c:1602
+#: ../cli/src/connections.c:1683
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Galat: tak bisa menyambung ke D-Bus."
-#: ../cli/src/connections.c:1609
+#: ../cli/src/connections.c:1690
#, c-format
msgid "Error: Could not get system settings."
msgstr "Galat: Tak bisa memperoleh tatanan sistem."
-#: ../cli/src/connections.c:1617
-#, c-format
-msgid "Error: Could not get user settings."
-msgstr "Galat: Tak bisa memperoleh tatanan pengguna."
-
-#: ../cli/src/connections.c:1627
+#: ../cli/src/connections.c:1700
#, c-format
-msgid "Error: Can't obtain connections: settings services are not running."
+#| msgid "Error: Can't obtain connections: settings services are not running."
+msgid "Error: Can't obtain connections: settings service is not running."
msgstr "Galat: Tak bisa mendapat koneksi: layanan penataan tak berjalan."
#. 0
#. 9
-#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184
+#. 3
+#: ../cli/src/devices.c:66
+#: ../cli/src/devices.c:102
+#: ../cli/src/devices.c:212
+#: ../cli/src/devices.c:228
msgid "DEVICE"
msgstr "DEVICE"
#. 1
#. 4
-#. 0
-#: ../cli/src/devices.c:63 ../cli/src/devices.c:93
-#: ../cli/src/network-manager.c:36
+#. 1
+#: ../cli/src/devices.c:68
+#: ../cli/src/devices.c:106
+#: ../cli/src/network-manager.c:39
msgid "STATE"
msgstr "STATE"
-#: ../cli/src/devices.c:72
+#: ../cli/src/devices.c:78
msgid "GENERAL"
msgstr "GENERAL"
#. 0
-#: ../cli/src/devices.c:73
+#: ../cli/src/devices.c:79
msgid "CAPABILITIES"
msgstr "CAPABILITIES"
#. 1
-#: ../cli/src/devices.c:74
+#: ../cli/src/devices.c:80
msgid "WIFI-PROPERTIES"
msgstr "WIFI-PROPERTIES"
#. 2
-#: ../cli/src/devices.c:75
+#: ../cli/src/devices.c:81
msgid "AP"
msgstr "AP"
#. 3
-#: ../cli/src/devices.c:76
+#: ../cli/src/devices.c:82
msgid "WIRED-PROPERTIES"
msgstr "WIRED-PROPERTIES"
#. 4
-#: ../cli/src/devices.c:77
+#: ../cli/src/devices.c:83
+#| msgid "WIFI-PROPERTIES"
+msgid "WIMAX-PROPERTIES"
+msgstr "WIMAX-PROPERTIES"
+
+#. 5
+#. 0
+#: ../cli/src/devices.c:84
+#: ../cli/src/devices.c:225
+#| msgid "DNS"
+msgid "NSP"
+msgstr "NSP"
+
+#. 6
+#: ../cli/src/devices.c:85
msgid "IP4-SETTINGS"
msgstr "IP4-SETTINGS"
-#. 5
-#: ../cli/src/devices.c:78
+#. 7
+#: ../cli/src/devices.c:86
msgid "IP4-DNS"
msgstr "IP4-DNS"
-#. 6
-#: ../cli/src/devices.c:79
+#. 8
+#: ../cli/src/devices.c:87
msgid "IP6-SETTINGS"
msgstr "IP6-SETTINGS"
-#. 7
-#: ../cli/src/devices.c:80
+#. 9
+#: ../cli/src/devices.c:88
msgid "IP6-DNS"
msgstr "IP6-DNS"
#. 2
-#: ../cli/src/devices.c:91
+#: ../cli/src/devices.c:104
msgid "DRIVER"
msgstr "DRIVER"
#. 3
-#: ../cli/src/devices.c:92
+#: ../cli/src/devices.c:105
msgid "HWADDR"
msgstr "HWADDR"
#. 0
-#: ../cli/src/devices.c:102
+#: ../cli/src/devices.c:115
msgid "CARRIER-DETECT"
msgstr "CARRIER-DETECT"
#. 1
-#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:116
msgid "SPEED"
msgstr "SPEED"
#. 0
-#: ../cli/src/devices.c:112
+#: ../cli/src/devices.c:125
msgid "CARRIER"
msgstr "CARRIER"
#. 0
-#: ../cli/src/devices.c:122
+#: ../cli/src/devices.c:135
msgid "WEP"
msgstr "WEP"
#. 1
-#: ../cli/src/devices.c:123
+#: ../cli/src/devices.c:136
msgid "WPA"
msgstr " WPA"
#. 2
-#: ../cli/src/devices.c:124
+#: ../cli/src/devices.c:137
msgid "WPA2"
msgstr " WPA2"
#. 3
-#: ../cli/src/devices.c:125
+#: ../cli/src/devices.c:138
msgid "TKIP"
msgstr "TKIP"
#. 4
-#: ../cli/src/devices.c:126
+#: ../cli/src/devices.c:139
msgid "CCMP"
msgstr "CCMP"
#. 0
-#: ../cli/src/devices.c:135 ../cli/src/devices.c:146
+#: ../cli/src/devices.c:149
+#| msgid "FREQ"
+msgid "CTR-FREQ"
+msgstr "CTR-FREQ"
+
+#. 1
+#: ../cli/src/devices.c:150
+#| msgid "SSID"
+msgid "RSSI"
+msgstr "RSSI"
+
+#. 2
+#: ../cli/src/devices.c:151
+msgid "CINR"
+msgstr "CINR"
+
+#. 3
+#: ../cli/src/devices.c:152
+msgid "TX-POW"
+msgstr "TX-POW"
+
+#. 4
+#: ../cli/src/devices.c:153
+#| msgid "BSSID"
+msgid "BSID"
+msgstr "BSID"
+
+#. 0
+#: ../cli/src/devices.c:163
+#: ../cli/src/devices.c:174
msgid "ADDRESS"
msgstr "ADDRESS"
#. 1
-#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+#: ../cli/src/devices.c:164
+#: ../cli/src/devices.c:175
msgid "PREFIX"
msgstr "PREFIX"
#. 2
-#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+#: ../cli/src/devices.c:165
+#: ../cli/src/devices.c:176
msgid "GATEWAY"
msgstr "GATEWAY"
#. 0
-#: ../cli/src/devices.c:157 ../cli/src/devices.c:166
+#: ../cli/src/devices.c:185
+#: ../cli/src/devices.c:194
msgid "DNS"
msgstr "DNS"
#. 0
-#: ../cli/src/devices.c:175
+#: ../cli/src/devices.c:203
msgid "SSID"
msgstr "SSID"
#. 1
-#: ../cli/src/devices.c:176
+#: ../cli/src/devices.c:204
msgid "BSSID"
msgstr "BSSID"
#. 2
-#: ../cli/src/devices.c:177
+#: ../cli/src/devices.c:205
msgid "MODE"
msgstr "MODE"
#. 3
-#: ../cli/src/devices.c:178
+#: ../cli/src/devices.c:206
msgid "FREQ"
msgstr "FREQ"
#. 4
-#: ../cli/src/devices.c:179
+#: ../cli/src/devices.c:207
msgid "RATE"
msgstr "RATE"
#. 5
-#: ../cli/src/devices.c:180
+#. 1
+#: ../cli/src/devices.c:208
+#: ../cli/src/devices.c:226
msgid "SIGNAL"
msgstr "SIGNAL"
#. 6
-#: ../cli/src/devices.c:181
+#: ../cli/src/devices.c:209
msgid "SECURITY"
msgstr "SECURITY"
#. 7
-#: ../cli/src/devices.c:182
+#: ../cli/src/devices.c:210
msgid "WPA-FLAGS"
msgstr "WPA-FLAGS"
#. 8
-#: ../cli/src/devices.c:183
+#: ../cli/src/devices.c:211
msgid "RSN-FLAGS"
msgstr "RSN-FLAGS"
#. 10
-#: ../cli/src/devices.c:185
+#. 4
+#: ../cli/src/devices.c:213
+#: ../cli/src/devices.c:229
msgid "ACTIVE"
msgstr "ACTIVE"
-#: ../cli/src/devices.c:208
-#, c-format
+#: ../cli/src/devices.c:256
+#, c-format
+#| msgid ""
+#| "Usage: nmcli dev { COMMAND | help }\n"
+#| "\n"
+#| " COMMAND := { status | list | disconnect | wifi }\n"
+#| "\n"
+#| " status\n"
+#| " list [iface <iface>]\n"
+#| " disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
+#| " wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+#| "\n"
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
"\n"
+" COMMAND := { status | list | disconnect | wifi | wimax }\n"
+"\n"
" COMMAND := { status | list | disconnect | wifi }\n"
"\n"
" status\n"
" list [iface <iface>]\n"
" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+" wimax [list [iface <iface>] [nsp <name>]]\n"
"\n"
msgstr ""
"Cara pakai: nmcli dev { PERINTAH | help }\n"
"\n"
+" PERINTAH := { status | list | disconnect | wifi | wimax }\n"
+"\n"
" PERINTAH := { status | list | disconnect | wifi }\n"
"\n"
" status\n"
" list [iface <iface>]\n"
" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+" wimax [list [iface <iface>] [nsp <name>]]\n"
"\n"
-#: ../cli/src/devices.c:228
+#: ../cli/src/devices.c:284
msgid "unmanaged"
msgstr "tak dikelola"
-#: ../cli/src/devices.c:230
+#: ../cli/src/devices.c:286
msgid "unavailable"
msgstr "tak tersedia"
-#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:89
+#: ../cli/src/devices.c:288
+#: ../cli/src/network-manager.c:115
msgid "disconnected"
msgstr "terputus"
-#: ../cli/src/devices.c:234
+#: ../cli/src/devices.c:290
msgid "connecting (prepare)"
msgstr "sedang menyambung (bersiap)"
-#: ../cli/src/devices.c:236
+#: ../cli/src/devices.c:292
msgid "connecting (configuring)"
msgstr "sedang menyambung (sedang menata)"
-#: ../cli/src/devices.c:238
+#: ../cli/src/devices.c:294
msgid "connecting (need authentication)"
msgstr "sedang menyambung (perlu otentikasi)"
-#: ../cli/src/devices.c:240
+#: ../cli/src/devices.c:296
msgid "connecting (getting IP configuration)"
msgstr "sedang menyambung (sedang mengambil konfigurasi IP)"
-#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:87
+#: ../cli/src/devices.c:298
+#| msgid "connecting (getting IP configuration)"
+msgid "connecting (checking IP connectivity)"
+msgstr "sedang menyambung (memeriksa konektivitas IP)"
+
+#: ../cli/src/devices.c:300
+#| msgid "connecting (getting IP configuration)"
+msgid "connecting (starting secondary connections)"
+msgstr "sedang menyambung (memulai koneksi sekunder)"
+
+#: ../cli/src/devices.c:302
+#: ../cli/src/network-manager.c:111
msgid "connected"
msgstr "terhubung"
-#: ../cli/src/devices.c:244
+#: ../cli/src/devices.c:306
msgid "connection failed"
msgstr "koneksi gagal"
-#: ../cli/src/devices.c:267 ../cli/src/devices.c:424
+#: ../cli/src/devices.c:331
+#: ../cli/src/devices.c:341
+#: ../cli/src/devices.c:501
+#: ../cli/src/devices.c:545
msgid "Unknown"
msgstr "Tak dikenal"
-#: ../cli/src/devices.c:299
+#: ../cli/src/devices.c:374
msgid "(none)"
msgstr "(tidak ada)"
-#: ../cli/src/devices.c:324
+#: ../cli/src/devices.c:399
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: galat mengubah alamat IP4 0x%X"
-#: ../cli/src/devices.c:393
+#: ../cli/src/devices.c:470
#, c-format
msgid "%u MHz"
msgstr "%u MHz"
-#: ../cli/src/devices.c:394
+#: ../cli/src/devices.c:471
#, c-format
msgid "%u MB/s"
msgstr "%u MB/s"
-#: ../cli/src/devices.c:403
+#: ../cli/src/devices.c:480
msgid "Encrypted: "
msgstr "Terenkripsi:"
-#: ../cli/src/devices.c:408
+#: ../cli/src/devices.c:485
msgid "WEP "
msgstr "WEP "
-#: ../cli/src/devices.c:410
+#: ../cli/src/devices.c:487
msgid "WPA "
msgstr "WPA "
-#: ../cli/src/devices.c:412
+#: ../cli/src/devices.c:489
msgid "WPA2 "
msgstr "WPA2 "
-#: ../cli/src/devices.c:415
+#: ../cli/src/devices.c:492
msgid "Enterprise "
msgstr "Enterprise "
-#: ../cli/src/devices.c:424
+#: ../cli/src/devices.c:501
msgid "Ad-Hoc"
msgstr "Ad-Hoc"
-#: ../cli/src/devices.c:424
+#: ../cli/src/devices.c:501
msgid "Infrastructure"
msgstr "Infrastruktur"
-#: ../cli/src/devices.c:486
+#: ../cli/src/devices.c:536
+msgid "Home"
+msgstr "Rumah"
+
+#: ../cli/src/devices.c:539
+msgid "Partner"
+msgstr "Pasangan"
+
+#: ../cli/src/devices.c:542
+msgid "Roaming"
+msgstr "Roaming"
+
+#: ../cli/src/devices.c:612
#, c-format
msgid "Error: 'dev list': %s"
msgstr "Galat: 'dev list': %s"
-#: ../cli/src/devices.c:488
+#: ../cli/src/devices.c:614
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
msgstr "Galat: 'dev list': %s; ruas yang diijinkan: %s"
-#: ../cli/src/devices.c:497
+#: ../cli/src/devices.c:623
msgid "Device details"
msgstr "Rincian perangkat"
-#: ../cli/src/devices.c:527 ../cli/src/devices.c:925
+#: ../cli/src/devices.c:657
+#: ../cli/src/devices.c:1152
+#: ../cli/src/utils.c:342
msgid "(unknown)"
msgstr "(tak diketahui)"
-#: ../cli/src/devices.c:528
+#: ../cli/src/devices.c:658
msgid "unknown)"
msgstr "tak diketahui)"
-#: ../cli/src/devices.c:554
+#: ../cli/src/devices.c:684
#, c-format
msgid "%u Mb/s"
msgstr "%u Mb/s"
#. Print header
#. "WIRED-PROPERTIES"
-#: ../cli/src/devices.c:627
+#: ../cli/src/devices.c:757
msgid "on"
msgstr "nyala"
-#: ../cli/src/devices.c:627
+#: ../cli/src/devices.c:757
msgid "off"
msgstr "mati"
-#: ../cli/src/devices.c:808
+#: ../cli/src/devices.c:1004
#, c-format
msgid "Error: 'dev status': %s"
msgstr "Galat: 'dev status': %s"
-#: ../cli/src/devices.c:810
+#: ../cli/src/devices.c:1006
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
msgstr "Galat: 'dev status': %s; ruas yang diijinkan: %s"
-#: ../cli/src/devices.c:817
+#: ../cli/src/devices.c:1029
msgid "Status of devices"
msgstr "Status perangkat"
-#: ../cli/src/devices.c:845
+#: ../cli/src/devices.c:1060
#, c-format
msgid "Error: '%s' argument is missing."
msgstr "Galat: argumen '%s' hilang."
-#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013
-#: ../cli/src/devices.c:1136
+#: ../cli/src/devices.c:1101
+#: ../cli/src/devices.c:1253
+#: ../cli/src/devices.c:1389
+#: ../cli/src/devices.c:1608
#, c-format
msgid "Error: Device '%s' not found."
msgstr "Galat: Perangkat '%s' tak ditemukan."
-#: ../cli/src/devices.c:897
+#: ../cli/src/devices.c:1124
#, c-format
msgid "Success: Device '%s' successfully disconnected."
msgstr "Sukses: Perangkat '%s' diputus dengan sukses."
-#: ../cli/src/devices.c:922
+#: ../cli/src/devices.c:1149
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
msgstr "Galat: Pemutusan perangkat '%s' (%s) gagal: %s "
-#: ../cli/src/devices.c:930
+#: ../cli/src/devices.c:1157
#, c-format
msgid "Device state: %d (%s)\n"
msgstr "Keadaan perangkat: %d (%s)\n"
-#: ../cli/src/devices.c:994
+#: ../cli/src/devices.c:1222
#, c-format
msgid "Error: iface has to be specified."
msgstr "Galat: iface mesti dinyatakan."
-#: ../cli/src/devices.c:1112
+#: ../cli/src/devices.c:1347
#, c-format
msgid "Error: 'dev wifi': %s"
msgstr "Galat: 'dev wifi': %s"
-#: ../cli/src/devices.c:1114
+#: ../cli/src/devices.c:1349
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
msgstr "Galat: 'dev wifi': %s; ruas yang diijinkan: %s"
-#: ../cli/src/devices.c:1121
+#: ../cli/src/devices.c:1372
msgid "WiFi scan list"
msgstr "Daftar pindai WiFi"
-#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210
+#: ../cli/src/devices.c:1409
+#: ../cli/src/devices.c:1463
+#: ../cli/src/devices.c:1670
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
msgstr "Galat: Access point dengan hwaddr '%s' tak ditemukan."
-#: ../cli/src/devices.c:1173
+#: ../cli/src/devices.c:1426
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
msgstr "Galat: Perangkat '%s' bukan perangkat WiFi."
-#: ../cli/src/devices.c:1237
+#: ../cli/src/devices.c:1490
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
msgstr "Galat: 'dev wifi' perintah '%s' tak valid."
-#: ../cli/src/devices.c:1284
+#: ../cli/src/devices.c:1566
+#, c-format
+#| msgid "Error: 'dev wifi': %s"
+msgid "Error: 'dev wimax': %s"
+msgstr "Galat: 'dev wimax': %s"
+
+#: ../cli/src/devices.c:1568
+#, c-format
+#| msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgid "Error: 'dev wimax': %s; allowed fields: %s"
+msgstr "Galat: 'dev wimax': %s; ruas yang diijinkan: %s"
+
+#: ../cli/src/devices.c:1591
+msgid "WiMAX NSP list"
+msgstr "Daftar NSP WiMAX"
+
+#: ../cli/src/devices.c:1628
+#, c-format
+#| msgid "Error: Device '%s' not found."
+msgid "Error: NSP with name '%s' not found."
+msgstr "Galat: NSP bernama '%s' tak ditemukan."
+
+#: ../cli/src/devices.c:1639
+#, c-format
+#| msgid "Error: Device '%s' is not a WiFi device."
+msgid "Error: Device '%s' is not a WiMAX device."
+msgstr "Galat: Perangkat '%s' bukan perangkat WiMAX."
+
+#: ../cli/src/devices.c:1697
+#, c-format
+#| msgid "Error: 'dev wifi' command '%s' is not valid."
+msgid "Error: 'dev wimax' command '%s' is not valid."
+msgstr "Galat: 'dev wimax' perintah '%s' tak valid."
+
+#: ../cli/src/devices.c:1747
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
msgstr "Galat: 'dev' perintah '%s' tak valid."
-#: ../cli/src/network-manager.c:35
+#: ../cli/src/network-manager.c:37
msgid "RUNNING"
msgstr "RUNNING"
-#. 1
-#: ../cli/src/network-manager.c:37
+#. 0
+#: ../cli/src/network-manager.c:38
+msgid "VERSION"
+msgstr "VERSION"
+
+#. 2
+#: ../cli/src/network-manager.c:40
+msgid "NET-ENABLED"
+msgstr "NET-ENABLED"
+
+#. 3
+#: ../cli/src/network-manager.c:41
msgid "WIFI-HARDWARE"
msgstr "WIFI-HARDWARE"
-#. 2
-#: ../cli/src/network-manager.c:38
+#. 4
+#: ../cli/src/network-manager.c:42
msgid "WIFI"
msgstr "WIFI"
-#. 3
-#: ../cli/src/network-manager.c:39
+#. 5
+#: ../cli/src/network-manager.c:43
msgid "WWAN-HARDWARE"
msgstr "WWAN-HARDWARE"
-#. 4
-#: ../cli/src/network-manager.c:40
+#. 6
+#: ../cli/src/network-manager.c:44
msgid "WWAN"
msgstr "WWAN"
-#: ../cli/src/network-manager.c:62
-#, c-format
+#. 7
+#: ../cli/src/network-manager.c:45
+#| msgid "WIFI-HARDWARE"
+msgid "WIMAX-HARDWARE"
+msgstr "WIMAX-HARDWARE"
+
+#. 8
+#: ../cli/src/network-manager.c:46
+msgid "WIMAX"
+msgstr "WIMAX"
+
+#: ../cli/src/network-manager.c:74
+#, c-format
+#| msgid ""
+#| "Usage: nmcli nm { COMMAND | help }\n"
+#| "\n"
+#| " COMMAND := { status | sleep | wakeup | wifi | wwan }\n"
+#| "\n"
+#| " status\n"
+#| " sleep\n"
+#| " wakeup\n"
+#| " wifi [on|off]\n"
+#| " wwan [on|off]\n"
+#| "\n"
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
-" COMMAND := { status | sleep | wakeup | wifi | wwan }\n"
+" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
+" wimax [on|off]\n"
"\n"
msgstr ""
"Cara pakai: nmcli nm { PERINTAH | help }\n"
"\n"
+" PERINTAH := { status | sleep | wakeup | wifi | wwan | wimax }\n"
+"\n"
" PERINTAH := { status | sleep | wakeup | wifi | wwan }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
+" wimax [on|off]\n"
"\n"
-#: ../cli/src/network-manager.c:83
+#: ../cli/src/network-manager.c:103
msgid "asleep"
msgstr "mengantuk"
-#: ../cli/src/network-manager.c:85
+#: ../cli/src/network-manager.c:105
msgid "connecting"
msgstr "menyambung"
-#: ../cli/src/network-manager.c:125
+#: ../cli/src/network-manager.c:107
+msgid "connected (local only)"
+msgstr "tersambung (lokal saja)"
+
+#: ../cli/src/network-manager.c:109
+#| msgid "connected"
+msgid "connected (site only)"
+msgstr "tersambung (situs saja)"
+
+#: ../cli/src/network-manager.c:113
+#| msgid "connecting"
+msgid "disconnecting"
+msgstr "memutus"
+
+#: ../cli/src/network-manager.c:153
#, c-format
msgid "Error: 'nm status': %s"
msgstr "Galat: 'nm status': %s"
-#: ../cli/src/network-manager.c:127
+#: ../cli/src/network-manager.c:155
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
msgstr "Galat: 'nm status': %s; ruas yang diijinkan: %s"
-#: ../cli/src/network-manager.c:134
-msgid "NetworkManager status"
-msgstr "Status NetworkManager"
-
-#. Print header
-#: ../cli/src/network-manager.c:140 ../cli/src/network-manager.c:141
-#: ../cli/src/network-manager.c:142 ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:211 ../cli/src/network-manager.c:243
+#. create NMClient
+#: ../cli/src/network-manager.c:168
+#: ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170
+#: ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172
+#: ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351
+#: ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "enabled"
msgstr "diaktifkan"
-#: ../cli/src/network-manager.c:140 ../cli/src/network-manager.c:141
-#: ../cli/src/network-manager.c:142 ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:211 ../cli/src/network-manager.c:243
+#: ../cli/src/network-manager.c:168
+#: ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170
+#: ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172
+#: ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351
+#: ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "disabled"
msgstr "dimatikan"
-#: ../cli/src/network-manager.c:148
+#: ../cli/src/network-manager.c:188
+msgid "NetworkManager status"
+msgstr "Status NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:191
msgid "running"
msgstr "berjalan"
-#: ../cli/src/network-manager.c:148
+#: ../cli/src/network-manager.c:191
msgid "not running"
msgstr "tak berjalan"
-#: ../cli/src/network-manager.c:201 ../cli/src/network-manager.c:233
+#: ../cli/src/network-manager.c:222
+#: ../cli/src/utils.c:322
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Galat: Tak bisa menyambung ke bus sistem: %s"
+
+#: ../cli/src/network-manager.c:233
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Galat: Tak bisa membuat proksi objek D-Bus."
+
+#: ../cli/src/network-manager.c:239
+#, c-format
+#| msgid "Error: 'con list': %s"
+msgid "Error in sleep: %s"
+msgstr "Galat dalam sleep: %s"
+
+#: ../cli/src/network-manager.c:283
+#: ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:376
+#: ../cli/src/network-manager.c:415
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "Galat: nilai '--fields' '%s' tak valid disini; ruas yang diijinkan: %s"
-#: ../cli/src/network-manager.c:209
+#: ../cli/src/network-manager.c:291
+#| msgid "WiFi enabled"
+msgid "Networking enabled"
+msgstr "Jaringan diaktifkan"
+
+#: ../cli/src/network-manager.c:307
+#, c-format
+#| msgid "Error: invalid 'wwan' parameter: '%s'."
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr "Galat: parameter 'enable' tak valid: '%s'; gunakan 'true' atau 'false'."
+
+#: ../cli/src/network-manager.c:317
+#, c-format
+#| msgid "Error: Could not connect to NetworkManager."
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Galat: Status tidur tak diekspor oleh NetworkManager."
+
+#: ../cli/src/network-manager.c:325
+#, c-format
+#| msgid "Error: invalid 'wifi' parameter: '%s'."
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr "Galat: parameter 'sleep' tak valid: '%s'; gunakan 'true' atau 'false'."
+
+#: ../cli/src/network-manager.c:346
msgid "WiFi enabled"
msgstr "WiFi diaktifkan"
-#: ../cli/src/network-manager.c:220
+#: ../cli/src/network-manager.c:362
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
msgstr "Galat: parameter 'wifi' tak valid: '%s'."
-#: ../cli/src/network-manager.c:241
+#: ../cli/src/network-manager.c:384
msgid "WWAN enabled"
msgstr "WWAN diaktifkan"
-#: ../cli/src/network-manager.c:252
+#: ../cli/src/network-manager.c:400
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
msgstr "Galat: parameter 'wwan' tak valid: '%s'."
-#: ../cli/src/network-manager.c:263
+#: ../cli/src/network-manager.c:423
+#| msgid "WiFi enabled"
+msgid "WiMAX enabled"
+msgstr "WiMAX diaktifkan"
+
+#: ../cli/src/network-manager.c:439
+#, c-format
+#| msgid "Error: invalid 'wifi' parameter: '%s'."
+msgid "Error: invalid 'wimax' parameter: '%s'."
+msgstr "Galat: parameter 'wimax' tak valid: '%s'."
+
+#: ../cli/src/network-manager.c:452
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "Galat: 'nm' perintah '%s' tak valid."
-#: ../cli/src/nmcli.c:69
-#, c-format
+#: ../cli/src/nmcli.c:64
+#, c-format
+#| msgid ""
+#| "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
+#| "\n"
+#| "OPTIONS\n"
+#| " -t[erse] terse output\n"
+#| " -p[retty] pretty output\n"
+#| " -m[ode] tabular|multiline output mode\n"
+#| " -f[ields] <field1,field2,...>|all|common specify fields to output\n"
+#| " -e[scape] yes|no escape columns separators in "
+#| "values\n"
+#| " -v[ersion] show program version\n"
+#| " -h[elp] print this help\n"
+#| "\n"
+#| "OBJECT\n"
+#| " nm NetworkManager status\n"
+#| " con NetworkManager connections\n"
+#| " dev devices managed by NetworkManager\n"
+#| "\n"
msgid ""
"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
"\n"
@@ -982,8 +1372,8 @@ msgid ""
" -p[retty] pretty output\n"
" -m[ode] tabular|multiline output mode\n"
" -f[ields] <field1,field2,...>|all|common specify fields to output\n"
-" -e[scape] yes|no escape columns separators in "
-"values\n"
+" -e[scape] yes|no escape columns separators in values\n"
+" -n[ocheck] don't check nmcli and NetworkManager versions\n"
" -v[ersion] show program version\n"
" -h[elp] print this help\n"
"\n"
@@ -1001,6 +1391,7 @@ msgstr ""
" -m[ode] tabular|multiline mode keluaran\n"
" -f[ields] <field1,field2,...>|all|common nyatakan ruas yang ditampilkan\n"
" -e[scape] yes|no pemisah kolom escape di nilai\n"
+" -n[ocheck] jangan periksa versi nmcli dan NetworkManager\n"
" -v[ersion] tampilkan versi program\n"
" -h[elp] cetak bantuan ini\n"
"\n"
@@ -1010,659 +1401,680 @@ msgstr ""
" dev perangkat yang dikelola oleh NetworkManager\n"
"\n"
-#: ../cli/src/nmcli.c:113
+#: ../cli/src/nmcli.c:109
#, c-format
msgid "Error: Object '%s' is unknown, try 'nmcli help'."
msgstr "Galat: Objek '%s' tak dikenal, coba 'nmcli help'."
-#: ../cli/src/nmcli.c:143
+#: ../cli/src/nmcli.c:139
#, c-format
msgid "Error: Option '--terse' is specified the second time."
msgstr "Galat: Opsi '--terse' dinyatakan kedua kali."
-#: ../cli/src/nmcli.c:148
+#: ../cli/src/nmcli.c:144
#, c-format
msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
msgstr "Galat: Opsi '--terse' eksklusif mutual dengan '--pretty'."
-#: ../cli/src/nmcli.c:156
+#: ../cli/src/nmcli.c:152
#, c-format
msgid "Error: Option '--pretty' is specified the second time."
msgstr "Galat: Opsi '--pretty' dinyatakan kedua kali."
-#: ../cli/src/nmcli.c:161
+#: ../cli/src/nmcli.c:157
#, c-format
msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
msgstr "Galat: Opsi '--pretty' eksklusif mutual dengan '--terse'."
-#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#: ../cli/src/nmcli.c:167
+#: ../cli/src/nmcli.c:183
#, c-format
msgid "Error: missing argument for '%s' option."
msgstr "Galat: argumen hilang bagi opsi '%s'."
-#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#: ../cli/src/nmcli.c:176
+#: ../cli/src/nmcli.c:192
#, c-format
msgid "Error: '%s' is not valid argument for '%s' option."
msgstr "Galat: '%s' bukan argumen yang valid bagi opsi '%s'."
-#: ../cli/src/nmcli.c:203
+#: ../cli/src/nmcli.c:199
#, c-format
msgid "Error: fields for '%s' options are missing."
msgstr "Galat: ruas bagi opsi '%s' hilang."
-#: ../cli/src/nmcli.c:209
+#: ../cli/src/nmcli.c:207
#, c-format
msgid "nmcli tool, version %s\n"
msgstr "alat nmcli, versi %s\n"
-#: ../cli/src/nmcli.c:215
+#: ../cli/src/nmcli.c:213
#, c-format
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
msgstr "Galat: Opsi '%s' tak dikenal, coba 'nmcli -help'."
-#: ../cli/src/nmcli.c:234
+#: ../cli/src/nmcli.c:232
#, c-format
msgid "Caught signal %d, shutting down..."
msgstr "Menangkap sinyal %d, sedang mematikan..."
-#: ../cli/src/nmcli.c:259
-#, c-format
-msgid "Error: Could not connect to NetworkManager."
-msgstr "Galat: Tak bisa menyambung ke NetworkManager."
+#: ../cli/src/nmcli.c:257
+#| msgid "Error: Could not get user settings."
+msgid "Error: Could not create NMClient object."
+msgstr "Galat: Tak bisa membuat objek NMClient."
-#: ../cli/src/nmcli.c:275
+#: ../cli/src/nmcli.c:273
msgid "Success"
msgstr "Sukses"
-#: ../cli/src/settings.c:411
+#: ../cli/src/settings.c:423
#, c-format
msgid "%d (hex-ascii-key)"
msgstr "%d (kunci-hex-ascii)"
-#: ../cli/src/settings.c:413
+#: ../cli/src/settings.c:425
#, c-format
msgid "%d (104/128-bit passphrase)"
msgstr "%d (104/128-bit frasa sandi)"
-#: ../cli/src/settings.c:416
+#: ../cli/src/settings.c:428
#, c-format
msgid "%d (unknown)"
msgstr "%d (tak dikenal)"
-#: ../cli/src/settings.c:442
+#: ../cli/src/settings.c:454
msgid "0 (unknown)"
msgstr "0 (tak dikenal)"
-#: ../cli/src/settings.c:448
+#: ../cli/src/settings.c:460
msgid "any, "
msgstr "sebarang, "
-#: ../cli/src/settings.c:450
+#: ../cli/src/settings.c:462
msgid "900 MHz, "
msgstr "900 MHz, "
-#: ../cli/src/settings.c:452
+#: ../cli/src/settings.c:464
msgid "1800 MHz, "
msgstr "1800 MHz, "
-#: ../cli/src/settings.c:454
+#: ../cli/src/settings.c:466
msgid "1900 MHz, "
msgstr "1900 MHz, "
-#: ../cli/src/settings.c:456
+#: ../cli/src/settings.c:468
msgid "850 MHz, "
msgstr "850 MHz, "
-#: ../cli/src/settings.c:458
+#: ../cli/src/settings.c:470
msgid "WCDMA 3GPP UMTS 2100 MHz, "
msgstr "WCDMA 3GPP UMTS 2100 MHz, "
-#: ../cli/src/settings.c:460
+#: ../cli/src/settings.c:472
msgid "WCDMA 3GPP UMTS 1800 MHz, "
msgstr "WCDMA 3GPP UMTS 1800 MHz, "
-#: ../cli/src/settings.c:462
+#: ../cli/src/settings.c:474
msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
-#: ../cli/src/settings.c:464
+#: ../cli/src/settings.c:476
msgid "WCDMA 3GPP UMTS 800 MHz, "
msgstr "WCDMA 3GPP UMTS 800 MHz, "
-#: ../cli/src/settings.c:466
+#: ../cli/src/settings.c:478
msgid "WCDMA 3GPP UMTS 850 MHz, "
msgstr "WCDMA 3GPP UMTS 850 MHz, "
-#: ../cli/src/settings.c:468
+#: ../cli/src/settings.c:480
msgid "WCDMA 3GPP UMTS 900 MHz, "
msgstr "WCDMA 3GPP UMTS 900 MHz, "
-#: ../cli/src/settings.c:470
+#: ../cli/src/settings.c:482
msgid "WCDMA 3GPP UMTS 1700 MHz, "
msgstr "WCDMA 3GPP UMTS 1700 MHz, "
-#: ../cli/src/settings.c:554 ../cli/src/settings.c:721
+#: ../cli/src/settings.c:566
+#: ../cli/src/settings.c:732
msgid "auto"
msgstr "otomatis"
-#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
-#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+#: ../cli/src/settings.c:727
+#: ../cli/src/settings.c:730
+#: ../cli/src/settings.c:731
+#: ../cli/src/utils.c:176
msgid "not set"
msgstr "tak ditata"
-#: ../cli/src/utils.c:124
+#: ../cli/src/utils.c:128
#, c-format
msgid "field '%s' has to be alone"
msgstr "ruas '%s' mesti sendiri"
-#: ../cli/src/utils.c:127
+#: ../cli/src/utils.c:131
#, c-format
msgid "invalid field '%s'"
msgstr "ruas tak valid '%s'"
-#: ../cli/src/utils.c:146
+#: ../cli/src/utils.c:150
#, c-format
msgid "Option '--terse' requires specifying '--fields'"
msgstr "Opsi '--terse' memerlukan penyataan '--fields'"
-#: ../cli/src/utils.c:150
+#: ../cli/src/utils.c:154
#, c-format
msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
msgstr "Opsi '--terse' memerlukan nilai opsi '--fields' spesifik, bukan '%s'"
-#: ../libnm-util/crypto.c:120
+#: ../cli/src/utils.c:333
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus"
+msgstr "Galat: Tak bisa membuat proksi objek D-Bus bagi org.freedesktop.DBus"
+
+#: ../cli/src/utils.c:341
+#, c-format
+msgid "Error: NameHasOwner request failed: %s"
+msgstr "Galat: Permintaan NameHasOwner gagal: %s"
+
+#: ../cli/src/utils.c:386
+#, c-format
+msgid "Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --nocheck to suppress the warning.\n"
+msgstr "Peringatan: Versi nmcli (%s) dan NetworkManager (%s) tak cocok. Gunakan --nocheck untuk meredam peringatan.\n"
+
+#: ../cli/src/utils.c:395
+#, c-format
+msgid "Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force execution using --nocheck, but the results are unpredictable."
+msgstr "Galat: Versi nmcli (%s) dan NetworkManager (%s) tak cocok. Paksakan eksekusi memakai --nocheck, tapi hasilnya tak dapat ditebak."
+
+#: ../libnm-util/crypto.c:133
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "Berkas kunci PEM tak memiliki tag akhir '%s'."
-#: ../libnm-util/crypto.c:130
+#: ../libnm-util/crypto.c:146
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "Tak seperti sebuah berkas kunci privat PEM."
-#: ../libnm-util/crypto.c:138
+#: ../libnm-util/crypto.c:154
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr "Tak cukup memori untuk menyimpan data berkas PEM."
-#: ../libnm-util/crypto.c:154
+#: ../libnm-util/crypto.c:170
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr "Berkas PEM rusak: Proc-Type bukan tag pertama."
-#: ../libnm-util/crypto.c:162
+#: ../libnm-util/crypto.c:178
#, c-format
msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
msgstr "Berkas PEM rusak: tag Proc-Type tak dikenal '%s'."
-#: ../libnm-util/crypto.c:172
+#: ../libnm-util/crypto.c:188
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
msgstr "Berkas PEM rusak: DEK-Info bukan tag kedua."
-#: ../libnm-util/crypto.c:183
+#: ../libnm-util/crypto.c:199
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr "Berkas PEM rusak: tak ditemukan IV di tag DEK-Info."
-#: ../libnm-util/crypto.c:190
+#: ../libnm-util/crypto.c:206
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr "Berkas PEM rusak: bentuk IV tak valid di tag DEK-Info."
-#: ../libnm-util/crypto.c:203
+#: ../libnm-util/crypto.c:219
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr "Berkas PEM rusak: cipher kunci privat '%s' tak dikenal."
-#: ../libnm-util/crypto.c:222
+#: ../libnm-util/crypto.c:238
#, c-format
msgid "Could not decode private key."
msgstr "Tak bisa mengawa kode (decode) kunci privat."
-#: ../libnm-util/crypto.c:267
-#, c-format
-msgid "PEM certificate '%s' had no end tag '%s'."
-msgstr "Sertifikat PEM '%s' tak memiliki tag akhir '%s'."
+#: ../libnm-util/crypto.c:284
+msgid "Failed to find expected PKCS#8 start tag."
+msgstr "Gagal menemukan tag awal PKCS#8 yang diharapkan."
-#: ../libnm-util/crypto.c:277
+#: ../libnm-util/crypto.c:292
#, c-format
-msgid "Failed to decode certificate."
-msgstr "Gagal mengawa kode (decode) sertifikat."
+msgid "Failed to find expected PKCS#8 end tag '%s'."
+msgstr "Gagal menemukan tag akhir PKCS#8 '%s' yang diharapkan."
+
+#: ../libnm-util/crypto.c:312
+#| msgid "Not enough memory to store file data."
+msgid "Not enough memory to store private key data."
+msgstr "Tak cukup memori untuk menyimpan data kunci privat."
+
+#: ../libnm-util/crypto.c:317
+#| msgid "Failed to decrypt the private key."
+msgid "Failed to decode PKCS#8 private key."
+msgstr "Gagal mengawa kode (decode) kunci privat PKCS#8."
-#: ../libnm-util/crypto.c:286
+#: ../libnm-util/crypto.c:339
+#: ../libnm-util/crypto.c:625
#, c-format
msgid "Not enough memory to store certificate data."
msgstr "Tak cukup memori untuk menyimpan data sertifikat."
-#: ../libnm-util/crypto.c:294
-#, c-format
-msgid "Not enough memory to store file data."
-msgstr "Tak cukup memori untuk menyimpan data berkas."
-
-#: ../libnm-util/crypto.c:324
+#: ../libnm-util/crypto.c:365
#, c-format
msgid "IV must be an even number of bytes in length."
msgstr "Panjang IV dalam byte mesti merupakan bilangan genap."
-#: ../libnm-util/crypto.c:333
+#: ../libnm-util/crypto.c:374
#, c-format
msgid "Not enough memory to store the IV."
msgstr "Tak cukup memori untuk menyimpan IV."
-#: ../libnm-util/crypto.c:344
+#: ../libnm-util/crypto.c:385
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "IV memuat digit bukan heksadesimal."
-#: ../libnm-util/crypto.c:382 ../libnm-util/crypto_gnutls.c:148
-#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171
-#: ../libnm-util/crypto_nss.c:336
+#: ../libnm-util/crypto.c:423
+#: ../libnm-util/crypto_gnutls.c:147
+#: ../libnm-util/crypto_gnutls.c:265
+#: ../libnm-util/crypto_nss.c:167
+#: ../libnm-util/crypto_nss.c:332
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "Cipher kunci privat '%s' tak dikenal."
-#: ../libnm-util/crypto.c:391
+#: ../libnm-util/crypto.c:432
#, c-format
msgid "Not enough memory to decrypt private key."
msgstr "Tak cukup memori untuk mengawa sandi (decrypt) kunci privat."
-#: ../libnm-util/crypto.c:511
+#: ../libnm-util/crypto.c:497
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "Tak cukup memori untuk menyimpan kunci privat terawa sandi (decrypted)."
+
+#: ../libnm-util/crypto.c:542
#, c-format
msgid "Unable to determine private key type."
msgstr "Tak bisa menentukan jenis kunci privat."
-#: ../libnm-util/crypto.c:530
+#: ../libnm-util/crypto.c:597
#, c-format
-msgid "Not enough memory to store decrypted private key."
-msgstr ""
-"Tak cukup memori untuk menyimpan kunci privat terawa sandi (decrypted)."
+#| msgid "PEM certificate '%s' had no end tag '%s'."
+msgid "PEM certificate had no start tag '%s'."
+msgstr "Sertifikat PEM tak memiliki tag awal '%s'."
+
+#: ../libnm-util/crypto.c:606
+#, c-format
+#| msgid "PEM certificate '%s' had no end tag '%s'."
+msgid "PEM certificate had no end tag '%s'."
+msgstr "Sertifikat PEM tak memiliki tag akhir '%s'."
+
+#: ../libnm-util/crypto.c:630
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "Gagal mengawa kode (decode) sertifikat."
-#: ../libnm-util/crypto_gnutls.c:49
+#: ../libnm-util/crypto_gnutls.c:50
msgid "Failed to initialize the crypto engine."
msgstr "Gagal menginisialisasi mesin kripto."
-#: ../libnm-util/crypto_gnutls.c:93
+#: ../libnm-util/crypto_gnutls.c:92
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
msgstr "Gagal menginisialisasi mesin MD5: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:156
+#: ../libnm-util/crypto_gnutls.c:155
#, c-format
msgid "Invalid IV length (must be at least %zd)."
msgstr "Panjang IV tak valid (mesti paling tidak %zd)."
-#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#: ../libnm-util/crypto_gnutls.c:164
+#: ../libnm-util/crypto_nss.c:184
#, c-format
msgid "Not enough memory for decrypted key buffer."
msgstr "Tak cukup memori untuk penyangga kunci terawa sandi (decrypted)."
-#: ../libnm-util/crypto_gnutls.c:173
+#: ../libnm-util/crypto_gnutls.c:172
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
-msgstr ""
-"Gagal menginisialisasi konteks cipher pengawasandian (decryption): %s / %s."
+msgstr "Gagal menginisialisasi konteks cipher pengawasandian (decryption): %s / %s."
-#: ../libnm-util/crypto_gnutls.c:182
+#: ../libnm-util/crypto_gnutls.c:181
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
-msgstr ""
-"Gagal menata kunci simetrik untuk pengawasandian (decryption): %s / %s."
+msgstr "Gagal menata kunci simetrik untuk pengawasandian (decryption): %s / %s."
-#: ../libnm-util/crypto_gnutls.c:191
+#: ../libnm-util/crypto_gnutls.c:190
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
msgstr "Gagal menata IV untuk pengawasandian (decryption): %s / %s."
-#: ../libnm-util/crypto_gnutls.c:200
+#: ../libnm-util/crypto_gnutls.c:199
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
msgstr "Gagal mengawa sandi (decrypt) kunci privat: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#: ../libnm-util/crypto_gnutls.c:209
+#: ../libnm-util/crypto_nss.c:263
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
-msgstr ""
-"Gagal mengawa sandi (decrypt) kunci privat: panjang padding tak diharapkan."
+msgstr "Gagal mengawa sandi (decrypt) kunci privat: panjang padding tak diharapkan."
-#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#: ../libnm-util/crypto_gnutls.c:220
+#: ../libnm-util/crypto_nss.c:274
#, c-format
msgid "Failed to decrypt the private key."
msgstr "Gagal mengawa sandi (decrypt) kunci privat."
-#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#: ../libnm-util/crypto_gnutls.c:285
+#: ../libnm-util/crypto_nss.c:352
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "Tak bisa mengalokasikan memori untuk menyandi."
-#: ../libnm-util/crypto_gnutls.c:294
+#: ../libnm-util/crypto_gnutls.c:293
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
msgstr "Gagal menginisialisasi konteks cipher penyandian: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:303
+#: ../libnm-util/crypto_gnutls.c:302
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
msgstr "Gagal menata kunci simetrik untuk penyandian: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:313
+#: ../libnm-util/crypto_gnutls.c:312
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
msgstr "Gagal menata IV untuk penyandian: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:322
+#: ../libnm-util/crypto_gnutls.c:321
#, c-format
msgid "Failed to encrypt the data: %s / %s."
msgstr "Gagal menyandi data: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:362
+#: ../libnm-util/crypto_gnutls.c:361
#, c-format
msgid "Error initializing certificate data: %s"
msgstr "Gagal menginisialisasi data sertifikat: %s"
-#: ../libnm-util/crypto_gnutls.c:384
+#: ../libnm-util/crypto_gnutls.c:383
#, c-format
msgid "Couldn't decode certificate: %s"
msgstr "Tak bisa mengawa kode (decode) sertifikat: %s"
-#: ../libnm-util/crypto_gnutls.c:408
+#: ../libnm-util/crypto_gnutls.c:407
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
msgstr "Tak bisa menginisialisasi pengawa kode (decoder) PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:421
+#: ../libnm-util/crypto_gnutls.c:420
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
msgstr "Tak bisa mengawa kode (decode) berkas PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:433
+#: ../libnm-util/crypto_gnutls.c:432
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "Tak bisa memeriksa berkas PKCS#12: %s"
+#: ../libnm-util/crypto_gnutls.c:460
+#, c-format
+#| msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgid "Couldn't initialize PKCS#8 decoder: %s"
+msgstr "Tak bisa menginisialisasi pengawa kode (decoder) PKCS#8: %s"
+
+#: ../libnm-util/crypto_gnutls.c:483
+#, c-format
+#| msgid "Couldn't decode PKCS#12 file: %s"
+msgid "Couldn't decode PKCS#8 file: %s"
+msgstr "Tak bisa mengawa kode (decode) berkas PKCS#8: %s"
+
#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "Gagal menginisialisasi mesin kripto: %d"
-#: ../libnm-util/crypto_nss.c:111
+#: ../libnm-util/crypto_nss.c:107
#, c-format
msgid "Failed to initialize the MD5 context: %d."
msgstr "Gagal menginisialisasi konteks MD5: %d."
-#: ../libnm-util/crypto_nss.c:179
+#: ../libnm-util/crypto_nss.c:175
#, c-format
msgid "Invalid IV length (must be at least %d)."
msgstr "Panjang IV tak valid (mesti paling tidak %d)."
-#: ../libnm-util/crypto_nss.c:196
+#: ../libnm-util/crypto_nss.c:192
#, c-format
msgid "Failed to initialize the decryption cipher slot."
msgstr "Gagal menginisialisasi slot cipher pengawasandian (decryption)."
-#: ../libnm-util/crypto_nss.c:206
+#: ../libnm-util/crypto_nss.c:202
#, c-format
msgid "Failed to set symmetric key for decryption."
msgstr "Gagal menata kunci simetrik untuk pengawasandian (decryption)."
-#: ../libnm-util/crypto_nss.c:216
+#: ../libnm-util/crypto_nss.c:212
#, c-format
msgid "Failed to set IV for decryption."
msgstr "Gagal menata IV untuk pengawasandian (decryption)."
-#: ../libnm-util/crypto_nss.c:224
+#: ../libnm-util/crypto_nss.c:220
#, c-format
msgid "Failed to initialize the decryption context."
msgstr "Gagal menginisialisasi konteks pengawasandian (decryption)."
-#: ../libnm-util/crypto_nss.c:237
+#: ../libnm-util/crypto_nss.c:233
#, c-format
msgid "Failed to decrypt the private key: %d."
msgstr "Gagal mengawa sandi (decrypt) kunci privat: %d"
-#: ../libnm-util/crypto_nss.c:245
+#: ../libnm-util/crypto_nss.c:241
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
-msgstr ""
-"Gagal mengawa sandi (decrypt) kunci privat: data terawa sandi terlalu besar."
+msgstr "Gagal mengawa sandi (decrypt) kunci privat: data terawa sandi terlalu besar."
-#: ../libnm-util/crypto_nss.c:256
+#: ../libnm-util/crypto_nss.c:252
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "Gagal memfinalisasi pengawasandian (decryption) kunci privat: %d."
-#: ../libnm-util/crypto_nss.c:364
+#: ../libnm-util/crypto_nss.c:360
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "Gagal menginisialisasi slot cipher penyandian."
-#: ../libnm-util/crypto_nss.c:372
+#: ../libnm-util/crypto_nss.c:368
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "Gagal menata kunci simetrik untuk penyandian."
-#: ../libnm-util/crypto_nss.c:380
+#: ../libnm-util/crypto_nss.c:376
#, c-format
msgid "Failed to set IV for encryption."
msgstr "Gagal menata IV untuk penyandian."
-#: ../libnm-util/crypto_nss.c:388
+#: ../libnm-util/crypto_nss.c:384
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "Gagal menginisialisasi konteks penyandian."
-#: ../libnm-util/crypto_nss.c:396
+#: ../libnm-util/crypto_nss.c:392
#, c-format
msgid "Failed to encrypt: %d."
msgstr "Gagal mengawasandi: %d."
-#: ../libnm-util/crypto_nss.c:404
+#: ../libnm-util/crypto_nss.c:400
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "Banyaknya data tak terduga setelah penyandian."
-#: ../libnm-util/crypto_nss.c:447
+#: ../libnm-util/crypto_nss.c:443
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "Tak bisa mengawa kode (decode) sertifikat: %d"
-#: ../libnm-util/crypto_nss.c:482
+#: ../libnm-util/crypto_nss.c:478
#, c-format
msgid "Couldn't convert password to UCS2: %d"
msgstr "Tak bisa mengubah kata sandi ke UCS2: %d"
-#: ../libnm-util/crypto_nss.c:510
+#: ../libnm-util/crypto_nss.c:506
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "Tak bisa menginisialisasi pengawa kode (decoder) PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:519
+#: ../libnm-util/crypto_nss.c:515
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "Tak bisa mengawa kode (decode) berkas PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:528
+#: ../libnm-util/crypto_nss.c:524
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "Tak bisa memeriksa berkas PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:557
+#: ../libnm-util/crypto_nss.c:568
msgid "Could not generate random data."
msgstr "Tak bisa menjangkitkan data acak."
-#: ../libnm-util/nm-utils.c:1975
+#: ../libnm-util/nm-utils.c:2000
#, c-format
msgid "Not enough memory to make encryption key."
msgstr "Tak cukup memori untuk membuat kunci penyandian."
-#: ../libnm-util/nm-utils.c:2085
+#: ../libnm-util/nm-utils.c:2110
msgid "Could not allocate memory for PEM file creation."
msgstr "Tak bisa mengalokasikan memori bagi pembuatan berkas PEM."
-#: ../libnm-util/nm-utils.c:2097
+#: ../libnm-util/nm-utils.c:2122
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr "Tak bisa mengalokasikan memori untuk menulis IV ke berkas PEM."
-#: ../libnm-util/nm-utils.c:2109
+#: ../libnm-util/nm-utils.c:2134
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
-msgstr ""
-"Tak bisa mengalokasikan memori untuk menulis kunci tersandi ke berkas PEM."
+msgstr "Tak bisa mengalokasikan memori untuk menulis kunci tersandi ke berkas PEM."
-#: ../libnm-util/nm-utils.c:2128
+#: ../libnm-util/nm-utils.c:2153
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "Tak bisa mengalokasikan memori bagi data berkas PEM."
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
-msgid "Connection sharing via a protected WiFi network"
-msgstr "Berbagi koneksi melalui jaringan WiFi terlindung."
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
-msgid "Connection sharing via an open WiFi network"
-msgstr "Berbagi koneksi melalui jaringan WiFi terbuka"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
-msgid "Modify persistent system hostname"
-msgstr "Ubah nama host sistem yang persisten"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
-msgid "Modify system connections"
-msgstr "Ubah koneksi sistem"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
-msgid "System policy prevents modification of system settings"
-msgstr "Kebijakan sistem mencegah pengubahan tatanan sistem"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
-msgid "System policy prevents modification of the persistent system hostname"
-msgstr "Kebijakan sistem mencegah pengubahan nama host yang persisten"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
-msgid "System policy prevents sharing connections via a protected WiFi network"
-msgstr ""
-"Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terlindung"
-
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
-msgid "System policy prevents sharing connections via an open WiFi network"
-msgstr ""
-"Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terbuka"
-
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
msgid "Allow control of network connections"
msgstr "Ijinkan pengendalian sambungan jaringan"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
-msgid "Allow use of user-specific connections"
-msgstr "Ijinkan penggunaan sambungan spesifik-pengguna"
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Berbagi koneksi melalui jaringan WiFi terlindung."
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
-msgid "Enable or disable WiFi devices"
-msgstr "Aktifkan atau matikan perangkat WiFi"
+msgid "Connection sharing via an open WiFi network"
+msgstr "Berbagi koneksi melalui jaringan WiFi terbuka"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
-msgid "Enable or disable mobile broadband devices"
-msgstr "Aktifkan atau matikan perangkat broadband bergerak"
+msgid "Enable or disable WiFi devices"
+msgstr "Aktifkan atau matikan perangkat WiFi"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
-msgid "Enable or disable system networking"
-msgstr "Aktifkan atau matikan jejaring sistem"
+#| msgid "Enable or disable mobile broadband devices"
+msgid "Enable or disable WiMAX mobile broadband devices"
+msgstr "Aktifkan atau matikan perangkat broadband bergerak WiMAX"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
-msgid ""
-"Put NetworkManager to sleep or wake it up (should only be used by system "
-"power management)"
-msgstr ""
-"Tidurkan NetworkManager atau bangunkan (mestinya hanya dipakai oleh "
-"manajemen daya sistem)"
+msgid "Enable or disable mobile broadband devices"
+msgstr "Aktifkan atau matikan perangkat broadband bergerak"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
-msgid "System policy prevents control of network connections"
-msgstr "Kebijakan sistem mencegah pengendalian sambungan jaringan"
+msgid "Enable or disable system networking"
+msgstr "Aktifkan atau matikan jejaring sistem"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
-msgid "System policy prevents enabling or disabling WiFi devices"
-msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat WiFi"
+#| msgid "Modify system connections"
+msgid "Modify network connections for all users"
+msgstr "Ubah koneksi jaringan bagi semua pengguna"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
-msgid "System policy prevents enabling or disabling mobile broadband devices"
-msgstr ""
-"Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband "
-"bergerak"
+msgid "Modify persistent system hostname"
+msgstr "Ubah nama host sistem yang persisten"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
-msgid "System policy prevents enabling or disabling system networking"
-msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan jejaring sistem"
+#| msgid "Allow control of network connections"
+msgid "Modify personal network connections"
+msgstr "Ubah koneksi jaringan personal"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
-msgid "System policy prevents putting NetworkManager to sleep or waking it up"
-msgstr ""
-"Kebijakan sistem mencegah menidurkan NetworkManager atau membangunkannya"
+msgid "Put NetworkManager to sleep or wake it up (should only be used by system power management)"
+msgstr "Tidurkan NetworkManager atau bangunkan (mestinya hanya dipakai oleh manajemen daya sistem)"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
-msgid "System policy prevents use of user-specific connections"
-msgstr "Kebijakan sistem mencegah penggunaan sambungan spesifik-pengguna"
+msgid "System policy prevents control of network connections"
+msgstr "Kebijakan sistem mencegah pengendalian sambungan jaringan"
-#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
-#: ../src/nm-netlink-monitor.c:653
-#, c-format
-msgid "error processing netlink message: %s"
-msgstr "galat memroses pesan netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat WiFi"
-#: ../src/nm-netlink-monitor.c:214
-msgid "error occurred while waiting for data on socket"
-msgstr "galat terjadi ketika menunggu data pada soket"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
+#| msgid ""
+#| "System policy prevents enabling or disabling mobile broadband devices"
+msgid "System policy prevents enabling or disabling WiMAX mobile broadband devices"
+msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak WiMAX"
-#: ../src/nm-netlink-monitor.c:254
-#, c-format
-msgid "unable to connect to netlink for monitoring link status: %s"
-msgstr "tak bisa menyambung ke netlink untuk pemantauan status sambungan: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak"
-#: ../src/nm-netlink-monitor.c:265
-#, c-format
-msgid "unable to enable netlink handle credential passing: %s"
-msgstr "tak bisa mengaktifkan penyampaian kredensial handle netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:16
+msgid "System policy prevents enabling or disabling system networking"
+msgstr "Kebijakan sistem mencegah mengaktifkan atau mematikan jejaring sistem"
-#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
-#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
-msgstr ""
-"tak bisa mengalokasikan handle netlink untuk pemantauan status sambungan: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:17
+#| msgid "System policy prevents modification of system settings"
+msgid "System policy prevents modification of network settings for all users"
+msgstr "Kebijakan sistem mencegah pengubahan tatanan sistem bagi semua pengguna"
-#: ../src/nm-netlink-monitor.c:376
-#, c-format
-msgid "unable to allocate netlink link cache for monitoring link status: %s"
-msgstr ""
-"tak bisa mengalokasikan singgahan sambungan netlink untuk pemantauan status "
-"sambungan: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18
+#| msgid "System policy prevents modification of system settings"
+msgid "System policy prevents modification of personal network settings"
+msgstr "Kebijakan sistem mencegah pengubahan tatanan jaringan pribadi"
-#: ../src/nm-netlink-monitor.c:502
-#, c-format
-msgid "unable to join netlink group: %s"
-msgstr "tak bisa bergabung dengan grup netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:19
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr "Kebijakan sistem mencegah pengubahan nama host yang persisten"
-#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
-#, c-format
-msgid "error updating link cache: %s"
-msgstr "galat memperbarui singgahan sambungan: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr "Kebijakan sistem mencegah menidurkan NetworkManager atau membangunkannya"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terlindung"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr "Kebijakan sistem mencegah berbagi sambungan melalui jaringan WiFi terbuka"
-#: ../src/main.c:502
+#: ../src/main.c:530
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
-msgstr ""
-"Opsi tak valid. Silakan pakai --help untuk melihat daftar opsi yang valid.\n"
+msgstr "Opsi tak valid. Silakan pakai --help untuk melihat daftar opsi yang valid.\n"
-#: ../src/main.c:573
+#: ../src/main.c:611
#, c-format
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. Silakan pakai --help untuk melihat daftar opsi yang valid.\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:324
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62
msgid "# Created by NetworkManager\n"
msgstr "# Dibuat oleh NetworkManager\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:340
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:69
#, c-format
msgid ""
"# Merged from %s\n"
@@ -1688,29 +2100,119 @@ msgstr "'dhcpd' dapat ditemukan."
msgid "unsupported DHCP client '%s'"
msgstr "Klien DHCP '%s' yang tak didukung"
-#: ../src/logging/nm-logging.c:146
+#: ../src/dns-manager/nm-dns-manager.c:369
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr "CATATAN: resolver libc mungkin tak mendukung lebih dari 3 nameserver."
+
+#: ../src/dns-manager/nm-dns-manager.c:371
+msgid "The nameservers listed below may not be recognized."
+msgstr "Nameserver yang terdaftar di bawah mungkin tak dikenali."
+
+#: ../src/logging/nm-logging.c:149
#, c-format
msgid "Unknown log level '%s'"
msgstr "Aras log tak dikenal '%s'"
-#: ../src/logging/nm-logging.c:171
+#: ../src/logging/nm-logging.c:174
#, c-format
msgid "Unknown log domain '%s'"
msgstr "Ranah log tak dikenal '%s'"
-#: ../src/dns-manager/nm-dns-manager.c:384
-msgid "NOTE: the libc resolver may not support more than 3 nameservers."
-msgstr "CATATAN: resolver libc mungkin tak mendukung lebih dari 3 nameserver."
+#: ../src/modem-manager/nm-modem-cdma.c:296
+#: ../src/nm-device-bt.c:355
+#, c-format
+#| msgid "connection failed"
+msgid "CDMA connection %d"
+msgstr "Sambungan CDMA %d"
-#: ../src/dns-manager/nm-dns-manager.c:386
-msgid "The nameservers listed below may not be recognized."
-msgstr "Nameserver yang terdaftar di bawah mungkin tak dikenali."
+#: ../src/modem-manager/nm-modem-gsm.c:499
+#: ../src/nm-device-bt.c:351
+#, c-format
+#| msgid "connection failed"
+msgid "GSM connection %d"
+msgstr "Sambungan GSM %d"
+
+#: ../src/nm-device-bt.c:326
+#, c-format
+#| msgid "VPN connection failed"
+msgid "PAN connection %d"
+msgstr "Sambungan PAN %d"
+
+#: ../src/nm-device-bt.c:359
+#, c-format
+#| msgid "VPN connection failed"
+msgid "DUN connection %d"
+msgstr "Sambungan DUN %d"
+
+#: ../src/nm-device-ethernet.c:1681
+#, c-format
+#| msgid "VPN connection failed"
+msgid "PPPoE connection %d"
+msgstr "Sambungan PPPoE %d"
+
+#: ../src/nm-device-ethernet.c:1681
+#: ../src/settings/nm-settings-utils.c:50
+#, c-format
+#| msgid "Active connections"
+msgid "Wired connection %d"
+msgstr "Sambungan kabel %d"
+
+#: ../src/nm-device-olpc-mesh.c:423
+#, c-format
+msgid "Mesh %d"
+msgstr "Mesh %d"
+
+#: ../src/nm-manager.c:673
+#, c-format
+#| msgid "VPN connection failed"
+msgid "VPN connection %d"
+msgstr "Sambungan VPN %d"
+
+#: ../src/nm-netlink-monitor.c:100
+#: ../src/nm-netlink-monitor.c:231
+#: ../src/nm-netlink-monitor.c:653
+#, c-format
+msgid "error processing netlink message: %s"
+msgstr "galat memroses pesan netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "galat terjadi ketika menunggu data pada soket"
+
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr "tak bisa menyambung ke netlink untuk pemantauan status sambungan: %s"
+
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr "tak bisa mengaktifkan penyampaian kredensial handle netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:291
+#: ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgstr "tak bisa mengalokasikan handle netlink untuk pemantauan status sambungan: %s"
-#: ../src/settings/nm-default-wired-connection.c:157
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr "tak bisa mengalokasikan singgahan sambungan netlink untuk pemantauan status sambungan: %s"
+
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "tak bisa bergabung dengan grup netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:629
+#: ../src/nm-netlink-monitor.c:642
#, c-format
-msgid "Auto %s"
-msgstr "Otomatis %s"
+msgid "error updating link cache: %s"
+msgstr "galat memperbarui singgahan sambungan: %s"
-#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../src/settings/plugins/ifcfg-rh/reader.c:3512
+#: ../src/settings/plugins/ifnet/connection_parser.c:51
msgid "System"
msgstr "Sistem"
+
diff --git a/po/ko.po b/po/ko.po
index d9d6f9492..ba6bb0b6c 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -9,6 +9,7 @@
# Hyunsok Oh <enshahar@gmail.com>, 2010.
# Hyunsok Oh <hoh@redhat.com>, 2010.
# Changwoo Ryu <cwryu@debian.org>, 2011.
+# Seongho Cho <darkcircle.0426@gmail.com>, 2011.
#
# 주ì˜:
# - ì´ í”„ë¡œê·¸ëž¨ì˜ ì´ë¦„ì¸ "Network Manager"는 "ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬" 혹ì€
@@ -17,46 +18,47 @@
msgid ""
msgstr ""
"Project-Id-Version: ko\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2011-02-24 03:24+0000\n"
-"PO-Revision-Date: 2011-02-27 16:50+0900\n"
-"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-05-31 03:25+0000\n"
+"PO-Revision-Date: 2011-07-24 05:55+0900\n"
+"Last-Translator: Seong-ho, Cho <darkcircle.0426@gmail.com>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: ../cli/src/connections.c:63 ../cli/src/connections.c:77
-#: ../cli/src/devices.c:100 ../cli/src/devices.c:113 ../cli/src/devices.c:123
-#: ../cli/src/devices.c:133 ../cli/src/devices.c:147 ../cli/src/devices.c:161
-#: ../cli/src/devices.c:172 ../cli/src/devices.c:183 ../cli/src/devices.c:192
-#: ../cli/src/devices.c:201 ../cli/src/devices.c:223
+#: ../cli/src/connections.c:64 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124
+#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162
+#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:224
msgid "NAME"
msgstr "ì´ë¦„"
#. 0
-#: ../cli/src/connections.c:64 ../cli/src/connections.c:78
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:79
msgid "UUID"
msgstr "UUID"
#. 1
-#: ../cli/src/connections.c:65
+#: ../cli/src/connections.c:66
msgid "DEVICES"
msgstr "장치"
#. 2
-#: ../cli/src/connections.c:66
+#: ../cli/src/connections.c:67
msgid "DEFAULT"
msgstr "ë””í´íŠ¸"
#. 3
-#: ../cli/src/connections.c:67
+#: ../cli/src/connections.c:68
msgid "SPEC-OBJECT"
msgstr "스펙-ê°ì²´"
#. 4
-#: ../cli/src/connections.c:68
+#: ../cli/src/connections.c:69
msgid "VPN"
msgstr "VPN"
@@ -65,8 +67,8 @@ msgstr "VPN"
#. 2
#. 11
#. 5
-#: ../cli/src/connections.c:69 ../cli/src/connections.c:84
-#: ../cli/src/devices.c:68 ../cli/src/devices.c:213 ../cli/src/devices.c:229
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:85
+#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230
msgid "DBUS-PATH"
msgstr "DBUS 경로"
@@ -74,28 +76,28 @@ msgstr "DBUS 경로"
#. 0
#. 1
#. 2
-#: ../cli/src/connections.c:79 ../cli/src/devices.c:66
-#: ../cli/src/devices.c:102 ../cli/src/devices.c:226
+#: ../cli/src/connections.c:80 ../cli/src/devices.c:67
+#: ../cli/src/devices.c:103 ../cli/src/devices.c:227
msgid "TYPE"
msgstr "유형"
#. 2
-#: ../cli/src/connections.c:80
+#: ../cli/src/connections.c:81
msgid "TIMESTAMP"
msgstr "타임스탬프"
#. 3
-#: ../cli/src/connections.c:81
+#: ../cli/src/connections.c:82
msgid "TIMESTAMP-REAL"
msgstr "실제 타임스탬프"
#. 4
-#: ../cli/src/connections.c:82
+#: ../cli/src/connections.c:83
msgid "AUTOCONNECT"
msgstr "ìžë™ì—°ê²°"
#. 5
-#: ../cli/src/connections.c:83
+#: ../cli/src/connections.c:84
msgid "READONLY"
msgstr "ì½ê¸°ì „ìš©"
@@ -118,15 +120,16 @@ msgstr ""
"\n"
" list [id <id> | uuid <id> ]\n"
" status\n"
-" up id <id> | uuid <id> [iface <ì¸í„°íŽ˜ì´ìŠ¤>] [ap <하드웨어주소>] [--nowait] [--timeout <타임아웃시간>]\n"
+" up id <id> | uuid <id> [iface <ì¸í„°íŽ˜ì´ìŠ¤>] [ap <하드웨어주소>] [--nowait] "
+"[--timeout <타임아웃시간>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:220 ../cli/src/connections.c:542
+#: ../cli/src/connections.c:220 ../cli/src/connections.c:544
#, c-format
msgid "Error: 'con list': %s"
msgstr "오류: 'con list': %s"
-#: ../cli/src/connections.c:222 ../cli/src/connections.c:544
+#: ../cli/src/connections.c:222 ../cli/src/connections.c:546
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
msgstr "오류: 'con list': %s. í—ˆìš©ëœ í•„ë“œ: %s"
@@ -135,332 +138,332 @@ msgstr "오류: 'con list': %s. í—ˆìš©ëœ í•„ë“œ: %s"
msgid "Connection details"
msgstr "ì—°ê²° ìƒì„¸ ì •ë³´"
-#: ../cli/src/connections.c:417
+#: ../cli/src/connections.c:419
msgid "never"
msgstr "하지않ìŒ"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:418 ../cli/src/connections.c:419
-#: ../cli/src/connections.c:597 ../cli/src/connections.c:599
-#: ../cli/src/devices.c:503 ../cli/src/devices.c:556 ../cli/src/devices.c:681
-#: ../cli/src/devices.c:707 ../cli/src/devices.c:708 ../cli/src/devices.c:709
-#: ../cli/src/devices.c:710 ../cli/src/devices.c:711 ../cli/src/settings.c:518
-#: ../cli/src/settings.c:561 ../cli/src/settings.c:661
-#: ../cli/src/settings.c:935 ../cli/src/settings.c:936
-#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
-#: ../cli/src/settings.c:1065 ../cli/src/settings.c:1066
-#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1146
-#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940 ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148
#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150
#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152
#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154
#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156
#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158
-#: ../cli/src/settings.c:1233
+#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
msgid "yes"
msgstr "예"
-#: ../cli/src/connections.c:418 ../cli/src/connections.c:419
-#: ../cli/src/connections.c:597 ../cli/src/connections.c:599
-#: ../cli/src/devices.c:503 ../cli/src/devices.c:556 ../cli/src/devices.c:681
-#: ../cli/src/devices.c:707 ../cli/src/devices.c:708 ../cli/src/devices.c:709
-#: ../cli/src/devices.c:710 ../cli/src/devices.c:711 ../cli/src/settings.c:518
-#: ../cli/src/settings.c:520 ../cli/src/settings.c:561
-#: ../cli/src/settings.c:661 ../cli/src/settings.c:935
-#: ../cli/src/settings.c:936 ../cli/src/settings.c:938
-#: ../cli/src/settings.c:940 ../cli/src/settings.c:1065
-#: ../cli/src/settings.c:1066 ../cli/src/settings.c:1067
-#: ../cli/src/settings.c:1146 ../cli/src/settings.c:1147
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663 ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151
#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153
#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155
#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157
-#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1233
+#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235
msgid "no"
msgstr "아니요"
-#: ../cli/src/connections.c:493
+#: ../cli/src/connections.c:495
msgid "Connection list"
msgstr "ì—°ê²° 목ë¡"
-#: ../cli/src/connections.c:506 ../cli/src/connections.c:1468
-#: ../cli/src/connections.c:1483 ../cli/src/connections.c:1492
-#: ../cli/src/connections.c:1502 ../cli/src/connections.c:1514
-#: ../cli/src/connections.c:1609 ../cli/src/devices.c:1184
-#: ../cli/src/devices.c:1194 ../cli/src/devices.c:1308
-#: ../cli/src/devices.c:1315 ../cli/src/devices.c:1528
-#: ../cli/src/devices.c:1535
+#: ../cli/src/connections.c:508 ../cli/src/connections.c:1380
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1404
+#: ../cli/src/connections.c:1414 ../cli/src/connections.c:1426
+#: ../cli/src/connections.c:1521 ../cli/src/devices.c:1190
+#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314
+#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534
+#: ../cli/src/devices.c:1541
#, c-format
msgid "Error: %s argument is missing."
msgstr "오류: %s ì¸ìžê°€ 없습니다."
-#: ../cli/src/connections.c:519
+#: ../cli/src/connections.c:521
#, c-format
msgid "Error: %s - no such connection."
msgstr "오류: %s - 그런 ì—°ê²°ì´ ì—†ìŠµë‹ˆë‹¤."
-#: ../cli/src/connections.c:525 ../cli/src/connections.c:1527
-#: ../cli/src/connections.c:1626 ../cli/src/devices.c:981
-#: ../cli/src/devices.c:1061 ../cli/src/devices.c:1208
-#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1541
+#: ../cli/src/connections.c:527 ../cli/src/connections.c:1439
+#: ../cli/src/connections.c:1538 ../cli/src/devices.c:987
+#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214
+#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "알려져있지 ì•Šì€ ë§¤ê°œë³€ìˆ˜ìž…ë‹ˆë‹¤: %s\n"
-#: ../cli/src/connections.c:534
+#: ../cli/src/connections.c:536
#, c-format
msgid "Error: no valid parameter specified."
msgstr "오류: 옳바른 매개변수가 지정ë˜ì§€ 않았습니다."
-#: ../cli/src/connections.c:549 ../cli/src/connections.c:1717
-#: ../cli/src/devices.c:1749 ../cli/src/network-manager.c:461
+#: ../cli/src/connections.c:551 ../cli/src/connections.c:1629
+#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463
#, c-format
msgid "Error: %s."
msgstr "오류: %s."
-#: ../cli/src/connections.c:637
+#: ../cli/src/connections.c:639
#, c-format
msgid "Error: 'con status': %s"
msgstr "오류: 'con status': %s"
-#: ../cli/src/connections.c:639
+#: ../cli/src/connections.c:641
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
msgstr "오류: 'con status': %s. í—ˆìš©ëœ í•„ë“œ: %s"
-#: ../cli/src/connections.c:647 ../cli/src/connections.c:1542
-#: ../cli/src/connections.c:1641 ../cli/src/devices.c:1008
-#: ../cli/src/devices.c:1070 ../cli/src/devices.c:1223
-#: ../cli/src/devices.c:1351 ../cli/src/devices.c:1570
+#: ../cli/src/connections.c:649 ../cli/src/connections.c:1454
+#: ../cli/src/connections.c:1553 ../cli/src/devices.c:1014
+#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576
#, c-format
msgid "Error: Can't find out if NetworkManager is running: %s."
msgstr "오류: ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì´ ì‹¤í–‰ 중ì¸ì§€ ì•Œ 수 없습니다: %s."
-#: ../cli/src/connections.c:651 ../cli/src/connections.c:1546
-#: ../cli/src/connections.c:1645 ../cli/src/devices.c:1012
-#: ../cli/src/devices.c:1074 ../cli/src/devices.c:1227
-#: ../cli/src/devices.c:1355 ../cli/src/devices.c:1574
+#: ../cli/src/connections.c:653 ../cli/src/connections.c:1458
+#: ../cli/src/connections.c:1557 ../cli/src/devices.c:1018
+#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233
+#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580
#, c-format
msgid "Error: NetworkManager is not running."
msgstr "오류: ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì´ ì‹¤í–‰ ì¤‘ì´ ì•„ë‹™ë‹ˆë‹¤."
-#: ../cli/src/connections.c:659
+#: ../cli/src/connections.c:661
msgid "Active connections"
msgstr "í™œì„±í™”ëœ ì—°ê²°"
-#: ../cli/src/connections.c:1139
+#: ../cli/src/connections.c:1097
#, c-format
msgid "no active connection on device '%s'"
msgstr "장치 '%s'ì— í™œì„±í™”ëœ ì—°ê²°ì´ ì—†ìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1147
+#: ../cli/src/connections.c:1105
#, c-format
msgid "no active connection or device"
msgstr "í™œì„±í™”ëœ ì—°ê²°ì´ë‚˜ 장치가 없습니다"
-#: ../cli/src/connections.c:1218
+#: ../cli/src/connections.c:1176
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "'%s' 장치는 '%s' ì—°ê²°ê³¼ 호환ë˜ì§€ 않습니다"
-#: ../cli/src/connections.c:1220
+#: ../cli/src/connections.c:1178
#, c-format
msgid "no device found for connection '%s'"
msgstr "ì—°ê²° '%s'ì— ëŒ€í•œ 장치를 ì°¾ì„ ìˆ˜ 없습니다"
-#: ../cli/src/connections.c:1231
+#: ../cli/src/connections.c:1189
msgid "activating"
msgstr "활성화중"
-#: ../cli/src/connections.c:1233
+#: ../cli/src/connections.c:1191
msgid "activated"
msgstr "활성화ë¨"
-#: ../cli/src/connections.c:1236 ../cli/src/connections.c:1259
-#: ../cli/src/connections.c:1292 ../cli/src/devices.c:307
-#: ../cli/src/devices.c:682 ../cli/src/network-manager.c:116
-#: ../cli/src/network-manager.c:178 ../cli/src/network-manager.c:181
-#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:351
-#: ../cli/src/network-manager.c:389 ../cli/src/network-manager.c:428
-#: ../cli/src/settings.c:483 ../cli/src/utils.c:396
+#: ../cli/src/connections.c:1193 ../cli/src/devices.c:304
+msgid "deactivating"
+msgstr "활성화 해제하는 중"
+
+#: ../cli/src/connections.c:1196 ../cli/src/connections.c:1219
+#: ../cli/src/connections.c:1252 ../cli/src/devices.c:308
+#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118
+#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183
+#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298
+#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391
+#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485
+#: ../cli/src/utils.c:396
msgid "unknown"
msgstr "ì•Œ 수 ì—†ìŒ"
-#: ../cli/src/connections.c:1245
+#: ../cli/src/connections.c:1205
msgid "VPN connecting (prepare)"
msgstr "VPN 연결 중 (준비)"
-#: ../cli/src/connections.c:1247
+#: ../cli/src/connections.c:1207
msgid "VPN connecting (need authentication)"
msgstr "VPN ì—°ê²° 중 (ì¸ì¦ í•„ìš”)"
-#: ../cli/src/connections.c:1249
+#: ../cli/src/connections.c:1209
msgid "VPN connecting"
msgstr "VPN 연결 중"
-#: ../cli/src/connections.c:1251
+#: ../cli/src/connections.c:1211
msgid "VPN connecting (getting IP configuration)"
msgstr "VPN 연결 중 (IP 설정 얻는 중)"
-#: ../cli/src/connections.c:1253
+#: ../cli/src/connections.c:1213
msgid "VPN connected"
msgstr "VPN ì—°ê²° ë¨"
-#: ../cli/src/connections.c:1255
+#: ../cli/src/connections.c:1215
msgid "VPN connection failed"
msgstr "VPN 연결 실패"
-#: ../cli/src/connections.c:1257
+#: ../cli/src/connections.c:1217
msgid "VPN disconnected"
msgstr "VPN ì—°ê²° ëŠê²¼ìŒ"
-#: ../cli/src/connections.c:1268
+#: ../cli/src/connections.c:1228
msgid "unknown reason"
msgstr "ì•Œ 수 없는 ì´ìœ "
-#: ../cli/src/connections.c:1270
+#: ../cli/src/connections.c:1230
msgid "none"
msgstr "ì—†ìŒ"
-#: ../cli/src/connections.c:1272
+#: ../cli/src/connections.c:1232
msgid "the user was disconnected"
msgstr "ì‚¬ìš©ìž ì—°ê²°ì´ ëŠì–´ì¡ŒìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1274
+#: ../cli/src/connections.c:1234
msgid "the base network connection was interrupted"
msgstr "기반 ë„¤íŠ¸ì›Œí¬ ì—°ê²°ì´ ì¤‘ì§€ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1276
+#: ../cli/src/connections.c:1236
msgid "the VPN service stopped unexpectedly"
msgstr "VPN 서비스가 예기치 못하게 중단ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1278
+#: ../cli/src/connections.c:1238
msgid "the VPN service returned invalid configuration"
msgstr "VPN 서비스가 ìž˜ëª»ëœ ì„¤ì •ì„ ë°˜í™˜í–ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1280
+#: ../cli/src/connections.c:1240
msgid "the connection attempt timed out"
msgstr "ì—°ê²° ì‹œë„ê°€ ì‹œê°„ì„ ì´ˆê³¼í–ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1282
+#: ../cli/src/connections.c:1242
msgid "the VPN service did not start in time"
msgstr "VPN 서비스가 ì œ ì‹œê°„ì— ì‹œìž‘ë˜ì§€ 않았습니다"
-#: ../cli/src/connections.c:1284
+#: ../cli/src/connections.c:1244
msgid "the VPN service failed to start"
msgstr "VPN 서비스를 시작하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1286
+#: ../cli/src/connections.c:1246
msgid "no valid VPN secrets"
msgstr "옳바른 VPN 비밀 정보가 없습니다"
-#: ../cli/src/connections.c:1288
+#: ../cli/src/connections.c:1248
msgid "invalid VPN secrets"
msgstr "ìž˜ëª»ëœ VPN 비밀정보"
-#: ../cli/src/connections.c:1290
+#: ../cli/src/connections.c:1250
msgid "the connection was removed"
msgstr "ì—°ê²°ì´ ì œê±°ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: ../cli/src/connections.c:1304
+#: ../cli/src/connections.c:1264
#, c-format
msgid "state: %s\n"
msgstr "ìƒíƒœ: %s\n"
-#: ../cli/src/connections.c:1307 ../cli/src/connections.c:1333
+#: ../cli/src/connections.c:1267 ../cli/src/connections.c:1293
#, c-format
msgid "Connection activated\n"
msgstr "ì—°ê²°ì´ í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤\n"
-#: ../cli/src/connections.c:1310
+#: ../cli/src/connections.c:1270
#, c-format
msgid "Error: Connection activation failed."
msgstr "오류: 연결 활성화가 실패했습니다."
-#: ../cli/src/connections.c:1329
+#: ../cli/src/connections.c:1289
#, c-format
msgid "state: %s (%d)\n"
msgstr "ìƒíƒœ: %s (%d)\n"
-#: ../cli/src/connections.c:1339
+#: ../cli/src/connections.c:1299
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "오류: 연결 활성화가 실패했습니다: %s."
-#: ../cli/src/connections.c:1356 ../cli/src/devices.c:1130
+#: ../cli/src/connections.c:1316 ../cli/src/devices.c:1136
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "오류: 제한시간 %d초를 초과했습니다."
-#: ../cli/src/connections.c:1399
+#: ../cli/src/connections.c:1329
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "오류: 연결 활성화가 실패했습니다: %s"
-#: ../cli/src/connections.c:1413
-#, c-format
-msgid "Error: Obtaining active connection for '%s' failed."
-msgstr "오류: '%s'ì— ëŒ€í•œ í™œì„±í™”ëœ ì—°ê²°ì„ ì–»ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-
-#: ../cli/src/connections.c:1422
+#: ../cli/src/connections.c:1335
#, c-format
msgid "Active connection state: %s\n"
msgstr "í™œì„±í™”ëœ ì—°ê²° ìƒíƒœ: %s\n"
-#: ../cli/src/connections.c:1423
+#: ../cli/src/connections.c:1336
#, c-format
msgid "Active connection path: %s\n"
msgstr "í™œì„±í™”ëœ ì—°ê²° 경로: %s\n"
-#: ../cli/src/connections.c:1476 ../cli/src/connections.c:1617
+#: ../cli/src/connections.c:1388 ../cli/src/connections.c:1529
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "오류: 알려지지 ì•Šì€ ì—°ê²°: %s."
-#: ../cli/src/connections.c:1522 ../cli/src/devices.c:1202
+#: ../cli/src/connections.c:1434 ../cli/src/devices.c:1208
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "오류: 시간 제한 ê°’ '%s'ì´(ê°€) 올바르지 않습니다."
-#: ../cli/src/connections.c:1535 ../cli/src/connections.c:1634
+#: ../cli/src/connections.c:1447 ../cli/src/connections.c:1546
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "오류: id나 uuid를 지정해야만 합니다."
-#: ../cli/src/connections.c:1565
+#: ../cli/src/connections.c:1475
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "오류: ì ì ˆí•œ 장치를 ì°¾ì„ ìˆ˜ 없습니다: %s."
-#: ../cli/src/connections.c:1567
+#: ../cli/src/connections.c:1477
#, c-format
msgid "Error: No suitable device found."
msgstr "오류: ì ì ˆí•œ 장치를 ì°¾ì„ ìˆ˜ 없습니다."
-#: ../cli/src/connections.c:1670
+#: ../cli/src/connections.c:1582
#, c-format
msgid "Warning: Connection not active\n"
msgstr "경고: ì—°ê²°ì´ í™œì„±í™”ë˜ì–´ 있지 않습니다\n"
-#: ../cli/src/connections.c:1708
+#: ../cli/src/connections.c:1620
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "오류: 'con' 명령 '%s'ì€(는) 바른 ëª…ë ¹ì´ ì•„ë‹™ë‹ˆë‹¤."
-#: ../cli/src/connections.c:1773
+#: ../cli/src/connections.c:1685
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "오류: D-ë²„ìŠ¤ì— ì—°ê²°í•  수 없습니다."
-#: ../cli/src/connections.c:1780
+#: ../cli/src/connections.c:1692
#, c-format
msgid "Error: Could not get system settings."
msgstr "오류: 시스템 ì„¤ì •ì„ ì–»ì„ ìˆ˜ 없습니다."
-#: ../cli/src/connections.c:1790
+#: ../cli/src/connections.c:1702
#, c-format
msgid "Error: Can't obtain connections: settings service is not running."
msgstr "오류: ì—°ê²°ì„ ì–»ì„ ìˆ˜ 없습니다: 설정 서비스가 실행 ì¤‘ì´ ì•„ë‹™ë‹ˆë‹¤."
@@ -468,222 +471,222 @@ msgstr "오류: ì—°ê²°ì„ ì–»ì„ ìˆ˜ 없습니다: 설정 서비스가 실행 ì¤
#. 0
#. 9
#. 3
-#: ../cli/src/devices.c:65 ../cli/src/devices.c:101 ../cli/src/devices.c:211
-#: ../cli/src/devices.c:227
+#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212
+#: ../cli/src/devices.c:228
msgid "DEVICE"
msgstr "장치"
#. 1
#. 4
#. 1
-#: ../cli/src/devices.c:67 ../cli/src/devices.c:105
-#: ../cli/src/network-manager.c:37
+#: ../cli/src/devices.c:68 ../cli/src/devices.c:106
+#: ../cli/src/network-manager.c:39
msgid "STATE"
msgstr "ìƒíƒœ"
-#: ../cli/src/devices.c:77
+#: ../cli/src/devices.c:78
msgid "GENERAL"
msgstr "ì¼ë°˜"
#. 0
-#: ../cli/src/devices.c:78
+#: ../cli/src/devices.c:79
msgid "CAPABILITIES"
msgstr "기능"
#. 1
-#: ../cli/src/devices.c:79
+#: ../cli/src/devices.c:80
msgid "WIFI-PROPERTIES"
msgstr "WIFI ì†ì„±"
#. 2
-#: ../cli/src/devices.c:80
+#: ../cli/src/devices.c:81
msgid "AP"
msgstr "AP"
#. 3
-#: ../cli/src/devices.c:81
+#: ../cli/src/devices.c:82
msgid "WIRED-PROPERTIES"
msgstr "유선 ì†ì„±"
#. 4
-#: ../cli/src/devices.c:82
+#: ../cli/src/devices.c:83
msgid "WIMAX-PROPERTIES"
msgstr "WIMAX ì†ì„±"
#. 5
#. 0
-#: ../cli/src/devices.c:83 ../cli/src/devices.c:224
+#: ../cli/src/devices.c:84 ../cli/src/devices.c:225
msgid "NSP"
msgstr "NSP"
#. 6
-#: ../cli/src/devices.c:84
+#: ../cli/src/devices.c:85
msgid "IP4-SETTINGS"
msgstr "IP4 설정"
#. 7
-#: ../cli/src/devices.c:85
+#: ../cli/src/devices.c:86
msgid "IP4-DNS"
msgstr "IP4 DNS"
#. 8
-#: ../cli/src/devices.c:86
+#: ../cli/src/devices.c:87
msgid "IP6-SETTINGS"
msgstr "IP6 설정"
#. 9
-#: ../cli/src/devices.c:87
+#: ../cli/src/devices.c:88
msgid "IP6-DNS"
msgstr "IP6 DNS"
#. 2
-#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:104
msgid "DRIVER"
msgstr "ë“œë¼ì´ë²„"
#. 3
-#: ../cli/src/devices.c:104
+#: ../cli/src/devices.c:105
msgid "HWADDR"
msgstr "하드웨어주소"
#. 0
-#: ../cli/src/devices.c:114
+#: ../cli/src/devices.c:115
msgid "CARRIER-DETECT"
msgstr "ìºë¦¬ì–´ ê°ì§€"
#. 1
-#: ../cli/src/devices.c:115
+#: ../cli/src/devices.c:116
msgid "SPEED"
msgstr "ì†ë„"
#. 0
-#: ../cli/src/devices.c:124
+#: ../cli/src/devices.c:125
msgid "CARRIER"
msgstr "ìºë¦¬ì–´"
#. 0
-#: ../cli/src/devices.c:134
+#: ../cli/src/devices.c:135
msgid "WEP"
msgstr "WEP"
#. 1
-#: ../cli/src/devices.c:135
+#: ../cli/src/devices.c:136
msgid "WPA"
msgstr "WPA"
#. 2
-#: ../cli/src/devices.c:136
+#: ../cli/src/devices.c:137
msgid "WPA2"
msgstr "WPA2"
#. 3
-#: ../cli/src/devices.c:137
+#: ../cli/src/devices.c:138
msgid "TKIP"
msgstr "TKIP"
#. 4
-#: ../cli/src/devices.c:138
+#: ../cli/src/devices.c:139
msgid "CCMP"
msgstr "CCMP"
#. 0
-#: ../cli/src/devices.c:148
+#: ../cli/src/devices.c:149
msgid "CTR-FREQ"
msgstr "CTR 주파수"
#. 1
-#: ../cli/src/devices.c:149
+#: ../cli/src/devices.c:150
msgid "RSSI"
msgstr "RSSI"
#. 2
-#: ../cli/src/devices.c:150
+#: ../cli/src/devices.c:151
msgid "CINR"
msgstr "CINR"
#. 3
-#: ../cli/src/devices.c:151
+#: ../cli/src/devices.c:152
msgid "TX-POW"
msgstr "TX-POW"
#. 4
-#: ../cli/src/devices.c:152
+#: ../cli/src/devices.c:153
msgid "BSID"
msgstr "BSID"
#. 0
-#: ../cli/src/devices.c:162 ../cli/src/devices.c:173
+#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
msgid "ADDRESS"
msgstr "주소"
#. 1
-#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
+#: ../cli/src/devices.c:164 ../cli/src/devices.c:175
msgid "PREFIX"
msgstr "ì ‘ë‘사"
#. 2
-#: ../cli/src/devices.c:164 ../cli/src/devices.c:175
+#: ../cli/src/devices.c:165 ../cli/src/devices.c:176
msgid "GATEWAY"
msgstr "게ì´íŠ¸ì›¨ì´"
#. 0
-#: ../cli/src/devices.c:184 ../cli/src/devices.c:193
+#: ../cli/src/devices.c:185 ../cli/src/devices.c:194
msgid "DNS"
msgstr "DNS"
#. 0
-#: ../cli/src/devices.c:202
+#: ../cli/src/devices.c:203
msgid "SSID"
msgstr "SSID"
#. 1
-#: ../cli/src/devices.c:203
+#: ../cli/src/devices.c:204
msgid "BSSID"
msgstr "BSSID"
#. 2
-#: ../cli/src/devices.c:204
+#: ../cli/src/devices.c:205
msgid "MODE"
msgstr "모드"
#. 3
-#: ../cli/src/devices.c:205
+#: ../cli/src/devices.c:206
msgid "FREQ"
msgstr "주파수"
#. 4
-#: ../cli/src/devices.c:206
+#: ../cli/src/devices.c:207
msgid "RATE"
msgstr "전송률"
#. 5
#. 1
-#: ../cli/src/devices.c:207 ../cli/src/devices.c:225
+#: ../cli/src/devices.c:208 ../cli/src/devices.c:226
msgid "SIGNAL"
msgstr "신호"
#. 6
-#: ../cli/src/devices.c:208
+#: ../cli/src/devices.c:209
msgid "SECURITY"
msgstr "보안"
#. 7
-#: ../cli/src/devices.c:209
+#: ../cli/src/devices.c:210
msgid "WPA-FLAGS"
msgstr "WPA 플래그"
#. 8
-#: ../cli/src/devices.c:210
+#: ../cli/src/devices.c:211
msgid "RSN-FLAGS"
msgstr "RSN 플래그"
#. 10
#. 4
-#: ../cli/src/devices.c:212 ../cli/src/devices.c:228
+#: ../cli/src/devices.c:213 ../cli/src/devices.c:229
msgid "ACTIVE"
msgstr "활성"
-#: ../cli/src/devices.c:255
+#: ../cli/src/devices.c:256
#, c-format
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
@@ -712,308 +715,305 @@ msgstr ""
" wimax [list [iface <ì¸í„°íŽ˜ì´ìŠ¤>] | nsp <ì´ë¦„>]\n"
"\n"
-#: ../cli/src/devices.c:283
+#: ../cli/src/devices.c:284
msgid "unmanaged"
msgstr "관리ë˜ì§€ ì•ŠìŒ"
-#: ../cli/src/devices.c:285
+#: ../cli/src/devices.c:286
msgid "unavailable"
msgstr "사용할 수 ì—†ìŒ"
-#: ../cli/src/devices.c:287 ../cli/src/network-manager.c:113
+#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115
msgid "disconnected"
msgstr "ì—°ê²° ëŠê²¼ìŒ"
-#: ../cli/src/devices.c:289
+#: ../cli/src/devices.c:290
msgid "connecting (prepare)"
msgstr "연결 중 (준비)"
-#: ../cli/src/devices.c:291
+#: ../cli/src/devices.c:292
msgid "connecting (configuring)"
msgstr "연결 중 (설정중)"
-#: ../cli/src/devices.c:293
+#: ../cli/src/devices.c:294
msgid "connecting (need authentication)"
msgstr "ì—°ê²° 중 (ì¸ì¦ í•„ìš”)"
-#: ../cli/src/devices.c:295
+#: ../cli/src/devices.c:296
msgid "connecting (getting IP configuration)"
msgstr "연결 중 (IP 설정 가져오는 중)"
-#: ../cli/src/devices.c:297
+#: ../cli/src/devices.c:298
msgid "connecting (checking IP connectivity)"
msgstr "ì—°ê²° 중 (IP ì—°ê²° 확ì¸í•˜ëŠ” 중)"
-#: ../cli/src/devices.c:299
+#: ../cli/src/devices.c:300
msgid "connecting (starting secondary connections)"
msgstr "연결 중 (보조 연결 시작하는 중)"
-#: ../cli/src/devices.c:301 ../cli/src/network-manager.c:109
+#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111
msgid "connected"
msgstr "ì—°ê²°ë¨"
-#: ../cli/src/devices.c:303
-msgid "deactivating"
-msgstr "활성화 해제하는 중"
-
-#: ../cli/src/devices.c:305
+#: ../cli/src/devices.c:306
msgid "connection failed"
msgstr "연결 실패함"
-#: ../cli/src/devices.c:335 ../cli/src/devices.c:495 ../cli/src/devices.c:539
+#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501
+#: ../cli/src/devices.c:545
msgid "Unknown"
msgstr "ì•Œ 수 ì—†ìŒ"
-#: ../cli/src/devices.c:368
+#: ../cli/src/devices.c:374
msgid "(none)"
msgstr "(ì—†ìŒ)"
-#: ../cli/src/devices.c:393
+#: ../cli/src/devices.c:399
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: IP4 주소를 (0x%X) 변환하는 중 오류가 있습니다"
-#: ../cli/src/devices.c:464
+#: ../cli/src/devices.c:470
#, c-format
msgid "%u MHz"
msgstr "%u MHz"
-#: ../cli/src/devices.c:465
+#: ../cli/src/devices.c:471
#, c-format
msgid "%u MB/s"
msgstr "%u MB/s"
-#: ../cli/src/devices.c:474
+#: ../cli/src/devices.c:480
msgid "Encrypted: "
msgstr "암호화ë¨: "
-#: ../cli/src/devices.c:479
+#: ../cli/src/devices.c:485
msgid "WEP "
msgstr "WEP "
-#: ../cli/src/devices.c:481
+#: ../cli/src/devices.c:487
msgid "WPA "
msgstr "WPA "
-#: ../cli/src/devices.c:483
+#: ../cli/src/devices.c:489
msgid "WPA2 "
msgstr "WPA2 "
-#: ../cli/src/devices.c:486
+#: ../cli/src/devices.c:492
msgid "Enterprise "
msgstr "기업용 WPA "
-#: ../cli/src/devices.c:495
+#: ../cli/src/devices.c:501
msgid "Ad-Hoc"
msgstr "애드혹"
-#: ../cli/src/devices.c:495
+#: ../cli/src/devices.c:501
msgid "Infrastructure"
msgstr "ì¸í”„ë¼ìŠ¤íŠ¸ëŸ­ì³"
-#: ../cli/src/devices.c:530
+#: ../cli/src/devices.c:536
msgid "Home"
msgstr "홈"
-#: ../cli/src/devices.c:533
+#: ../cli/src/devices.c:539
msgid "Partner"
msgstr "파트너"
-#: ../cli/src/devices.c:536
+#: ../cli/src/devices.c:542
msgid "Roaming"
msgstr "ë¡œë°"
-#: ../cli/src/devices.c:606
+#: ../cli/src/devices.c:612
#, c-format
msgid "Error: 'dev list': %s"
msgstr "오류: 'dev list': %s"
-#: ../cli/src/devices.c:608
+#: ../cli/src/devices.c:614
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
msgstr "오류: 'dev list': %s. í—ˆìš©ëœ í•„ë“œ: %s"
-#: ../cli/src/devices.c:617
+#: ../cli/src/devices.c:623
msgid "Device details"
msgstr "장치 ìƒì„¸ì •ë³´"
-#: ../cli/src/devices.c:651 ../cli/src/devices.c:1146 ../cli/src/utils.c:342
+#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342
msgid "(unknown)"
msgstr "(ì•Œ 수 ì—†ìŒ)"
-#: ../cli/src/devices.c:652
+#: ../cli/src/devices.c:658
msgid "unknown)"
msgstr "ì•Œ 수 ì—†ìŒ)"
-#: ../cli/src/devices.c:678
+#: ../cli/src/devices.c:684
#, c-format
msgid "%u Mb/s"
msgstr "%u Mb/s"
#. Print header
#. "WIRED-PROPERTIES"
-#: ../cli/src/devices.c:751
+#: ../cli/src/devices.c:757
msgid "on"
msgstr "켜ì§"
-#: ../cli/src/devices.c:751
+#: ../cli/src/devices.c:757
msgid "off"
msgstr "꺼ì§"
-#: ../cli/src/devices.c:998
+#: ../cli/src/devices.c:1004
#, c-format
msgid "Error: 'dev status': %s"
msgstr "오류: 'dev status': %s"
-#: ../cli/src/devices.c:1000
+#: ../cli/src/devices.c:1006
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
msgstr "오류: 'dev status': %s. 허용ë˜ëŠ” í•„ë“œ: %s"
-#: ../cli/src/devices.c:1023
+#: ../cli/src/devices.c:1029
msgid "Status of devices"
msgstr "장치 ìƒíƒœ"
-#: ../cli/src/devices.c:1054
+#: ../cli/src/devices.c:1060
#, c-format
msgid "Error: '%s' argument is missing."
msgstr "오류: '%s' ì¸ìžê°€ 없습니다."
-#: ../cli/src/devices.c:1095 ../cli/src/devices.c:1247
-#: ../cli/src/devices.c:1383 ../cli/src/devices.c:1602
+#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253
+#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608
#, c-format
msgid "Error: Device '%s' not found."
msgstr "오류: '%s' 장치를 ì°¾ì„ ìˆ˜ 없습니다."
-#: ../cli/src/devices.c:1118
+#: ../cli/src/devices.c:1124
#, c-format
msgid "Success: Device '%s' successfully disconnected."
msgstr "성공: '%s' 장치를 성공ì ìœ¼ë¡œ ì—°ê²° 해제했습니다."
-#: ../cli/src/devices.c:1143
+#: ../cli/src/devices.c:1149
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
msgstr "오류: 장치 '%s' (%s)ì˜ ì—°ê²° 해제가 실패했습니다: %s"
-#: ../cli/src/devices.c:1151
+#: ../cli/src/devices.c:1157
#, c-format
msgid "Device state: %d (%s)\n"
msgstr "장치 ìƒíƒœ: %d (%s)\n"
-#: ../cli/src/devices.c:1216
+#: ../cli/src/devices.c:1222
#, c-format
msgid "Error: iface has to be specified."
msgstr "오류: iface를 지정해야만 합니다."
-#: ../cli/src/devices.c:1341
+#: ../cli/src/devices.c:1347
#, c-format
msgid "Error: 'dev wifi': %s"
msgstr "오류 'dev wifi': '%s'"
-#: ../cli/src/devices.c:1343
+#: ../cli/src/devices.c:1349
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
msgstr "오류: 'dev wifi': %s. 허용ë˜ëŠ” í•„ë“œ: %s"
-#: ../cli/src/devices.c:1366
+#: ../cli/src/devices.c:1372
msgid "WiFi scan list"
msgstr "ê²€ìƒ‰ëœ WiFi 목ë¡"
-#: ../cli/src/devices.c:1403 ../cli/src/devices.c:1457
-#: ../cli/src/devices.c:1664
+#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463
+#: ../cli/src/devices.c:1670
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
msgstr "오류: 하드웨어주소가 '%s'ì¸ ì–µì„¸ìŠ¤ í¬ì¸íŠ¸ë¥¼ ì°¾ì„ ìˆ˜ 없습니다."
-#: ../cli/src/devices.c:1420
+#: ../cli/src/devices.c:1426
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
msgstr "오류: '%s' 장치는 WiFi 장치가 아닙니다."
-#: ../cli/src/devices.c:1484
+#: ../cli/src/devices.c:1490
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
msgstr "오류 'dev wifi' 명령어 '%s'ì´(ê°€) 바르지 않습니다."
-#: ../cli/src/devices.c:1560
+#: ../cli/src/devices.c:1566
#, c-format
msgid "Error: 'dev wimax': %s"
msgstr "오류: 'dev wimax': '%s'"
-#: ../cli/src/devices.c:1562
+#: ../cli/src/devices.c:1568
#, c-format
msgid "Error: 'dev wimax': %s; allowed fields: %s"
msgstr "오류: 'dev wimax': %s. 허용ë˜ëŠ” í•„ë“œ: %s"
-#: ../cli/src/devices.c:1585
+#: ../cli/src/devices.c:1591
msgid "WiMAX NSP list"
msgstr "WiMAX NSP 목ë¡"
-#: ../cli/src/devices.c:1622
+#: ../cli/src/devices.c:1628
#, c-format
msgid "Error: NSP with name '%s' not found."
msgstr "오류: ì´ë¦„ì´ '%s'ì¸ NSP를 ì°¾ì„ ìˆ˜ 없습니다."
-#: ../cli/src/devices.c:1633
+#: ../cli/src/devices.c:1639
#, c-format
msgid "Error: Device '%s' is not a WiMAX device."
msgstr "오류: '%s' 장치는 와ì´ë§¥ìŠ¤ 장치가 아닙니다."
-#: ../cli/src/devices.c:1691
+#: ../cli/src/devices.c:1697
#, c-format
msgid "Error: 'dev wimax' command '%s' is not valid."
msgstr "오류 'dev wimax' 명령어 '%s'ì´(ê°€) 바르지 않습니다."
-#: ../cli/src/devices.c:1741
+#: ../cli/src/devices.c:1747
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
msgstr "오류: 'dev' 명령어 '%s'ì´(ê°€) 바르지 않습니다."
-#: ../cli/src/network-manager.c:35
+#: ../cli/src/network-manager.c:37
msgid "RUNNING"
msgstr "실행중"
#. 0
-#: ../cli/src/network-manager.c:36
+#: ../cli/src/network-manager.c:38
msgid "VERSION"
msgstr "버전"
#. 2
-#: ../cli/src/network-manager.c:38
+#: ../cli/src/network-manager.c:40
msgid "NET-ENABLED"
msgstr "ë„¤íŠ¸ì›Œí¬ ì‚¬ìš©"
#. 3
-#: ../cli/src/network-manager.c:39
+#: ../cli/src/network-manager.c:41
msgid "WIFI-HARDWARE"
msgstr "WIFI 하드웨어"
#. 4
-#: ../cli/src/network-manager.c:40
+#: ../cli/src/network-manager.c:42
msgid "WIFI"
msgstr "WIFI"
#. 5
-#: ../cli/src/network-manager.c:41
+#: ../cli/src/network-manager.c:43
msgid "WWAN-HARDWARE"
msgstr "WWAN 하드웨어"
#. 6
-#: ../cli/src/network-manager.c:42
+#: ../cli/src/network-manager.c:44
msgid "WWAN"
msgstr "WWAN"
#. 7
-#: ../cli/src/network-manager.c:43
+#: ../cli/src/network-manager.c:45
msgid "WIMAX-HARDWARE"
msgstr "와ì´ë§¥ìŠ¤ 하드웨어"
#. 8
-#: ../cli/src/network-manager.c:44
+#: ../cli/src/network-manager.c:46
msgid "WIMAX"
msgstr "와ì´ë§¥ìŠ¤"
-#: ../cli/src/network-manager.c:72
+#: ../cli/src/network-manager.c:74
#, c-format
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
@@ -1044,136 +1044,136 @@ msgstr ""
" wimax [on|off]\n"
"\n"
-#: ../cli/src/network-manager.c:101
+#: ../cli/src/network-manager.c:103
msgid "asleep"
msgstr "사용 ì¼ì‹œ 중지"
-#: ../cli/src/network-manager.c:103
+#: ../cli/src/network-manager.c:105
msgid "connecting"
msgstr "ì—°ê²°"
-#: ../cli/src/network-manager.c:105
+#: ../cli/src/network-manager.c:107
msgid "connected (local only)"
msgstr "ì—°ê²°ë¨ (로컬 ì „ìš©)"
-#: ../cli/src/network-manager.c:107
+#: ../cli/src/network-manager.c:109
msgid "connected (site only)"
msgstr "ì—°ê²°ë¨ (사ì´íŠ¸ ì „ìš©)"
-#: ../cli/src/network-manager.c:111
+#: ../cli/src/network-manager.c:113
msgid "disconnecting"
msgstr "ì—°ê²° ëŠëŠ” 중"
-#: ../cli/src/network-manager.c:151
+#: ../cli/src/network-manager.c:153
#, c-format
msgid "Error: 'nm status': %s"
msgstr "오류: 'nm status': %s"
-#: ../cli/src/network-manager.c:153
+#: ../cli/src/network-manager.c:155
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
msgstr "오류: 'nm status': %s. 허용ë˜ëŠ” í•„ë“œ: %s"
#. create NMClient
-#: ../cli/src/network-manager.c:166 ../cli/src/network-manager.c:167
#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
-#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:172
-#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:294
-#: ../cli/src/network-manager.c:349 ../cli/src/network-manager.c:387
-#: ../cli/src/network-manager.c:426
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "enabled"
msgstr "사용"
-#: ../cli/src/network-manager.c:166 ../cli/src/network-manager.c:167
#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
-#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:172
-#: ../cli/src/network-manager.c:173 ../cli/src/network-manager.c:294
-#: ../cli/src/network-manager.c:349 ../cli/src/network-manager.c:387
-#: ../cli/src/network-manager.c:426
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "disabled"
msgstr "사용 ì•ŠìŒ"
-#: ../cli/src/network-manager.c:186
+#: ../cli/src/network-manager.c:188
msgid "NetworkManager status"
msgstr "ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ ìƒíƒœ"
#. Print header
-#: ../cli/src/network-manager.c:189
+#: ../cli/src/network-manager.c:191
msgid "running"
msgstr "실행 중"
-#: ../cli/src/network-manager.c:189
+#: ../cli/src/network-manager.c:191
msgid "not running"
msgstr "실행 ì¤‘ì´ ì•„ë‹˜"
-#: ../cli/src/network-manager.c:220 ../cli/src/utils.c:322
+#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322
#, c-format
msgid "Error: Couldn't connect to system bus: %s"
msgstr "오류: 시스템 ë²„ìŠ¤ì— ì—°ê²°í•  수 없습니다: %s"
-#: ../cli/src/network-manager.c:231
+#: ../cli/src/network-manager.c:233
#, c-format
msgid "Error: Couldn't create D-Bus object proxy."
msgstr "오류: D-버스 오브ì íŠ¸ 프ë¡ì‹œì— ì—°ê²°í•  수 없습니다."
-#: ../cli/src/network-manager.c:237
+#: ../cli/src/network-manager.c:239
#, c-format
msgid "Error in sleep: %s"
msgstr "ì¼ì‹œ ì¤‘ì§€ì— ì˜¤ë¥˜: %s"
-#: ../cli/src/network-manager.c:281 ../cli/src/network-manager.c:336
-#: ../cli/src/network-manager.c:374 ../cli/src/network-manager.c:413
+#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "오류: '--fields' ê°’ '%s'ì€(는) 올바르지 않습니다. 허용ë˜ëŠ” í•„ë“œ: %s"
-#: ../cli/src/network-manager.c:289
+#: ../cli/src/network-manager.c:291
msgid "Networking enabled"
msgstr "ë„¤íŠ¸ì›Œí¬ ì‚¬ìš©"
-#: ../cli/src/network-manager.c:305
+#: ../cli/src/network-manager.c:307
#, c-format
msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
msgstr "오류: ìž˜ëª»ëœ 'enable' 매개변수: '%s'. 'true'나 'false'를 사용하십시오."
-#: ../cli/src/network-manager.c:315
+#: ../cli/src/network-manager.c:317
#, c-format
msgid "Error: Sleeping status is not exported by NetworkManager."
msgstr "오류: ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì´ ì¼ì‹œ 중지 ìƒíƒœë¥¼ 알려 주지 않습니다."
-#: ../cli/src/network-manager.c:323
+#: ../cli/src/network-manager.c:325
#, c-format
msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr "오류: ìž˜ëª»ëœ 'sleep' 매개변수: '%s'. 'true'나 'fasle'를 사용하십시오."
-#: ../cli/src/network-manager.c:344
+#: ../cli/src/network-manager.c:346
msgid "WiFi enabled"
msgstr "WiFi 사용 중"
-#: ../cli/src/network-manager.c:360
+#: ../cli/src/network-manager.c:362
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
msgstr "오류: ìž˜ëª»ëœ 'wifi' 매개변수: '%s'."
-#: ../cli/src/network-manager.c:382
+#: ../cli/src/network-manager.c:384
msgid "WWAN enabled"
msgstr "WWAN 사용 중"
-#: ../cli/src/network-manager.c:398
+#: ../cli/src/network-manager.c:400
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
msgstr "오류: ìž˜ëª»ëœ 'wwan' 매개변수: '%s'."
-#: ../cli/src/network-manager.c:421
+#: ../cli/src/network-manager.c:423
msgid "WiMAX enabled"
msgstr "와ì´ë§¥ìŠ¤ 사용 중"
-#: ../cli/src/network-manager.c:437
+#: ../cli/src/network-manager.c:439
#, c-format
msgid "Error: invalid 'wimax' parameter: '%s'."
msgstr "오류: ìž˜ëª»ëœ 'wimax' 매개변수: '%s'."
-#: ../cli/src/network-manager.c:450
+#: ../cli/src/network-manager.c:452
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "오류: 'mn' 명령어 '%s'ì´(ê°€) 바르지 않습니다."
@@ -1209,7 +1209,8 @@ msgstr ""
" -m[ode] tabular|multiline 출력 모드\n"
" -f[ields] <필드1,필드2,...>|all|common 출력 필드 지정\n"
" -e[scape] yes|no ê°’ì—ì„œ ì—´ 구분 문ìžë¥¼ ì´ìŠ¤ì¼€ì´í”„\n"
-" -n[nocheck] nmcli ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ 버전 검사하지 않기\n"
+" -n[nocheck] nmcli ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ 버전 검사하"
+"지 않기\n"
" -v[ersion] 프로그램 버전 정보 표시\n"
" -h[elp] ì´ ë„ì›€ë§ í‘œì‹œ\n"
"\n"
@@ -1282,79 +1283,79 @@ msgstr "오류: NMClient 오브ì íŠ¸ë¥¼ 만들 수 없습니다."
msgid "Success"
msgstr "성공"
-#: ../cli/src/settings.c:421
+#: ../cli/src/settings.c:423
#, c-format
msgid "%d (hex-ascii-key)"
msgstr "%d (16진 아시키 열쇠글)"
-#: ../cli/src/settings.c:423
+#: ../cli/src/settings.c:425
#, c-format
msgid "%d (104/128-bit passphrase)"
msgstr "%d (104/128-비트 열쇠글)"
-#: ../cli/src/settings.c:426
+#: ../cli/src/settings.c:428
#, c-format
msgid "%d (unknown)"
msgstr "%d (ì•Œ 수 ì—†ìŒ)"
-#: ../cli/src/settings.c:452
+#: ../cli/src/settings.c:454
msgid "0 (unknown)"
msgstr "0 (ì•Œ 수 ì—†ìŒ)"
-#: ../cli/src/settings.c:458
+#: ../cli/src/settings.c:460
msgid "any, "
msgstr "아무, "
-#: ../cli/src/settings.c:460
+#: ../cli/src/settings.c:462
msgid "900 MHz, "
msgstr "900 MHz, "
-#: ../cli/src/settings.c:462
+#: ../cli/src/settings.c:464
msgid "1800 MHz, "
msgstr "1800 MHz, "
-#: ../cli/src/settings.c:464
+#: ../cli/src/settings.c:466
msgid "1900 MHz, "
msgstr "1900 MHz, "
-#: ../cli/src/settings.c:466
+#: ../cli/src/settings.c:468
msgid "850 MHz, "
msgstr "850 MHz, "
-#: ../cli/src/settings.c:468
+#: ../cli/src/settings.c:470
msgid "WCDMA 3GPP UMTS 2100 MHz, "
msgstr "WCDMA 3GPP UMTS 2100 MHz, "
-#: ../cli/src/settings.c:470
+#: ../cli/src/settings.c:472
msgid "WCDMA 3GPP UMTS 1800 MHz, "
msgstr "WCDMA 3GPP UMTS 1800 MHz, "
-#: ../cli/src/settings.c:472
+#: ../cli/src/settings.c:474
msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
-#: ../cli/src/settings.c:474
+#: ../cli/src/settings.c:476
msgid "WCDMA 3GPP UMTS 800 MHz, "
msgstr "WCDMA 3GPP UMTS 800 MHz, "
-#: ../cli/src/settings.c:476
+#: ../cli/src/settings.c:478
msgid "WCDMA 3GPP UMTS 850 MHz, "
msgstr "WCDMA 3GPP UMTS 850 MHz, "
-#: ../cli/src/settings.c:478
+#: ../cli/src/settings.c:480
msgid "WCDMA 3GPP UMTS 900 MHz, "
msgstr "WCDMA 3GPP UMTS 900 MHz, "
-#: ../cli/src/settings.c:480
+#: ../cli/src/settings.c:482
msgid "WCDMA 3GPP UMTS 1700 MHz, "
msgstr "WCDMA 3GPP UMTS 1700 MHz, "
-#: ../cli/src/settings.c:564 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:566 ../cli/src/settings.c:732
msgid "auto"
msgstr "ìžë™"
-#: ../cli/src/settings.c:725 ../cli/src/settings.c:728
-#: ../cli/src/settings.c:729 ../cli/src/utils.c:176
+#: ../cli/src/settings.c:727 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:731 ../cli/src/utils.c:176
msgid "not set"
msgstr "설정 안ë¨"
@@ -1393,350 +1394,381 @@ msgstr "오류: NameHasOwner 요청 실패: %s"
msgid ""
"Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --"
"nocheck to suppress the warning.\n"
-msgstr "경고: nmcli (%s) ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ (%s) ë²„ì „ì´ ë§žì§€ 않습니다. ì´ ê²½ê³ ë¥¼ 무시하려면 --nocheck ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤.\n"
+msgstr ""
+"경고: nmcli (%s) ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ (%s) ë²„ì „ì´ ë§žì§€ 않습니다. ì´ ê²½ê³ ë¥¼ 무시하"
+"려면 --nocheck ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤.\n"
#: ../cli/src/utils.c:395
#, c-format
msgid ""
"Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force "
"execution using --nocheck, but the results are unpredictable."
-msgstr "경고: nmcli (%s) ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ (%s) ë²„ì „ì´ ë§žì§€ 않습니다. --nocheck ì˜µì…˜ì„ ì‚¬ìš©í–ˆìœ¼ë¯€ë¡œ 계ì†í•˜ì§€ë§Œ, 예ìƒì¹˜ 못한 결과가 나타날 수 있습니다."
+msgstr ""
+"경고: nmcli (%s) ë° ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ (%s) ë²„ì „ì´ ë§žì§€ 않습니다. --nocheck 옵션"
+"ì„ ì‚¬ìš©í–ˆìœ¼ë¯€ë¡œ 계ì†í•˜ì§€ë§Œ, 예ìƒì¹˜ 못한 결과가 나타날 수 있습니다."
-#: ../libnm-util/crypto.c:121
+#: ../libnm-util/crypto.c:133
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "PEM 키 파ì¼ì— ë 태그 '%s'ì´(ê°€) 없습니다."
-#: ../libnm-util/crypto.c:131
+#: ../libnm-util/crypto.c:146
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "PEM 비밀 키 파ì¼ì²˜ëŸ¼ ë³´ì´ì§€ 않습니다."
-#: ../libnm-util/crypto.c:139
+#: ../libnm-util/crypto.c:154
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr "PEM íŒŒì¼ ì •ë³´ë¥¼ 저장할 메모리가 부족합니다."
-#: ../libnm-util/crypto.c:155
+#: ../libnm-util/crypto.c:170
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: Proc-Typeì´ ì²«ë²ˆì§¸ 태그가 아닙니다."
-#: ../libnm-util/crypto.c:163
+#: ../libnm-util/crypto.c:178
#, c-format
msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: 알려져 있지 ì•Šì€ Proc-Type 태그 '%s'."
-#: ../libnm-util/crypto.c:173
+#: ../libnm-util/crypto.c:188
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: DEK-Infoê°€ ë‘번째 태그가 아님."
-#: ../libnm-util/crypto.c:184
+#: ../libnm-util/crypto.c:199
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: IV를 DEK-Info 태그ì—ì„œ ì°¾ì„ ìˆ˜ ì—†ìŒ."
-#: ../libnm-util/crypto.c:191
+#: ../libnm-util/crypto.c:206
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: DEK-Info íƒœê·¸ì•ˆì— ìž˜ëª»ëœ í˜•íƒœì˜ IVê°€ 있ìŒ."
-#: ../libnm-util/crypto.c:204
+#: ../libnm-util/crypto.c:219
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr "ìž˜ëª»ëœ í˜•íƒœì˜ PEM 파ì¼: 알려져 있지 ì•Šì€ ë¹„ë°€ 키 암호화 방법 '%s'."
-#: ../libnm-util/crypto.c:223
+#: ../libnm-util/crypto.c:238
#, c-format
msgid "Could not decode private key."
msgstr "비밀 키를 í•´ë…í•  수 없습니다."
-#: ../libnm-util/crypto.c:268
-#, c-format
-msgid "PEM certificate '%s' had no end tag '%s'."
-msgstr "PEM ì¸ì¦ì„œ '%s'ì— ë 태그 '%s'ì´(ê°€) 없습니다."
+#: ../libnm-util/crypto.c:284
+msgid "Failed to find expected PKCS#8 start tag."
+msgstr "예ìƒëœ PKCS#8 시작 태그를 ì°¾ëŠ”ë° ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto.c:278
+#: ../libnm-util/crypto.c:292
#, c-format
-msgid "Failed to decode certificate."
-msgstr "ì¸ì¦ì„œ í•´ë…ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
+msgid "Failed to find expected PKCS#8 end tag '%s'."
+msgstr "예ìƒëœ PKCS#8 종료 태그 '%s' 를 ì°¾ëŠ”ë° ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤."
+
+#: ../libnm-util/crypto.c:312
+msgid "Not enough memory to store private key data."
+msgstr "ê°œì¸ í‚¤ ë°ì´í„°ë¥¼ 저장할 메모리가 부족합니다."
-#: ../libnm-util/crypto.c:287
+#: ../libnm-util/crypto.c:317
+msgid "Failed to decode PKCS#8 private key."
+msgstr "PKCS#8 ê°œ 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
+
+#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625
#, c-format
msgid "Not enough memory to store certificate data."
msgstr "ì¸ì¦ì„œ 정보를 저장할 메모리가 부족합니다."
-#: ../libnm-util/crypto.c:295
-#, c-format
-msgid "Not enough memory to store file data."
-msgstr "íŒŒì¼ ì •ë³´ë¥¼ 저장할 메모리가 부족합니다."
-
-#: ../libnm-util/crypto.c:325
+#: ../libnm-util/crypto.c:365
#, c-format
msgid "IV must be an even number of bytes in length."
msgstr "IVì˜ ê¸¸ì´ëŠ” ì§ìˆ˜ì—¬ì•¼ë§Œ 합니다."
-#: ../libnm-util/crypto.c:334
+#: ../libnm-util/crypto.c:374
#, c-format
msgid "Not enough memory to store the IV."
msgstr "IV를 저장할 메모리가 부족합니다."
-#: ../libnm-util/crypto.c:345
+#: ../libnm-util/crypto.c:385
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "IVì— 16진수 숫ìžê°€ ì•„ë‹Œ 문ìžê°€ 있습니다."
-#: ../libnm-util/crypto.c:383 ../libnm-util/crypto_gnutls.c:148
-#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171
-#: ../libnm-util/crypto_nss.c:336
+#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147
+#: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167
+#: ../libnm-util/crypto_nss.c:332
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "비밀 키 암호화 ë°©ì‹ '%s'ì´(ê°€) 알려져 있지 않습니다."
-#: ../libnm-util/crypto.c:392
+#: ../libnm-util/crypto.c:432
#, c-format
msgid "Not enough memory to decrypt private key."
msgstr "비밀 키를 í•´ë…í•  메모리가 부족합니다."
-#: ../libnm-util/crypto.c:512
+#: ../libnm-util/crypto.c:497
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "í•´ë…ëœ ë¹„ë°€ 키를 저장할 메모리가 부족합니다."
+
+#: ../libnm-util/crypto.c:542
#, c-format
msgid "Unable to determine private key type."
msgstr "비밀 키 ìœ í˜•ì„ ê²°ì •í•  수 없습니다."
-#: ../libnm-util/crypto.c:531
+#: ../libnm-util/crypto.c:597
#, c-format
-msgid "Not enough memory to store decrypted private key."
-msgstr "í•´ë…ëœ ë¹„ë°€ 키를 저장할 메모리가 부족합니다."
+msgid "PEM certificate had no start tag '%s'."
+msgstr "PEM ì¸ì¦ì„œì— 시작 태그 '%s'ì´(ê°€) 없습니다."
+
+#: ../libnm-util/crypto.c:606
+#, c-format
+msgid "PEM certificate had no end tag '%s'."
+msgstr "PEM ì¸ì¦ì„œì— ë 태그 '%s'ì´(ê°€) 없습니다."
-#: ../libnm-util/crypto_gnutls.c:49
+#: ../libnm-util/crypto.c:630
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "ì¸ì¦ì„œ í•´ë…ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
+
+#: ../libnm-util/crypto_gnutls.c:50
msgid "Failed to initialize the crypto engine."
msgstr "암호화 ì—”ì§„ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_gnutls.c:93
+#: ../libnm-util/crypto_gnutls.c:92
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
msgstr "MD5 ì—”ì§„ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:156
+#: ../libnm-util/crypto_gnutls.c:155
#, c-format
msgid "Invalid IV length (must be at least %zd)."
msgstr "ìž˜ëª»ëœ IV ê¸¸ì´ (최소한 %zdë°”ì´íŠ¸ ì´ìƒì´ì–´ì•¼ 함)."
-#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#: ../libnm-util/crypto_gnutls.c:164 ../libnm-util/crypto_nss.c:184
#, c-format
msgid "Not enough memory for decrypted key buffer."
msgstr "í•´ë…ëœ í‚¤ 버í¼ë¥¼ 저장할 메모리가 부족합니다."
-#: ../libnm-util/crypto_gnutls.c:173
+#: ../libnm-util/crypto_gnutls.c:172
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
msgstr "암호 í•´ë… ë¬¸ë§¥ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:182
+#: ../libnm-util/crypto_gnutls.c:181
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
msgstr "í•´ë…ì„ ìœ„í•œ 대칭 키를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:191
+#: ../libnm-util/crypto_gnutls.c:190
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
msgstr "í•´ë…ì„ ìœ„í•´ IV를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:200
+#: ../libnm-util/crypto_gnutls.c:199
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
msgstr "비밀 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#: ../libnm-util/crypto_gnutls.c:209 ../libnm-util/crypto_nss.c:263
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr "비밀 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: 예기치 못한 패딩 길ì´."
-#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#: ../libnm-util/crypto_gnutls.c:220 ../libnm-util/crypto_nss.c:274
#, c-format
msgid "Failed to decrypt the private key."
msgstr "비밀 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#: ../libnm-util/crypto_gnutls.c:285 ../libnm-util/crypto_nss.c:352
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "암호화를 위한 메모리를 할당할 수 없습니다."
-#: ../libnm-util/crypto_gnutls.c:294
+#: ../libnm-util/crypto_gnutls.c:293
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
msgstr "암호화 ë¬¸ë§¥ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:303
+#: ../libnm-util/crypto_gnutls.c:302
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
msgstr "암호화를 위한 대칭키를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:313
+#: ../libnm-util/crypto_gnutls.c:312
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
msgstr "암호화를 위한 IV를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:322
+#: ../libnm-util/crypto_gnutls.c:321
#, c-format
msgid "Failed to encrypt the data: %s / %s."
msgstr "ë°ì´í„°ë¥¼ 암호화하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:362
+#: ../libnm-util/crypto_gnutls.c:361
#, c-format
msgid "Error initializing certificate data: %s"
msgstr "ì¸ì¦ì„œ 정보를 초기화하는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤: %s"
-#: ../libnm-util/crypto_gnutls.c:384
+#: ../libnm-util/crypto_gnutls.c:383
#, c-format
msgid "Couldn't decode certificate: %s"
msgstr "ì¸ì¦ì„œë¥¼ í•´ë…í•  수 없습니다: %s"
-#: ../libnm-util/crypto_gnutls.c:408
+#: ../libnm-util/crypto_gnutls.c:407
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
msgstr "PKCS#12 복호기를 초기화할 수 없습니다: %s"
-#: ../libnm-util/crypto_gnutls.c:421
+#: ../libnm-util/crypto_gnutls.c:420
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
msgstr "PKCS#12 파ì¼ì„ í•´ë…í•  수 없습니다: %s"
-#: ../libnm-util/crypto_gnutls.c:433
+#: ../libnm-util/crypto_gnutls.c:432
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "PKCS#12 파ì¼ì„ ê²€ì¦í•  수 없습니다: %s"
+#: ../libnm-util/crypto_gnutls.c:460
+#, c-format
+msgid "Couldn't initialize PKCS#8 decoder: %s"
+msgstr "PKCS#12 복호기를 초기화할 수 없습니다: %s"
+
+#: ../libnm-util/crypto_gnutls.c:483
+#, c-format
+msgid "Couldn't decode PKCS#8 file: %s"
+msgstr "PKCS#12 파ì¼ì„ í•´ë…í•  수 없습니다: %s"
+
#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "암호화 ì—”ì§„ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %d."
-#: ../libnm-util/crypto_nss.c:111
+#: ../libnm-util/crypto_nss.c:107
#, c-format
msgid "Failed to initialize the MD5 context: %d."
msgstr "MD5 ë¬¸ë§¥ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %d."
-#: ../libnm-util/crypto_nss.c:179
+#: ../libnm-util/crypto_nss.c:175
#, c-format
msgid "Invalid IV length (must be at least %d)."
msgstr "ìž˜ëª»ëœ IV 길ì´ìž…니다(최소한 %d ì´ìƒì´ì–´ì•¼ 함)."
-#: ../libnm-util/crypto_nss.c:196
+#: ../libnm-util/crypto_nss.c:192
#, c-format
msgid "Failed to initialize the decryption cipher slot."
msgstr "í•´ë…ìš© 암호 ìŠ¬ë¡¯ì„ í• ë‹¹í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:206
+#: ../libnm-util/crypto_nss.c:202
#, c-format
msgid "Failed to set symmetric key for decryption."
msgstr "í•´ë…ì„ ìœ„í•œ 대칭키를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:216
+#: ../libnm-util/crypto_nss.c:212
#, c-format
msgid "Failed to set IV for decryption."
msgstr "í•´ë…ì„ ìœ„í•œ IV를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:224
+#: ../libnm-util/crypto_nss.c:220
#, c-format
msgid "Failed to initialize the decryption context."
msgstr "í•´ë… ë¬¸ë§¥ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:237
+#: ../libnm-util/crypto_nss.c:233
#, c-format
msgid "Failed to decrypt the private key: %d."
msgstr "비밀 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %d."
-#: ../libnm-util/crypto_nss.c:245
+#: ../libnm-util/crypto_nss.c:241
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
msgstr "비밀 키를 í•´ë…하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: í•´ë… ë°ì´í„°ê°€ 너무 í½ë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:256
+#: ../libnm-util/crypto_nss.c:252
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "비밀 í‚¤ì˜ í•´ë…ì„ ë§ˆë¬´ë¦¬í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %d."
-#: ../libnm-util/crypto_nss.c:364
+#: ../libnm-util/crypto_nss.c:360
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "암호화 암호 ìŠ¬ë¡¯ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:372
+#: ../libnm-util/crypto_nss.c:368
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "암호화를 위한 대칭키를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:380
+#: ../libnm-util/crypto_nss.c:376
#, c-format
msgid "Failed to set IV for encryption."
msgstr "암호화를 위한 IV를 설정하는 ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:388
+#: ../libnm-util/crypto_nss.c:384
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "암호화 ë¬¸ë§¥ì„ ì´ˆê¸°í™”í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
-#: ../libnm-util/crypto_nss.c:396
+#: ../libnm-util/crypto_nss.c:392
#, c-format
msgid "Failed to encrypt: %d."
msgstr "ì•”í˜¸í™”ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤: %d."
-#: ../libnm-util/crypto_nss.c:404
+#: ../libnm-util/crypto_nss.c:400
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "암호화 후 ë°ì´í„° í¬ê¸°ê°€ 예ìƒê³¼ 다릅니다."
-#: ../libnm-util/crypto_nss.c:447
+#: ../libnm-util/crypto_nss.c:443
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "ì¸ì¦ì„œë¥¼ 복호화할 수 없습니다: %d."
-#: ../libnm-util/crypto_nss.c:482
+#: ../libnm-util/crypto_nss.c:478
#, c-format
msgid "Couldn't convert password to UCS2: %d"
msgstr "암호를 UCS2로 변환할 수 없습니다: %d"
-#: ../libnm-util/crypto_nss.c:510
+#: ../libnm-util/crypto_nss.c:506
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "PKCS#12 복호기를 초기화할 수 없습니다: %d"
-#: ../libnm-util/crypto_nss.c:519
+#: ../libnm-util/crypto_nss.c:515
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "PKCS#12 파ì¼ì„ 복호화할 수 없습니다: %d"
-#: ../libnm-util/crypto_nss.c:528
+#: ../libnm-util/crypto_nss.c:524
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "PKCS#12 파ì¼ì„ ê²€ì¦í•  수 없습니다: %d"
-#: ../libnm-util/crypto_nss.c:557
+#: ../libnm-util/crypto_nss.c:568
msgid "Could not generate random data."
msgstr "ëžœë¤ ë°ì´í„°ë¥¼ ìƒì„±í•  수 없습니다."
-#: ../libnm-util/nm-utils.c:1988
+#: ../libnm-util/nm-utils.c:2000
#, c-format
msgid "Not enough memory to make encryption key."
msgstr "암호화 키를 ìƒì„±í•  메모리가 부족합니다."
-#: ../libnm-util/nm-utils.c:2098
+#: ../libnm-util/nm-utils.c:2110
msgid "Could not allocate memory for PEM file creation."
msgstr "PEM íŒŒì¼ ìƒì„±ì„ 위한 메모리를 할당할 수 없습니다."
-#: ../libnm-util/nm-utils.c:2110
+#: ../libnm-util/nm-utils.c:2122
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr "IV를 PEM 파ì¼ì— 쓰기 위한 메모리를 할당할 수 없습니다."
-#: ../libnm-util/nm-utils.c:2122
+#: ../libnm-util/nm-utils.c:2134
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
msgstr "ì•”í˜¸í™”ëœ í‚¤ë¥¼ PEM 파ì¼ì— 기ë¡í•˜ê¸° 위한 메모리를 할당할 수 없습니다."
-#: ../libnm-util/nm-utils.c:2141
+#: ../libnm-util/nm-utils.c:2153
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "PEM íŒŒì¼ ë°ì´í„°ë¥¼ 위한 메모리를 할당할 수 없습니다."
@@ -1785,7 +1817,9 @@ msgstr "ê°œì¸ ë„¤íŠ¸ì›Œí¬ ì—°ê²°ì„ ìˆ˜ì •í•©ë‹ˆë‹¤"
msgid ""
"Put NetworkManager to sleep or wake it up (should only be used by system "
"power management)"
-msgstr "ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì„ ì¼ì‹œ 중지하거나 다시 시작합니다 (시스템 ì „ì› ê´€ë¦¬ì—서만 사용)"
+msgstr ""
+"ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì„ ì¼ì‹œ 중지하거나 다시 시작합니다 (시스템 ì „ì› ê´€ë¦¬ì—"
+"서만 사용)"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
msgid "System policy prevents control of network connections"
@@ -1798,7 +1832,8 @@ msgstr "시스템 ì •ì±…ì´ WiFi 장치 사용 여부 ì„¤ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
msgid ""
"System policy prevents enabling or disabling WiMAX mobile broadband devices"
-msgstr "시스템 ì •ì±…ì´ ì™€ì´ë§¥ìŠ¤ ëª¨ë°”ì¼ ê´‘ëŒ€ì—­ ìž¥ì¹˜ì˜ ì‚¬ìš© 여부 ì„¤ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
+msgstr ""
+"시스템 ì •ì±…ì´ ì™€ì´ë§¥ìŠ¤ ëª¨ë°”ì¼ ê´‘ëŒ€ì—­ ìž¥ì¹˜ì˜ ì‚¬ìš© 여부 ì„¤ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15
msgid "System policy prevents enabling or disabling mobile broadband devices"
@@ -1822,7 +1857,8 @@ msgstr "시스템 ì •ì±…ì´ í˜¸ìŠ¤íŠ¸ ì´ë¦„ì˜ ë³€ê²½ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20
msgid "System policy prevents putting NetworkManager to sleep or waking it up"
-msgstr "시스템 ì •ì±…ì´ ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì˜ ì¼ì‹œ 중지나 다시 ì‹œìž‘ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
+msgstr ""
+"시스템 ì •ì±…ì´ ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ í”„ë¡œê·¸ëž¨ì˜ ì¼ì‹œ 중지나 다시 ì‹œìž‘ì„ ê¸ˆì§€í•©ë‹ˆë‹¤"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21
msgid "System policy prevents sharing connections via a protected WiFi network"
@@ -1832,12 +1868,12 @@ msgstr "시스템 ì •ì±…ì´ ë³´í˜¸ëœ WiFi 네트워í¬ë¥¼ 통한 ì—°ê²° 공유ë
msgid "System policy prevents sharing connections via an open WiFi network"
msgstr "시스템 ì •ì±…ì´ ì—´ë¦° WiFi 네트워í¬ë¥¼ 통한 ì—°ê²° 공유를 금지합니다"
-#: ../src/main.c:519
+#: ../src/main.c:530
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr "ìž˜ëª»ëœ ì˜µì…˜. 올바른 ì˜µì…˜ì˜ ëª©ë¡ì„ 보려면 --help ì˜µì…˜ì„ ì´ìš©í•˜ì‹­ì‹œì˜¤.\n"
-#: ../src/main.c:590
+#: ../src/main.c:611
#, c-format
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. 올바른 ì˜µì…˜ì˜ ëª©ë¡ì„ 보려면 --help ì˜µì…˜ì„ ì´ìš©í•˜ì‹­ì‹œì˜¤.\n"
@@ -1851,7 +1887,9 @@ msgstr "# ë„¤íŠ¸ì›Œí¬ ê´€ë¦¬ì—ì„œ 만들어 냄\n"
msgid ""
"# Merged from %s\n"
"\n"
-msgstr "# %sì—ì„œ 합침\n\n"
+msgstr ""
+"# %sì—ì„œ 합침\n"
+"\n"
#: ../src/dhcp-manager/nm-dhcp-manager.c:284
msgid "no usable DHCP client could be found."
@@ -1870,61 +1908,61 @@ msgstr "'dhcpcd'를 ì°¾ì„ ìˆ˜ 있습니다."
msgid "unsupported DHCP client '%s'"
msgstr "지ì›í•˜ì§€ 않는 DHCP í´ë¼ì´ì–¸íŠ¸ '%s'"
-#: ../src/dns-manager/nm-dns-manager.c:367
+#: ../src/dns-manager/nm-dns-manager.c:369
msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr ""
"주ì˜: libc 주소 ê²€ìƒ‰ì€ 3개를 초과하는 네임서버를 지ì›í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다."
-#: ../src/dns-manager/nm-dns-manager.c:369
+#: ../src/dns-manager/nm-dns-manager.c:371
msgid "The nameservers listed below may not be recognized."
msgstr "아래 ì—´ê±°ëœ ë„¤ìž„ì„œë²„ë¥¼ ì¸ì‹í•˜ì§€ 못할 수 있습니다."
-#: ../src/logging/nm-logging.c:148
+#: ../src/logging/nm-logging.c:149
#, c-format
msgid "Unknown log level '%s'"
msgstr "알려지지 ì•Šì€ ë¡œê·¸ 수준 '%s'"
-#: ../src/logging/nm-logging.c:173
+#: ../src/logging/nm-logging.c:174
#, c-format
msgid "Unknown log domain '%s'"
msgstr "알려지지 ì•Šì€ ë¡œê·¸ ì˜ì—­ '%s'"
-#: ../src/modem-manager/nm-modem-cdma.c:311 ../src/nm-device-bt.c:353
+#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355
#, c-format
msgid "CDMA connection %d"
msgstr "CDMA ì—°ê²° %d"
-#: ../src/modem-manager/nm-modem-gsm.c:514 ../src/nm-device-bt.c:349
+#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351
#, c-format
msgid "GSM connection %d"
msgstr "GSM ì—°ê²° %d"
-#: ../src/nm-device-bt.c:324
+#: ../src/nm-device-bt.c:326
#, c-format
msgid "PAN connection %d"
msgstr "PAN ì—°ê²° %d"
-#: ../src/nm-device-bt.c:357
+#: ../src/nm-device-bt.c:359
#, c-format
msgid "DUN connection %d"
msgstr "DUN ì—°ê²° %d"
-#: ../src/nm-device-ethernet.c:1684
+#: ../src/nm-device-ethernet.c:1681
#, c-format
msgid "PPPoE connection %d"
msgstr "PPPoE ì—°ê²° %d"
-#: ../src/nm-device-ethernet.c:1684
+#: ../src/nm-device-ethernet.c:1681 ../src/settings/nm-settings-utils.c:50
#, c-format
msgid "Wired connection %d"
msgstr "유선 연결 %d"
-#: ../src/nm-device-olpc-mesh.c:422
+#: ../src/nm-device-olpc-mesh.c:423
#, c-format
msgid "Mesh %d"
msgstr "메시 %d"
-#: ../src/nm-manager.c:686
+#: ../src/nm-manager.c:655
#, c-format
msgid "VPN connection %d"
msgstr "VPN ì—°ê²° %d"
@@ -1969,12 +2007,13 @@ msgstr "네트ë§í¬ ê·¸ë£¹ì— í•©ë¥˜í•  수 없습니다: %s"
msgid "error updating link cache: %s"
msgstr "네트ë§í¬ ìºì‹œë¥¼ 갱신하는 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤: %s"
-#: ../src/settings/plugins/ifcfg-rh/reader.c:3439
-#: ../src/settings/plugins/ifnet/connection_parser.c:49
+#: ../src/settings/plugins/ifcfg-rh/reader.c:3512
+#: ../src/settings/plugins/ifnet/connection_parser.c:51
msgid "System"
msgstr "시스템"
-#: ../src/settings/nm-default-wired-connection.c:143
-#, c-format
-msgid "Auto %s"
-msgstr "ìžë™ %s"
+#~ msgid "Error: Obtaining active connection for '%s' failed."
+#~ msgstr "오류: '%s'ì— ëŒ€í•œ í™œì„±í™”ëœ ì—°ê²°ì„ ì–»ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤."
+
+#~ msgid "Auto %s"
+#~ msgstr "ìžë™ %s"
diff --git a/po/ru.po b/po/ru.po
index 5dc18f383..a4ea1406a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -2,967 +2,1183 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
+#
# Leonid Kanter <leon@asplinux.ru>, 2006, 2007.
# Ðртём Попов <artfwo@gmail.com>, 2009.
# Yulia <ypoyarko@redhat.com>, 2010.
+# Sergey Isachenko aka Zabuldon <vortexius@gmail.com>, 2011.
+# Yuri Kozlov <yuray@komyakino.ru>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ru\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-06 14:31+0530\n"
-"PO-Revision-Date: 2010-05-19 12:20+1000\n"
-"Last-Translator: \n"
-"Language-Team: Russian\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-05-31 03:25+0000\n"
+"PO-Revision-Date: 2011-06-17 20:37+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <gnome-cyr@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Content-Transfer-Encoding: 8bits\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Launchpad-Export-Date: 2009-02-12 11:00+0000\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.0\n"
-#: ../cli/src/connections.c:59 ../cli/src/connections.c:74
-#: ../cli/src/devices.c:85 ../cli/src/devices.c:98 ../cli/src/devices.c:108
-#: ../cli/src/devices.c:118 ../cli/src/devices.c:131 ../cli/src/devices.c:142
-#: ../cli/src/devices.c:152
+#: ../cli/src/connections.c:64 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124
+#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162
+#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:224
msgid "NAME"
msgstr "ИМЯ"
#. 0
-#: ../cli/src/connections.c:60 ../cli/src/connections.c:75
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:79
msgid "UUID"
msgstr "UUID"
#. 1
-#: ../cli/src/connections.c:61
+#: ../cli/src/connections.c:66
msgid "DEVICES"
msgstr "УСТРОЙСТВÐ"
#. 2
-#: ../cli/src/connections.c:62 ../cli/src/connections.c:77
-msgid "SCOPE"
-msgstr "ОБЛÐСТЬ"
-
-#. 3
-#: ../cli/src/connections.c:63
+#: ../cli/src/connections.c:67
msgid "DEFAULT"
msgstr "ПО УМОЛЧÐÐИЮ"
-#. 4
-#: ../cli/src/connections.c:64
-msgid "DBUS-SERVICE"
-msgstr "СЛУЖБРDBUS"
-
-#. 5
-#: ../cli/src/connections.c:65
+#. 3
+#: ../cli/src/connections.c:68
msgid "SPEC-OBJECT"
msgstr "SPEC-OBJECT"
-#. 6
-#: ../cli/src/connections.c:66
+#. 4
+#: ../cli/src/connections.c:69
msgid "VPN"
msgstr "VPN"
+#. 5
+#. 6
+#. 2
+#. 11
+#. 5
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:85
+#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230
+msgid "DBUS-PATH"
+msgstr "DBUS-PATH"
+
#. 1
#. 0
#. 1
-#: ../cli/src/connections.c:76 ../cli/src/devices.c:61 ../cli/src/devices.c:87
+#. 2
+#: ../cli/src/connections.c:80 ../cli/src/devices.c:67
+#: ../cli/src/devices.c:103 ../cli/src/devices.c:227
msgid "TYPE"
msgstr "ТИП"
-#. 3
-#: ../cli/src/connections.c:78
+#. 2
+#: ../cli/src/connections.c:81
msgid "TIMESTAMP"
msgstr "ВРЕМЕÐÐÐЯ МЕТКÐ"
-#. 4
-#: ../cli/src/connections.c:79
+#. 3
+#: ../cli/src/connections.c:82
msgid "TIMESTAMP-REAL"
msgstr "ДЕЙСТВ. ВРЕМЕÐÐÐЯ МЕТКÐ"
-#. 5
-#: ../cli/src/connections.c:80
+#. 4
+#: ../cli/src/connections.c:83
msgid "AUTOCONNECT"
msgstr "ÐВТОПОДКЛЮЧЕÐИЕ"
-#. 6
-#: ../cli/src/connections.c:81
+#. 5
+#: ../cli/src/connections.c:84
msgid "READONLY"
msgstr "ТОЛЬКО ДЛЯ ЧТЕÐИЯ"
-#: ../cli/src/connections.c:157
+#: ../cli/src/connections.c:167
#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
" COMMAND := { list | status | up | down }\n"
"\n"
-" list [id <id> | uuid <id> | system | user]\n"
+" list [id <id> | uuid <id>]\n"
" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--"
+"nowait] [--timeout <timeout>]\n"
" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
"<timeout>]\n"
" down id <id> | uuid <id>\n"
msgstr ""
-"Применение: nmcli con { КОМÐÐДР| help }\n"
+"ИÑпользование: nmcli con { КОМÐÐДР| help }\n"
" КОМÐÐДР:= { list | status | up | down }\n"
"\n"
-" list [id <id> | uuid <id> | system | user]\n"
+" list [id <id> | uuid <id>]\n"
" status\n"
-" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
-"<timeout>]\n"
+" up id <id> | uuid <id> [iface <интерфейÑ>] [ap <апп.адр.>] [nsp <имÑ>] [--"
+"nowait] [--timeout <ожидание>]\n"
+" up id <id> | uuid <id> [iface <интерфейÑ>] [ap <апп.адр.>] [--nowait] [--"
+"timeout <ожидание>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:197 ../cli/src/connections.c:536
+#: ../cli/src/connections.c:220 ../cli/src/connections.c:544
#, c-format
msgid "Error: 'con list': %s"
-msgstr "Ошибка: 'con list': %s"
+msgstr "Ошибка: «con list»: %s"
-#: ../cli/src/connections.c:199 ../cli/src/connections.c:538
+#: ../cli/src/connections.c:222 ../cli/src/connections.c:546
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
-msgstr "Ошибка: 'con list': %s; разрешённые полÑ: %s"
+msgstr "Ошибка: «con list»: %s; разрешённые полÑ: %s"
-#: ../cli/src/connections.c:207
+#: ../cli/src/connections.c:230
msgid "Connection details"
msgstr "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾ Ñоединении"
-#: ../cli/src/connections.c:381 ../cli/src/connections.c:601
-msgid "system"
-msgstr "ÑиÑтема"
-
-#: ../cli/src/connections.c:381 ../cli/src/connections.c:601
-msgid "user"
-msgstr "пользователь"
-
-#: ../cli/src/connections.c:383
+#: ../cli/src/connections.c:419
msgid "never"
msgstr "никогда"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:384 ../cli/src/connections.c:385
-#: ../cli/src/connections.c:602 ../cli/src/connections.c:605
-#: ../cli/src/devices.c:388 ../cli/src/devices.c:513 ../cli/src/devices.c:539
-#: ../cli/src/devices.c:540 ../cli/src/devices.c:541 ../cli/src/devices.c:542
-#: ../cli/src/devices.c:543 ../cli/src/settings.c:504
-#: ../cli/src/settings.c:544 ../cli/src/settings.c:643
-#: ../cli/src/settings.c:912 ../cli/src/settings.c:913
-#: ../cli/src/settings.c:915 ../cli/src/settings.c:917
-#: ../cli/src/settings.c:1042 ../cli/src/settings.c:1043
-#: ../cli/src/settings.c:1044 ../cli/src/settings.c:1123
-#: ../cli/src/settings.c:1124 ../cli/src/settings.c:1125
-#: ../cli/src/settings.c:1126 ../cli/src/settings.c:1127
-#: ../cli/src/settings.c:1128 ../cli/src/settings.c:1129
-#: ../cli/src/settings.c:1130 ../cli/src/settings.c:1131
-#: ../cli/src/settings.c:1132 ../cli/src/settings.c:1133
-#: ../cli/src/settings.c:1134 ../cli/src/settings.c:1135
-#: ../cli/src/settings.c:1210
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940 ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150
+#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152
+#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154
+#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156
+#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158
+#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
msgid "yes"
msgstr "да"
-#: ../cli/src/connections.c:384 ../cli/src/connections.c:385
-#: ../cli/src/connections.c:602 ../cli/src/connections.c:605
-#: ../cli/src/devices.c:388 ../cli/src/devices.c:513 ../cli/src/devices.c:539
-#: ../cli/src/devices.c:540 ../cli/src/devices.c:541 ../cli/src/devices.c:542
-#: ../cli/src/devices.c:543 ../cli/src/settings.c:504
-#: ../cli/src/settings.c:506 ../cli/src/settings.c:544
-#: ../cli/src/settings.c:643 ../cli/src/settings.c:912
-#: ../cli/src/settings.c:913 ../cli/src/settings.c:915
-#: ../cli/src/settings.c:917 ../cli/src/settings.c:1042
-#: ../cli/src/settings.c:1043 ../cli/src/settings.c:1044
-#: ../cli/src/settings.c:1123 ../cli/src/settings.c:1124
-#: ../cli/src/settings.c:1125 ../cli/src/settings.c:1126
-#: ../cli/src/settings.c:1127 ../cli/src/settings.c:1128
-#: ../cli/src/settings.c:1129 ../cli/src/settings.c:1130
-#: ../cli/src/settings.c:1131 ../cli/src/settings.c:1132
-#: ../cli/src/settings.c:1133 ../cli/src/settings.c:1134
-#: ../cli/src/settings.c:1135 ../cli/src/settings.c:1210
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663 ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
+#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151
+#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153
+#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155
+#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157
+#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235
msgid "no"
msgstr "нет"
-#: ../cli/src/connections.c:457 ../cli/src/connections.c:500
-msgid "System connections"
-msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑиÑтем"
-
-#: ../cli/src/connections.c:462 ../cli/src/connections.c:513
-msgid "User connections"
-msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
+#: ../cli/src/connections.c:495
+msgid "Connection list"
+msgstr "СпиÑок подключений"
-#: ../cli/src/connections.c:474 ../cli/src/connections.c:1334
-#: ../cli/src/connections.c:1350 ../cli/src/connections.c:1359
-#: ../cli/src/connections.c:1370 ../cli/src/connections.c:1452
-#: ../cli/src/devices.c:864 ../cli/src/devices.c:874 ../cli/src/devices.c:973
-#: ../cli/src/devices.c:980
+#: ../cli/src/connections.c:508 ../cli/src/connections.c:1380
+#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1404
+#: ../cli/src/connections.c:1414 ../cli/src/connections.c:1426
+#: ../cli/src/connections.c:1521 ../cli/src/devices.c:1190
+#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314
+#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534
+#: ../cli/src/devices.c:1541
#, c-format
msgid "Error: %s argument is missing."
-msgstr "Ошибка: отÑутÑтвует аргумент %s"
+msgstr "Ошибка: отÑутÑтвует аргумент %s."
-#: ../cli/src/connections.c:487
+#: ../cli/src/connections.c:521
#, c-format
msgid "Error: %s - no such connection."
-msgstr "Ошибка: нет Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ %s"
+msgstr "Ошибка: неизвеÑтное подключение %s."
-#: ../cli/src/connections.c:519 ../cli/src/connections.c:1383
-#: ../cli/src/connections.c:1470 ../cli/src/devices.c:687
-#: ../cli/src/devices.c:754 ../cli/src/devices.c:888 ../cli/src/devices.c:986
+#: ../cli/src/connections.c:527 ../cli/src/connections.c:1439
+#: ../cli/src/connections.c:1538 ../cli/src/devices.c:987
+#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214
+#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "ÐеизвеÑтный параметр: %s\n"
-#: ../cli/src/connections.c:528
+#: ../cli/src/connections.c:536
#, c-format
msgid "Error: no valid parameter specified."
-msgstr "Ошибка: не указан допуÑтимый параметр."
+msgstr "Ошибка: указан недопуÑтимый параметр."
-#: ../cli/src/connections.c:543 ../cli/src/connections.c:1572
-#: ../cli/src/devices.c:1192 ../cli/src/network-manager.c:274
+#: ../cli/src/connections.c:551 ../cli/src/connections.c:1629
+#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463
#, c-format
msgid "Error: %s."
msgstr "Ошибка: %s."
-#: ../cli/src/connections.c:649
+#: ../cli/src/connections.c:639
#, c-format
msgid "Error: 'con status': %s"
-msgstr "Ошибка: 'con status': %s"
+msgstr "Ошибка: «con status»: %s"
-#: ../cli/src/connections.c:651
+#: ../cli/src/connections.c:641
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
-msgstr "Ошибка: 'con status': %s; разрешённые полÑ: %s"
+msgstr "Ошибка: «con status»: %s; разрешённые полÑ: %s"
-#: ../cli/src/connections.c:658
+#: ../cli/src/connections.c:649 ../cli/src/connections.c:1454
+#: ../cli/src/connections.c:1553 ../cli/src/devices.c:1014
+#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576
+#, c-format
+msgid "Error: Can't find out if NetworkManager is running: %s."
+msgstr "Ошибка: не удалоÑÑŒ проверить запущен ли NetworkManager: %s."
+
+#: ../cli/src/connections.c:653 ../cli/src/connections.c:1458
+#: ../cli/src/connections.c:1557 ../cli/src/devices.c:1018
+#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233
+#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580
+#, c-format
+msgid "Error: NetworkManager is not running."
+msgstr "Ошибка: NetworkManager не запущен."
+
+#: ../cli/src/connections.c:661
msgid "Active connections"
msgstr "Ðктивные ÑоединениÑ"
-#: ../cli/src/connections.c:1026
+#: ../cli/src/connections.c:1097
#, c-format
msgid "no active connection on device '%s'"
msgstr "нет активных Ñоединений на уÑтройÑтве «%s»"
-#: ../cli/src/connections.c:1034
+#: ../cli/src/connections.c:1105
#, c-format
msgid "no active connection or device"
msgstr "нет активного ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ уÑтройÑтва"
-#: ../cli/src/connections.c:1084
+#: ../cli/src/connections.c:1176
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "уÑтройÑтво «%s» неÑовмеÑтимо Ñ Ñоединением «%s»"
-#: ../cli/src/connections.c:1086
+#: ../cli/src/connections.c:1178
#, c-format
msgid "no device found for connection '%s'"
msgstr "не найдено уÑтройÑтво Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Â«%s»"
-#: ../cli/src/connections.c:1097
+#: ../cli/src/connections.c:1189
msgid "activating"
msgstr "активациÑ"
-#: ../cli/src/connections.c:1099
+#: ../cli/src/connections.c:1191
msgid "activated"
msgstr "активно"
-#: ../cli/src/connections.c:1102 ../cli/src/connections.c:1125
-#: ../cli/src/connections.c:1158 ../cli/src/devices.c:224
-#: ../cli/src/devices.c:514 ../cli/src/network-manager.c:92
-#: ../cli/src/network-manager.c:145 ../cli/src/settings.c:469
+#: ../cli/src/connections.c:1193 ../cli/src/devices.c:304
+msgid "deactivating"
+msgstr "деактивациÑ"
+
+#: ../cli/src/connections.c:1196 ../cli/src/connections.c:1219
+#: ../cli/src/connections.c:1252 ../cli/src/devices.c:308
+#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118
+#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183
+#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298
+#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391
+#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485
+#: ../cli/src/utils.c:396
msgid "unknown"
msgstr "неизвеÑтно"
-#: ../cli/src/connections.c:1111
+#: ../cli/src/connections.c:1205
msgid "VPN connecting (prepare)"
msgstr "Подключение VPN (подготовка)"
-#: ../cli/src/connections.c:1113
+#: ../cli/src/connections.c:1207
msgid "VPN connecting (need authentication)"
msgstr "Подключение VPN (требуетÑÑ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ)"
-#: ../cli/src/connections.c:1115
+#: ../cli/src/connections.c:1209
msgid "VPN connecting"
msgstr "Подключение VPN"
-#: ../cli/src/connections.c:1117
+#: ../cli/src/connections.c:1211
msgid "VPN connecting (getting IP configuration)"
-msgstr "Подключение VPN (получение конфигурации IP)"
+msgstr "Подключение VPN (получение наÑтроек IP)"
-#: ../cli/src/connections.c:1119
+#: ../cli/src/connections.c:1213
msgid "VPN connected"
-msgstr "VPN подключен"
+msgstr "VPN подключён"
-#: ../cli/src/connections.c:1121
+#: ../cli/src/connections.c:1215
msgid "VPN connection failed"
msgstr "Сбой Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ VPN"
-#: ../cli/src/connections.c:1123
+#: ../cli/src/connections.c:1217
msgid "VPN disconnected"
-msgstr "VPN отключен"
+msgstr "VPN отключён"
-#: ../cli/src/connections.c:1134
+#: ../cli/src/connections.c:1228
msgid "unknown reason"
msgstr "неизвеÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°"
-#: ../cli/src/connections.c:1136
+#: ../cli/src/connections.c:1230
msgid "none"
msgstr "нет"
-#: ../cli/src/connections.c:1138
+#: ../cli/src/connections.c:1232
msgid "the user was disconnected"
-msgstr "пользователь был отключен"
+msgstr "пользователь был отключён"
-#: ../cli/src/connections.c:1140
+#: ../cli/src/connections.c:1234
msgid "the base network connection was interrupted"
msgstr "оÑновное Ñоединение Ñ Ñетью было разорвано"
-#: ../cli/src/connections.c:1142
+#: ../cli/src/connections.c:1236
msgid "the VPN service stopped unexpectedly"
msgstr "Ñлужба VPN внезапно прекратила работу"
-#: ../cli/src/connections.c:1144
+#: ../cli/src/connections.c:1238
msgid "the VPN service returned invalid configuration"
msgstr "Ñлужба VPN вернула недопуÑтимую конфигурацию"
-#: ../cli/src/connections.c:1146
+#: ../cli/src/connections.c:1240
msgid "the connection attempt timed out"
msgstr "Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸Ñтекло"
-#: ../cli/src/connections.c:1148
+#: ../cli/src/connections.c:1242
msgid "the VPN service did not start in time"
msgstr "Ñлужба VPN не была запущена вовремÑ"
-#: ../cli/src/connections.c:1150
+#: ../cli/src/connections.c:1244
msgid "the VPN service failed to start"
msgstr "не удалоÑÑŒ запуÑтить Ñлужбу VPN"
-#: ../cli/src/connections.c:1152
+#: ../cli/src/connections.c:1246
msgid "no valid VPN secrets"
msgstr "нет верных Ñекретов VPN"
-#: ../cli/src/connections.c:1154
+#: ../cli/src/connections.c:1248
msgid "invalid VPN secrets"
msgstr "неверные Ñекреты VPN"
-#: ../cli/src/connections.c:1156
+#: ../cli/src/connections.c:1250
msgid "the connection was removed"
msgstr "Ñоединение удалено"
-#: ../cli/src/connections.c:1170
+#: ../cli/src/connections.c:1264
#, c-format
msgid "state: %s\n"
-msgstr "ÑтатуÑ: %s\n"
+msgstr "ÑоÑтоÑние: %s\n"
-#: ../cli/src/connections.c:1173 ../cli/src/connections.c:1199
+#: ../cli/src/connections.c:1267 ../cli/src/connections.c:1293
#, c-format
msgid "Connection activated\n"
msgstr "Соединение активно\n"
-#: ../cli/src/connections.c:1176
+#: ../cli/src/connections.c:1270
#, c-format
msgid "Error: Connection activation failed."
msgstr "Ошибка: Ñбой активации ÑоединениÑ."
-#: ../cli/src/connections.c:1195
+#: ../cli/src/connections.c:1289
#, c-format
msgid "state: %s (%d)\n"
-msgstr "ÑтатуÑ: %s (%d)\n"
+msgstr "ÑоÑтоÑние: %s (%d)\n"
-#: ../cli/src/connections.c:1205
+#: ../cli/src/connections.c:1299
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Ошибка: Ñбой активации ÑоединениÑ: %s."
-#: ../cli/src/connections.c:1222 ../cli/src/devices.c:811
+#: ../cli/src/connections.c:1316 ../cli/src/devices.c:1136
#, c-format
msgid "Error: Timeout %d sec expired."
-msgstr "Ошибка: превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ: %d Ñек."
+msgstr "Ошибка: превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ â€” %d Ñекунд."
-#: ../cli/src/connections.c:1265
+#: ../cli/src/connections.c:1329
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Ошибка: Ñбой активации ÑоединениÑ: %s"
-#: ../cli/src/connections.c:1279
-#, c-format
-msgid "Error: Obtaining active connection for '%s' failed."
-msgstr "Ошибка: не удалоÑÑŒ уÑтановить активное Ñоединение Ð´Ð»Ñ Â«%s»"
-
-#: ../cli/src/connections.c:1288
+#: ../cli/src/connections.c:1335
#, c-format
msgid "Active connection state: %s\n"
-msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ ÑоединениÑ: %s\n"
+msgstr "СоÑтоÑние активного ÑоединениÑ: %s\n"
-#: ../cli/src/connections.c:1289
+#: ../cli/src/connections.c:1336
#, c-format
msgid "Active connection path: %s\n"
msgstr "Путь активного ÑоединениÑ: %s\n"
-#: ../cli/src/connections.c:1343 ../cli/src/connections.c:1461
+#: ../cli/src/connections.c:1388 ../cli/src/connections.c:1529
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Ошибка: неизвеÑтное Ñоединение: %s."
-#: ../cli/src/connections.c:1378 ../cli/src/devices.c:882
+#: ../cli/src/connections.c:1434 ../cli/src/devices.c:1208
#, c-format
msgid "Error: timeout value '%s' is not valid."
-msgstr "Ошибка: недопуÑтимое значение таймаута: «%s»"
+msgstr "Ошибка: недопуÑтимое значение ожиданиÑ: «%s»."
-#: ../cli/src/connections.c:1391 ../cli/src/connections.c:1478
+#: ../cli/src/connections.c:1447 ../cli/src/connections.c:1546
#, c-format
msgid "Error: id or uuid has to be specified."
-msgstr "Ошибка: необходимо указать ID или UUID."
+msgstr "Ошибка: необходимо указать id или uuid."
-#: ../cli/src/connections.c:1411
+#: ../cli/src/connections.c:1475
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "Ошибка: подходÑщее уÑтройÑтво не найдено: %s."
-#: ../cli/src/connections.c:1413
+#: ../cli/src/connections.c:1477
#, c-format
msgid "Error: No suitable device found."
msgstr "Ошибка: подходÑщее уÑтройÑтво не найдено."
-#: ../cli/src/connections.c:1505
+#: ../cli/src/connections.c:1582
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Предупреждение: Ñоединение не активно\n"
-#: ../cli/src/connections.c:1561
+#: ../cli/src/connections.c:1620
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Ошибка: недопуÑÑ‚Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «con»: «%s»"
-#: ../cli/src/connections.c:1597
+#: ../cli/src/connections.c:1685
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Ошибка: не удалоÑÑŒ подключитьÑÑ Ðº D-Bus."
-#: ../cli/src/connections.c:1604
+#: ../cli/src/connections.c:1692
#, c-format
msgid "Error: Could not get system settings."
msgstr "Ошибка: не удалоÑÑŒ получить ÑиÑтемные наÑтройки."
-#: ../cli/src/connections.c:1612
+#: ../cli/src/connections.c:1702
#, c-format
-msgid "Error: Could not get user settings."
-msgstr "Ошибка: не удалоÑÑŒ получить наÑтройки пользователÑ."
-
-#: ../cli/src/connections.c:1622
-#, c-format
-msgid "Error: Can't obtain connections: settings services are not running."
-msgstr "Ошибка: не удалоÑÑŒ получить ÑоединениÑ, не выполнÑÑŽÑ‚ÑÑ Ñлужбы наÑтройки."
+msgid "Error: Can't obtain connections: settings service is not running."
+msgstr "Ошибка: не удалоÑÑŒ получить подключение, Ñлужбы наÑтроек не запущена."
#. 0
#. 9
-#: ../cli/src/devices.c:60 ../cli/src/devices.c:86 ../cli/src/devices.c:162
+#. 3
+#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212
+#: ../cli/src/devices.c:228
msgid "DEVICE"
msgstr "УСТРОЙСТВО"
#. 1
#. 4
-#. 0
-#: ../cli/src/devices.c:62 ../cli/src/devices.c:90
-#: ../cli/src/network-manager.c:36
+#. 1
+#: ../cli/src/devices.c:68 ../cli/src/devices.c:106
+#: ../cli/src/network-manager.c:39
msgid "STATE"
-msgstr "СТÐТУС"
+msgstr "СОСТОЯÐИЕ"
-#: ../cli/src/devices.c:71
+#: ../cli/src/devices.c:78
msgid "GENERAL"
msgstr "ОБЩИЕ"
#. 0
-#: ../cli/src/devices.c:72
+#: ../cli/src/devices.c:79
msgid "CAPABILITIES"
msgstr "ВОЗМОЖÐОСТИ"
#. 1
-#: ../cli/src/devices.c:73
+#: ../cli/src/devices.c:80
msgid "WIFI-PROPERTIES"
msgstr "СВОЙСТВРWIFI"
#. 2
-#: ../cli/src/devices.c:74
+#: ../cli/src/devices.c:81
msgid "AP"
-msgstr "ТОЧКÐ"
+msgstr "ТД"
#. 3
-#: ../cli/src/devices.c:75
+#: ../cli/src/devices.c:82
msgid "WIRED-PROPERTIES"
msgstr "СВОЙСТВРПРОВОДÐОГО СОЕДИÐЕÐИЯ"
#. 4
-#: ../cli/src/devices.c:76
+#: ../cli/src/devices.c:83
+msgid "WIMAX-PROPERTIES"
+msgstr "СВОЙСТВРWIMAX"
+
+#. 5
+#. 0
+#: ../cli/src/devices.c:84 ../cli/src/devices.c:225
+msgid "NSP"
+msgstr "NSP"
+
+#. 6
+#: ../cli/src/devices.c:85
msgid "IP4-SETTINGS"
msgstr "ПÐРÐМЕТРЫ IP4"
-#. 5
-#: ../cli/src/devices.c:77
+#. 7
+#: ../cli/src/devices.c:86
msgid "IP4-DNS"
msgstr "IP4-DNS"
-#. 2
+#. 8
+#: ../cli/src/devices.c:87
+msgid "IP6-SETTINGS"
+msgstr "ПÐРÐМЕТРЫ IP6"
+
+#. 9
#: ../cli/src/devices.c:88
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:104
msgid "DRIVER"
msgstr "ДРÐЙВЕР"
#. 3
-#: ../cli/src/devices.c:89
+#: ../cli/src/devices.c:105
msgid "HWADDR"
-msgstr "HWADDR"
+msgstr "ÐПП.ÐДРЕС"
#. 0
-#: ../cli/src/devices.c:99
+#: ../cli/src/devices.c:115
msgid "CARRIER-DETECT"
-msgstr "ОПРЕД.ÐЕСУЩУЮ"
+msgstr "ОПРЕД.ÐЕСУЩЕЙ"
#. 1
-#: ../cli/src/devices.c:100
+#: ../cli/src/devices.c:116
msgid "SPEED"
msgstr "СКОРОСТЬ"
#. 0
-#: ../cli/src/devices.c:109
+#: ../cli/src/devices.c:125
msgid "CARRIER"
msgstr "ÐЕСУЩÐЯ"
#. 0
-#: ../cli/src/devices.c:119
+#: ../cli/src/devices.c:135
msgid "WEP"
msgstr "WEP"
#. 1
-#: ../cli/src/devices.c:120
+#: ../cli/src/devices.c:136
msgid "WPA"
msgstr "WPA"
#. 2
-#: ../cli/src/devices.c:121
+#: ../cli/src/devices.c:137
msgid "WPA2"
msgstr "WPA2"
#. 3
-#: ../cli/src/devices.c:122
+#: ../cli/src/devices.c:138
msgid "TKIP"
msgstr "TKIP"
#. 4
-#: ../cli/src/devices.c:123
+#: ../cli/src/devices.c:139
msgid "CCMP"
msgstr "CCMP"
#. 0
-#: ../cli/src/devices.c:132
+#: ../cli/src/devices.c:149
+msgid "CTR-FREQ"
+msgstr "CTR-FREQ"
+
+#. 1
+#: ../cli/src/devices.c:150
+msgid "RSSI"
+msgstr "RSSI"
+
+#. 2
+#: ../cli/src/devices.c:151
+msgid "CINR"
+msgstr "CINR"
+
+#. 3
+#: ../cli/src/devices.c:152
+msgid "TX-POW"
+msgstr "TX-POW"
+
+#. 4
+#: ../cli/src/devices.c:153
+msgid "BSID"
+msgstr "BSID"
+
+#. 0
+#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
msgid "ADDRESS"
msgstr "ÐДРЕС"
#. 1
-#: ../cli/src/devices.c:133
+#: ../cli/src/devices.c:164 ../cli/src/devices.c:175
msgid "PREFIX"
msgstr "ПРЕФИКС"
#. 2
-#: ../cli/src/devices.c:134
+#: ../cli/src/devices.c:165 ../cli/src/devices.c:176
msgid "GATEWAY"
msgstr "ШЛЮЗ"
#. 0
-#: ../cli/src/devices.c:143
+#: ../cli/src/devices.c:185 ../cli/src/devices.c:194
msgid "DNS"
msgstr "DNS"
#. 0
-#: ../cli/src/devices.c:153
+#: ../cli/src/devices.c:203
msgid "SSID"
msgstr "SSID"
#. 1
-#: ../cli/src/devices.c:154
+#: ../cli/src/devices.c:204
msgid "BSSID"
msgstr "BSSID"
#. 2
-#: ../cli/src/devices.c:155
+#: ../cli/src/devices.c:205
msgid "MODE"
msgstr "РЕЖИМ"
#. 3
-#: ../cli/src/devices.c:156
+#: ../cli/src/devices.c:206
msgid "FREQ"
msgstr "ЧÐСТОТÐ"
#. 4
-#: ../cli/src/devices.c:157
+#: ../cli/src/devices.c:207
msgid "RATE"
msgstr "СКОРОСТЬ"
#. 5
-#: ../cli/src/devices.c:158
+#. 1
+#: ../cli/src/devices.c:208 ../cli/src/devices.c:226
msgid "SIGNAL"
msgstr "СИГÐÐЛ"
#. 6
-#: ../cli/src/devices.c:159
+#: ../cli/src/devices.c:209
msgid "SECURITY"
msgstr "ЗÐЩИТÐ"
#. 7
-#: ../cli/src/devices.c:160
+#: ../cli/src/devices.c:210
msgid "WPA-FLAGS"
msgstr "ФЛÐГИ WPA"
#. 8
-#: ../cli/src/devices.c:161
+#: ../cli/src/devices.c:211
msgid "RSN-FLAGS"
msgstr "ФЛÐГИ RSN"
#. 10
-#: ../cli/src/devices.c:163
+#. 4
+#: ../cli/src/devices.c:213 ../cli/src/devices.c:229
msgid "ACTIVE"
msgstr "ÐКТИВЕÐ"
-#: ../cli/src/devices.c:186
+#: ../cli/src/devices.c:256
#, c-format
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
"\n"
+" COMMAND := { status | list | disconnect | wifi | wimax }\n"
+"\n"
" COMMAND := { status | list | disconnect | wifi }\n"
"\n"
" status\n"
" list [iface <iface>]\n"
" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+" wimax [list [iface <iface>] [nsp <name>]]\n"
"\n"
msgstr ""
-"Применение: nmcli dev { КОМÐÐДР| help }\n"
+"ИÑпользование: nmcli dev { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | list | disconnect | wifi | wimax }\n"
"\n"
" КОМÐÐДР:= { status | list | disconnect | wifi }\n"
"\n"
" status\n"
-" list [iface <iface>]\n"
-" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
-" wifi [list [iface <iface>] [ waddr <hwaddr>]]\n"
+" list [iface <интерфейÑ>]\n"
+" disconnect iface <интерфейÑ> [--nowait] [--timeout <ожидание>]\n"
+" wifi [list [iface <интерфейÑ>] [ hwaddr <апп.адр.>]]\n"
+" wimax [list [iface <интерфейÑ>] [nsp <имÑ>]]\n"
"\n"
-#: ../cli/src/devices.c:206
+#: ../cli/src/devices.c:284
msgid "unmanaged"
msgstr "без управлениÑ"
-#: ../cli/src/devices.c:208
+#: ../cli/src/devices.c:286
msgid "unavailable"
msgstr "недоÑтупен"
-#: ../cli/src/devices.c:210 ../cli/src/network-manager.c:89
+#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115
msgid "disconnected"
-msgstr "отключен"
+msgstr "отключено"
-#: ../cli/src/devices.c:212
+#: ../cli/src/devices.c:290
msgid "connecting (prepare)"
-msgstr "подключаетÑÑ (подготовка)"
+msgstr "подключение (подготовка)"
-#: ../cli/src/devices.c:214
+#: ../cli/src/devices.c:292
msgid "connecting (configuring)"
-msgstr "подключаетÑÑ (конфигурациÑ)"
+msgstr "подключение (наÑтройка)"
-#: ../cli/src/devices.c:216
+#: ../cli/src/devices.c:294
msgid "connecting (need authentication)"
-msgstr "подключаетÑÑ (требуетÑÑ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ)"
+msgstr "подключение (требуетÑÑ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ)"
-#: ../cli/src/devices.c:218
+#: ../cli/src/devices.c:296
msgid "connecting (getting IP configuration)"
-msgstr "подключаетÑÑ (получение наÑтроек IP)"
+msgstr "подключение (получение наÑтроек IP)"
+
+#: ../cli/src/devices.c:298
+msgid "connecting (checking IP connectivity)"
+msgstr "подключение (проверка IP-подключениÑ)"
-#: ../cli/src/devices.c:220 ../cli/src/network-manager.c:87
+#: ../cli/src/devices.c:300
+msgid "connecting (starting secondary connections)"
+msgstr "подключение (запуÑк второÑтепенных Ñоединений)"
+
+#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111
msgid "connected"
-msgstr "подключен"
+msgstr "подключено"
-#: ../cli/src/devices.c:222
+#: ../cli/src/devices.c:306
msgid "connection failed"
msgstr "Ñбой ÑоединениÑ"
-#: ../cli/src/devices.c:245 ../cli/src/devices.c:380
+#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501
+#: ../cli/src/devices.c:545
msgid "Unknown"
msgstr "ÐеизвеÑтно"
-#: ../cli/src/devices.c:277
+#: ../cli/src/devices.c:374
msgid "(none)"
msgstr "(нет)"
-#: ../cli/src/devices.c:302
+#: ../cli/src/devices.c:399
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: ошибка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа IP4 0x%X"
-#: ../cli/src/devices.c:349
+#: ../cli/src/devices.c:470
#, c-format
msgid "%u MHz"
msgstr "%u МГц"
-#: ../cli/src/devices.c:350
+#: ../cli/src/devices.c:471
#, c-format
msgid "%u MB/s"
msgstr "%u МБ/Ñ"
-#: ../cli/src/devices.c:359
+#: ../cli/src/devices.c:480
msgid "Encrypted: "
msgstr "Зашифровано: "
-#: ../cli/src/devices.c:364
+#: ../cli/src/devices.c:485
msgid "WEP "
msgstr "WEP "
-#: ../cli/src/devices.c:366
+#: ../cli/src/devices.c:487
msgid "WPA "
msgstr "WPA "
-#: ../cli/src/devices.c:368
+#: ../cli/src/devices.c:489
msgid "WPA2 "
msgstr "WPA2 "
-#: ../cli/src/devices.c:371
+#: ../cli/src/devices.c:492
msgid "Enterprise "
msgstr "Enterprise "
-#: ../cli/src/devices.c:380
+#: ../cli/src/devices.c:501
msgid "Ad-Hoc"
msgstr "Ad-Hoc"
-#: ../cli/src/devices.c:380
+#: ../cli/src/devices.c:501
msgid "Infrastructure"
msgstr "ИнфраÑтруктура"
-#: ../cli/src/devices.c:442
+#: ../cli/src/devices.c:536
+msgid "Home"
+msgstr "Домой"
+
+#: ../cli/src/devices.c:539
+msgid "Partner"
+msgstr "Партнер"
+
+#: ../cli/src/devices.c:542
+msgid "Roaming"
+msgstr "Роуминг"
+
+#: ../cli/src/devices.c:612
#, c-format
msgid "Error: 'dev list': %s"
msgstr "Ошибка: «dev list»: %s"
-#: ../cli/src/devices.c:444
+#: ../cli/src/devices.c:614
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
msgstr "Ошибка: «dev list»: %s; разрешённые полÑ: %s"
-#: ../cli/src/devices.c:453
+#: ../cli/src/devices.c:623
msgid "Device details"
msgstr "Ð¡Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± уÑтройÑтве"
-#: ../cli/src/devices.c:483 ../cli/src/devices.c:827
+#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342
msgid "(unknown)"
msgstr "(неизвеÑтно)"
-#: ../cli/src/devices.c:484
+#: ../cli/src/devices.c:658
msgid "unknown)"
msgstr "неизвеÑтно)"
-#: ../cli/src/devices.c:510
+#: ../cli/src/devices.c:684
#, c-format
msgid "%u Mb/s"
msgstr "%u Мб/c"
#. Print header
#. "WIRED-PROPERTIES"
-#: ../cli/src/devices.c:583
+#: ../cli/src/devices.c:757
msgid "on"
msgstr "вкл"
-#: ../cli/src/devices.c:583
+#: ../cli/src/devices.c:757
msgid "off"
msgstr "выкл"
-#: ../cli/src/devices.c:710
+#: ../cli/src/devices.c:1004
#, c-format
msgid "Error: 'dev status': %s"
msgstr "Ошибка: «dev status»: %s"
-#: ../cli/src/devices.c:712
+#: ../cli/src/devices.c:1006
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
msgstr "Ошибка: «dev status»: %s; разрешённые полÑ: %s"
-#: ../cli/src/devices.c:719
+#: ../cli/src/devices.c:1029
msgid "Status of devices"
-msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ ÑƒÑтройÑтв"
+msgstr "СоÑтоÑние уÑтройÑтв"
-#: ../cli/src/devices.c:747
+#: ../cli/src/devices.c:1060
#, c-format
msgid "Error: '%s' argument is missing."
-msgstr "Ошибка: отÑутÑтвует аргумент «%s»"
+msgstr "Ошибка: отÑутÑтвует аргумент «%s»."
-#: ../cli/src/devices.c:776 ../cli/src/devices.c:915 ../cli/src/devices.c:1035
+#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253
+#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608
#, c-format
msgid "Error: Device '%s' not found."
msgstr "Ошибка: не найдено уÑтройÑтво «%s»."
-#: ../cli/src/devices.c:799
+#: ../cli/src/devices.c:1124
#, c-format
msgid "Success: Device '%s' successfully disconnected."
-msgstr "Выполнено: уÑтройÑтво «%s» подключено."
+msgstr "Выполнено: уÑтройÑтво «%s» отключено."
-#: ../cli/src/devices.c:824
+#: ../cli/src/devices.c:1149
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
msgstr "Ошибка: не удалоÑÑŒ отключить уÑтройÑтво «%s» (%s): %s"
-#: ../cli/src/devices.c:832
+#: ../cli/src/devices.c:1157
#, c-format
msgid "Device state: %d (%s)\n"
-msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ ÑƒÑтройÑтва: %d (%s)\n"
+msgstr "СоÑтоÑние уÑтройÑтва: %d (%s)\n"
-#: ../cli/src/devices.c:896
+#: ../cli/src/devices.c:1222
#, c-format
msgid "Error: iface has to be specified."
msgstr "Ошибка: необходимо указать интерфейÑ."
-#: ../cli/src/devices.c:1011
+#: ../cli/src/devices.c:1347
#, c-format
msgid "Error: 'dev wifi': %s"
msgstr "Ошибка: «dev wifi»: «%s»"
-#: ../cli/src/devices.c:1013
+#: ../cli/src/devices.c:1349
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
msgstr "Ошибка: «dev wifi»: %s; разрешённые полÑ: %s"
-#: ../cli/src/devices.c:1020
+#: ../cli/src/devices.c:1372
msgid "WiFi scan list"
-msgstr "СпиÑок проверки WiFi"
+msgstr "СпиÑок ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ WiFi"
-#: ../cli/src/devices.c:1055 ../cli/src/devices.c:1109
+#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463
+#: ../cli/src/devices.c:1670
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
-msgstr "Ошибка: точка доÑтупа Ñ Ð°Ð´Ñ€ÐµÑом «%s» не найдена."
+msgstr "Ошибка: точка доÑтупа Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼ адреÑом «%s» не найдена."
-#: ../cli/src/devices.c:1072
+#: ../cli/src/devices.c:1426
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
msgstr "Ошибка: «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом WiFi."
-#: ../cli/src/devices.c:1136
+#: ../cli/src/devices.c:1490
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
-msgstr "Ошибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «dev wifi»: «%s»"
+msgstr "Ошибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «dev wifi»: «%s»."
+
+#: ../cli/src/devices.c:1566
+#, c-format
+msgid "Error: 'dev wimax': %s"
+msgstr "Ошибка: «dev wimax»: %s"
+
+#: ../cli/src/devices.c:1568
+#, c-format
+msgid "Error: 'dev wimax': %s; allowed fields: %s"
+msgstr "Ошибка: «dev wimax»: %s; разрешённые полÑ: %s"
+
+#: ../cli/src/devices.c:1591
+msgid "WiMAX NSP list"
+msgstr "СпиÑок WiMAX NSP"
+
+#: ../cli/src/devices.c:1628
+#, c-format
+msgid "Error: NSP with name '%s' not found."
+msgstr "Ошибка: NSP Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s» не найден."
-#: ../cli/src/devices.c:1183
+#: ../cli/src/devices.c:1639
+#, c-format
+msgid "Error: Device '%s' is not a WiMAX device."
+msgstr "Ошибка: «%s» не ÑвлÑетÑÑ ÑƒÑтройÑтвом WIMAX."
+
+#: ../cli/src/devices.c:1697
+#, c-format
+msgid "Error: 'dev wimax' command '%s' is not valid."
+msgstr "Ошибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «dev wimax»: %s"
+
+#: ../cli/src/devices.c:1747
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
-msgstr "Ошибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «dev»: «%s»"
+msgstr "Ошибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «dev»: «%s»."
-#: ../cli/src/network-manager.c:35
+#: ../cli/src/network-manager.c:37
msgid "RUNNING"
msgstr "ВЫПОЛÐЯЕТСЯ"
-#. 1
-#: ../cli/src/network-manager.c:37
+#. 0
+#: ../cli/src/network-manager.c:38
+msgid "VERSION"
+msgstr "ВЕРСИЯ"
+
+#. 2
+#: ../cli/src/network-manager.c:40
+msgid "NET-ENABLED"
+msgstr "NET-ENABLED"
+
+#. 3
+#: ../cli/src/network-manager.c:41
msgid "WIFI-HARDWARE"
msgstr "ОБОРУДОВÐÐИЕ WIFI"
-#. 2
-#: ../cli/src/network-manager.c:38
+#. 4
+#: ../cli/src/network-manager.c:42
msgid "WIFI"
msgstr "WIFI"
-#. 3
-#: ../cli/src/network-manager.c:39
+#. 5
+#: ../cli/src/network-manager.c:43
msgid "WWAN-HARDWARE"
msgstr "ОБОРУДОВÐÐИЕ WWAN"
-#. 4
-#: ../cli/src/network-manager.c:40
+#. 6
+#: ../cli/src/network-manager.c:44
msgid "WWAN"
msgstr "WWAN"
-#: ../cli/src/network-manager.c:62
+#. 7
+#: ../cli/src/network-manager.c:45
+msgid "WIMAX-HARDWARE"
+msgstr "ОБОРУДОВÐÐИЕ WIMAX"
+
+#. 8
+#: ../cli/src/network-manager.c:46
+msgid "WIMAX"
+msgstr "WIMAX"
+
+#: ../cli/src/network-manager.c:74
#, c-format
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
-" COMMAND := { status | sleep | wakeup | wifi | wwan }\n"
+" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
+" wimax [on|off]\n"
"\n"
msgstr ""
-"Применение: nmcli nm { КОМÐÐДР| help }\n"
+"ИÑпользование: nmcli nm { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | sleep | wakeup | wifi | wwan | wimax }\n"
"\n"
" КОМÐÐДР:= { status | sleep | wakeup | wifi | wwan }\n"
"\n"
" status\n"
+" enable [true|false]\n"
" sleep\n"
-" wakeup\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
+" wimax [on|off]\n"
"\n"
-#: ../cli/src/network-manager.c:83
+#: ../cli/src/network-manager.c:103
msgid "asleep"
msgstr "ÑпÑщий"
-#: ../cli/src/network-manager.c:85
+#: ../cli/src/network-manager.c:105
msgid "connecting"
msgstr "подключаетÑÑ"
-#: ../cli/src/network-manager.c:125
+#: ../cli/src/network-manager.c:107
+msgid "connected (local only)"
+msgstr "подключён (локально)"
+
+#: ../cli/src/network-manager.c:109
+msgid "connected (site only)"
+msgstr "подключён (на узле)"
+
+#: ../cli/src/network-manager.c:113
+msgid "disconnecting"
+msgstr "отключение"
+
+#: ../cli/src/network-manager.c:153
#, c-format
msgid "Error: 'nm status': %s"
msgstr "Ошибка: «nm status»: %s"
-#: ../cli/src/network-manager.c:127
+#: ../cli/src/network-manager.c:155
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
msgstr "Ошибка: «nm status»: %s; разрешённые полÑ: %s"
-#: ../cli/src/network-manager.c:134
-msgid "NetworkManager status"
-msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ NetworkManager"
-
-#. Print header
-#: ../cli/src/network-manager.c:140 ../cli/src/network-manager.c:141
-#: ../cli/src/network-manager.c:142 ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:211 ../cli/src/network-manager.c:243
+#. create NMClient
+#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "enabled"
-msgstr "включен"
-
-#: ../cli/src/network-manager.c:140 ../cli/src/network-manager.c:141
-#: ../cli/src/network-manager.c:142 ../cli/src/network-manager.c:143
-#: ../cli/src/network-manager.c:211 ../cli/src/network-manager.c:243
+msgstr "включён"
+
+#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
msgid "disabled"
-msgstr "отключен"
+msgstr "отключён"
+
+#: ../cli/src/network-manager.c:188
+msgid "NetworkManager status"
+msgstr "СоÑтоÑние NetworkManager"
-#: ../cli/src/network-manager.c:148
+#. Print header
+#: ../cli/src/network-manager.c:191
msgid "running"
msgstr "выполнÑетÑÑ"
-#: ../cli/src/network-manager.c:148
+#: ../cli/src/network-manager.c:191
msgid "not running"
msgstr "не выполнÑетÑÑ"
-#: ../cli/src/network-manager.c:201 ../cli/src/network-manager.c:233
+#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Ошибка: не удалоÑÑŒ подключитьÑÑ Ðº ÑиÑтемной шине: %s"
+
+#: ../cli/src/network-manager.c:233
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Ошибка: не удалоÑÑŒ Ñоздать прокÑи-объект D-Bus."
+
+#: ../cli/src/network-manager.c:239
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "Ошибка в задержке: %s"
+
+#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "Ошибка: недопуÑтимое значение «--fields»: «%s»; разрешённые полÑ: %s"
-#: ../cli/src/network-manager.c:209
+#: ../cli/src/network-manager.c:291
+msgid "Networking enabled"
+msgstr "Сеть включена"
+
+#: ../cli/src/network-manager.c:307
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr ""
+"Ошибка: недопуÑтимый параметр «enable»: «%s»; иÑпользуйте «true» или «false»."
+
+#: ../cli/src/network-manager.c:317
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Ошибка: NetworkManager не удалоÑÑŒ ÑкÑпортировать ÑоÑтоÑние Ñна."
+
+#: ../cli/src/network-manager.c:325
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr ""
+"Ошибка: недопуÑтимый параметр «sleep»: «%s»; иÑпользуйте «true» или «false»."
+
+#: ../cli/src/network-manager.c:346
msgid "WiFi enabled"
-msgstr "WiFi включен"
+msgstr "WiFi включён"
-#: ../cli/src/network-manager.c:220
+#: ../cli/src/network-manager.c:362
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
-msgstr "Ошибка: недопуÑтимый параметр «wifi»: «%s»"
+msgstr "Ошибка: недопуÑтимый параметр «wifi»: «%s»."
-#: ../cli/src/network-manager.c:241
+#: ../cli/src/network-manager.c:384
msgid "WWAN enabled"
-msgstr "WWAN включен"
+msgstr "WWAN включён"
-#: ../cli/src/network-manager.c:252
+#: ../cli/src/network-manager.c:400
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
-msgstr "Ошибка: недопуÑтимый параметр «wwan»: «%s»"
+msgstr "Ошибка: недопуÑтимый параметр «wwan»: «%s»."
-#: ../cli/src/network-manager.c:263
+#: ../cli/src/network-manager.c:423
+msgid "WiMAX enabled"
+msgstr "WiMAX включён"
+
+#: ../cli/src/network-manager.c:439
+#, c-format
+msgid "Error: invalid 'wimax' parameter: '%s'."
+msgstr "Ошибка: недопуÑтимый параметр «wimax»: «%s»"
+
+#: ../cli/src/network-manager.c:452
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "Ошибка: недопуÑÑ‚Ð¸Ð¼Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° «nm»: «%s»."
-#: ../cli/src/nmcli.c:69
+#: ../cli/src/nmcli.c:64
#, c-format
msgid ""
"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
@@ -974,6 +1190,8 @@ msgid ""
" -f[ields] <field1,field2,...>|all|common specify fields to output\n"
" -e[scape] yes|no escape columns separators in "
"values\n"
+" -n[ocheck] don't check nmcli and "
+"NetworkManager versions\n"
" -v[ersion] show program version\n"
" -h[elp] print this help\n"
"\n"
@@ -983,669 +1201,858 @@ msgid ""
" dev devices managed by NetworkManager\n"
"\n"
msgstr ""
-"Применение: %s [ПÐРÐМЕТРЫ] ОБЪЕКТ { КОМÐÐДР| help }\n"
+"ИÑпользование: %s [ПÐРÐМЕТРЫ] ОБЪЕКТ { КОМÐÐДР| help }\n"
"\n"
"ПÐРÐМЕТРЫ\n"
-" -t[erse] Ñжатый вывод\n"
-" -p[retty] отформатированный вывод\n"
-" -m[ode] tabular|multiline режим вывода\n"
-" -f[ields] <поле1,поле2,...>|all|common вывод выбранных полей\n"
-" -e[scape] yes|no отделÑÑ‚ÑŒ разделитель Ñтолбцов в значениÑÑ… Ñпециальными Ñимволами\n"
-" -v[ersion] показать верÑию программы\n"
-" -h[elp] показать Ñту Ñправку\n"
+" -t[erse] Ñжатый вывод\n"
+" -p[retty] форматированный вывод\n"
+" -m[ode] tabular|multiline режим вывода\n"
+" -f[ields] <поле1,поле2,...>|all|common указать Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð°\n"
+" -e[scape] yes|no удалÑÑ‚ÑŒ разделитель Ñтолбцов\n"
+" у значений\n"
+" -n[ocheck] не проверÑÑ‚ÑŒ верÑию nmcli и\n"
+" NetworkManager\n"
+" -v[ersion] показать верÑию программы\n"
+" -h[elp] вывод Ñтой Ñправки\n"
"\n"
"ОБЪЕКТ\n"
-" nm ÑÑ‚Ð°Ñ‚ÑƒÑ NetworkManager\n"
+" nm ÑоÑтоÑние NetworkManager\n"
" con ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ NetworkManager\n"
" dev уÑтройÑтва под управлением NetworkManager\n"
"\n"
-#: ../cli/src/nmcli.c:113
+#: ../cli/src/nmcli.c:109
#, c-format
msgid "Error: Object '%s' is unknown, try 'nmcli help'."
msgstr "Ошибка: неизвеÑтный объект «%s». Попробуйте выполнить «nmcli help»."
-#: ../cli/src/nmcli.c:143
+#: ../cli/src/nmcli.c:139
#, c-format
msgid "Error: Option '--terse' is specified the second time."
msgstr "Ошибка: параметр «--terse» указан дважды."
-#: ../cli/src/nmcli.c:148
+#: ../cli/src/nmcli.c:144
#, c-format
msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
msgstr "Ошибка: параметры «--terse» и «--pretty» взаимоиÑключаемы."
-#: ../cli/src/nmcli.c:156
+#: ../cli/src/nmcli.c:152
#, c-format
msgid "Error: Option '--pretty' is specified the second time."
msgstr "Ошибка: параметр «--pretty» указан дважды."
-#: ../cli/src/nmcli.c:161
+#: ../cli/src/nmcli.c:157
#, c-format
msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
msgstr "Ошибка: параметры «--pretty» и «--terse» взаимоиÑключаемы."
-#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#: ../cli/src/nmcli.c:167 ../cli/src/nmcli.c:183
#, c-format
msgid "Error: missing argument for '%s' option."
msgstr "Ошибка: отÑутÑтвует аргумент параметра «%s»."
-#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#: ../cli/src/nmcli.c:176 ../cli/src/nmcli.c:192
#, c-format
msgid "Error: '%s' is not valid argument for '%s' option."
msgstr "Ошибка: недопуÑтимый аргумент «%s» Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%s»."
-#: ../cli/src/nmcli.c:203
+#: ../cli/src/nmcli.c:199
#, c-format
msgid "Error: fields for '%s' options are missing."
msgstr "Ошибка: отÑутÑтвуют Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² «%s»."
-#: ../cli/src/nmcli.c:209
+#: ../cli/src/nmcli.c:207
#, c-format
msgid "nmcli tool, version %s\n"
msgstr "утилита nmcli, верÑÐ¸Ñ %s\n"
-#: ../cli/src/nmcli.c:215
+#: ../cli/src/nmcli.c:213
#, c-format
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
msgstr "Ошибка: неизвеÑтный параметр «%s». Попробуйте выполнить «nmcli -help»."
-#: ../cli/src/nmcli.c:234
+#: ../cli/src/nmcli.c:232
#, c-format
msgid "Caught signal %d, shutting down..."
-msgstr "Получен Ñигнал %d. Завершение работы..."
+msgstr "Получен Ñигнал %d. Завершение работы…"
-#: ../cli/src/nmcli.c:259
-#, c-format
-msgid "Error: Could not connect to NetworkManager."
-msgstr "Ошибка: не удалоÑÑŒ подключитьÑÑ Ðº NetworkManager."
+#: ../cli/src/nmcli.c:257
+msgid "Error: Could not create NMClient object."
+msgstr "Ошибка: не удалоÑÑŒ Ñоздать объект NMClient."
-#: ../cli/src/nmcli.c:275
+#: ../cli/src/nmcli.c:273
msgid "Success"
msgstr "УÑпешно"
-#: ../cli/src/settings.c:407
+#: ../cli/src/settings.c:423
#, c-format
msgid "%d (hex-ascii-key)"
msgstr "%d (16-теричный ASCII-ключ)"
-#: ../cli/src/settings.c:409
+#: ../cli/src/settings.c:425
#, c-format
msgid "%d (104/128-bit passphrase)"
msgstr "%d (104/128-Ð±Ð¸Ñ‚Ð½Ð°Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñ„Ñ€Ð°Ð·Ð°)"
-#: ../cli/src/settings.c:412
+#: ../cli/src/settings.c:428
#, c-format
msgid "%d (unknown)"
msgstr "%d (неизвеÑтно)"
-#: ../cli/src/settings.c:438
+#: ../cli/src/settings.c:454
msgid "0 (unknown)"
msgstr "0 (неизвеÑтно)"
-#: ../cli/src/settings.c:444
+#: ../cli/src/settings.c:460
msgid "any, "
msgstr "любой, "
-#: ../cli/src/settings.c:446
+#: ../cli/src/settings.c:462
msgid "900 MHz, "
msgstr "900 МГц, "
-#: ../cli/src/settings.c:448
+#: ../cli/src/settings.c:464
msgid "1800 MHz, "
msgstr "1800 МГц, "
-#: ../cli/src/settings.c:450
+#: ../cli/src/settings.c:466
msgid "1900 MHz, "
msgstr "1900 МГц, "
-#: ../cli/src/settings.c:452
+#: ../cli/src/settings.c:468
msgid "850 MHz, "
msgstr "850 МГц, "
-#: ../cli/src/settings.c:454
+#: ../cli/src/settings.c:470
msgid "WCDMA 3GPP UMTS 2100 MHz, "
msgstr "WCDMA 3GPP UMTS 2100 МГц, "
-#: ../cli/src/settings.c:456
+#: ../cli/src/settings.c:472
msgid "WCDMA 3GPP UMTS 1800 MHz, "
msgstr "WCDMA 3GPP UMTS 1800 МГц, "
-#: ../cli/src/settings.c:458
+#: ../cli/src/settings.c:474
msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
msgstr "WCDMA 3GPP UMTS 1700/2100 МГц, "
-#: ../cli/src/settings.c:460
+#: ../cli/src/settings.c:476
msgid "WCDMA 3GPP UMTS 800 MHz, "
msgstr "WCDMA 3GPP UMTS 800 МГц, "
-#: ../cli/src/settings.c:462
+#: ../cli/src/settings.c:478
msgid "WCDMA 3GPP UMTS 850 MHz, "
msgstr "WCDMA 3GPP UMTS 850 МГц, "
-#: ../cli/src/settings.c:464
+#: ../cli/src/settings.c:480
msgid "WCDMA 3GPP UMTS 900 MHz, "
msgstr "WCDMA 3GPP UMTS 900 МГц, "
-#: ../cli/src/settings.c:466
+#: ../cli/src/settings.c:482
msgid "WCDMA 3GPP UMTS 1700 MHz, "
msgstr "WCDMA 3GPP UMTS 1700 МГц, "
-#: ../cli/src/settings.c:546 ../cli/src/settings.c:708
+#: ../cli/src/settings.c:566 ../cli/src/settings.c:732
msgid "auto"
msgstr "авто"
-#: ../cli/src/settings.c:704 ../cli/src/settings.c:707 ../cli/src/utils.c:172
+#: ../cli/src/settings.c:727 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:731 ../cli/src/utils.c:176
msgid "not set"
msgstr "не задано"
-#: ../cli/src/utils.c:124
+#: ../cli/src/utils.c:128
#, c-format
msgid "field '%s' has to be alone"
msgstr "поле «%s» должно быть единÑтвенным"
-#: ../cli/src/utils.c:127
+#: ../cli/src/utils.c:131
#, c-format
msgid "invalid field '%s'"
msgstr "недопуÑтимое поле «%s»"
-#: ../cli/src/utils.c:146
+#: ../cli/src/utils.c:150
#, c-format
msgid "Option '--terse' requires specifying '--fields'"
msgstr "Параметр «--terse» требует ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Â«--fields»"
-#: ../cli/src/utils.c:150
+#: ../cli/src/utils.c:154
#, c-format
msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
msgstr "Параметр «--terse» требует определённых значений «--fields», но не «%s»"
-#: ../libnm-util/crypto.c:120
+#: ../cli/src/utils.c:333
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus"
+msgstr ""
+"Ошибка: не удалоÑÑŒ Ñоздать прокÑи-объект D-Bus Ð´Ð»Ñ org.freedesktop.DBus"
+
+#: ../cli/src/utils.c:341
+#, c-format
+msgid "Error: NameHasOwner request failed: %s"
+msgstr "Ошибка: Ñбой запроÑа NameHasOwner: %s"
+
+#: ../cli/src/utils.c:386
+#, c-format
+msgid ""
+"Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --"
+"nocheck to suppress the warning.\n"
+msgstr ""
+"Предупреждение: верÑии nmcli (%s) и NetworkManager (%s) не Ñовпадают. "
+"ИÑпользуйте --nocheck Ð´Ð»Ñ Ð¿Ð¾Ð´Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñтого предупреждениÑ.\n"
+
+#: ../cli/src/utils.c:395
+#, c-format
+msgid ""
+"Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force "
+"execution using --nocheck, but the results are unpredictable."
+msgstr ""
+"Ошибка: верÑии nmcli (%s) и NetworkManager (%s) не Ñовпадают. Ð”Ð»Ñ "
+"принудительного запуÑка иÑпользуйте --nocheck, но результаты не предÑказуемы."
+
+#: ../libnm-util/crypto.c:133
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "Файл ключа PEM не Ñодержит завершающий тег «%s»."
-#: ../libnm-util/crypto.c:130
+#: ../libnm-util/crypto.c:146
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "Возможно, Ñто не файл личного ключа PEM."
-#: ../libnm-util/crypto.c:138
+#: ../libnm-util/crypto.c:154
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ данных из файла PEM."
-#: ../libnm-util/crypto.c:154
+#: ../libnm-util/crypto.c:170
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr "Ðекорректный файл PEM: Proc-Type не ÑвлÑетÑÑ Ð¿ÐµÑ€Ð²Ñ‹Ð¼ тегом."
-#: ../libnm-util/crypto.c:162
+#: ../libnm-util/crypto.c:178
#, c-format
msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
msgstr "Ðекорректный файл PEM: неизвеÑтный тег Proc-Type «%s»."
-#: ../libnm-util/crypto.c:172
+#: ../libnm-util/crypto.c:188
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
msgstr "Ðекорректный файл PEM: DEK-Info не ÑвлÑетÑÑ Ð²Ñ‚Ð¾Ñ€Ñ‹Ð¼ тегом."
-#: ../libnm-util/crypto.c:183
+#: ../libnm-util/crypto.c:199
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr "Ðекорректный файл PEM: в теге DEK-Info не найден ВИ."
-#: ../libnm-util/crypto.c:190
+#: ../libnm-util/crypto.c:206
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr "Ðекорректный файл PEM: неверный формат ВИ в теге DEK-Info."
-#: ../libnm-util/crypto.c:203
+#: ../libnm-util/crypto.c:219
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr "Ðекорректный файл PEM: неизвеÑтный шифр личного ключа «%s»."
-#: ../libnm-util/crypto.c:222
+#: ../libnm-util/crypto.c:238
#, c-format
msgid "Could not decode private key."
msgstr "Ðе удалоÑÑŒ раÑшифровать личный ключ."
-#: ../libnm-util/crypto.c:267
-#, c-format
-msgid "PEM certificate '%s' had no end tag '%s'."
-msgstr "Сертификат PEM «%s» не имеет тега Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Â«%s»."
+#: ../libnm-util/crypto.c:284
+msgid "Failed to find expected PKCS#8 start tag."
+msgstr "Ðевозможно найти открывающий тег PKCS#8."
-#: ../libnm-util/crypto.c:277
+#: ../libnm-util/crypto.c:292
#, c-format
-msgid "Failed to decode certificate."
-msgstr "Ðе удалоÑÑŒ раÑшифровать Ñертификат."
+msgid "Failed to find expected PKCS#8 end tag '%s'."
+msgstr "Ðевозможно найти закрывающий тег PKCS#8 — «%s»."
+
+#: ../libnm-util/crypto.c:312
+msgid "Not enough memory to store private key data."
+msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… закрытого ключа."
-#: ../libnm-util/crypto.c:286
+#: ../libnm-util/crypto.c:317
+msgid "Failed to decode PKCS#8 private key."
+msgstr "Ðе удалоÑÑŒ раÑшифровать личный ключ PKCS#8."
+
+#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625
#, c-format
msgid "Not enough memory to store certificate data."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ данных Ñертификата."
-#: ../libnm-util/crypto.c:294
-#, c-format
-msgid "Not enough memory to store file data."
-msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ данных из файла."
-
-#: ../libnm-util/crypto.c:324
+#: ../libnm-util/crypto.c:365
#, c-format
msgid "IV must be an even number of bytes in length."
msgstr "Длина ВИ должна быть равна чётному количеÑтву байт."
-#: ../libnm-util/crypto.c:333
+#: ../libnm-util/crypto.c:374
#, c-format
msgid "Not enough memory to store the IV."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ ВИ."
-#: ../libnm-util/crypto.c:344
+#: ../libnm-util/crypto.c:385
#, c-format
msgid "IV contains non-hexadecimal digits."
-msgstr "ВИ включает нешеÑтнадцатеричные цифры."
+msgstr "ВИ включает не шеÑтнадцатеричные цифры."
-#: ../libnm-util/crypto.c:382 ../libnm-util/crypto_gnutls.c:148
-#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171
-#: ../libnm-util/crypto_nss.c:336
+#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147
+#: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167
+#: ../libnm-util/crypto_nss.c:332
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "ÐеизвеÑтный шифр личного ключа «%s»."
-#: ../libnm-util/crypto.c:391
+#: ../libnm-util/crypto.c:432
#, c-format
msgid "Not enough memory to decrypt private key."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñ€Ð°Ñшифровки личного ключа."
-#: ../libnm-util/crypto.c:511
+#: ../libnm-util/crypto.c:497
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ раÑшифрованного личного ключа."
+
+#: ../libnm-util/crypto.c:542
#, c-format
msgid "Unable to determine private key type."
msgstr "Ðе удаётÑÑ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ð¸Ñ‚ÑŒ тип личного ключа."
-#: ../libnm-util/crypto.c:530
+#: ../libnm-util/crypto.c:597
#, c-format
-msgid "Not enough memory to store decrypted private key."
-msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ раÑшифрованного личного ключа."
+msgid "PEM certificate had no start tag '%s'."
+msgstr "Сертификат PEM не имеет тега начала «%s»."
+
+#: ../libnm-util/crypto.c:606
+#, c-format
+msgid "PEM certificate had no end tag '%s'."
+msgstr "Сертификат PEM не имеет тега Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Â«%s»."
-#: ../libnm-util/crypto_gnutls.c:49
+#: ../libnm-util/crypto.c:630
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "Ðе удалоÑÑŒ раÑшифровать Ñертификат."
+
+#: ../libnm-util/crypto_gnutls.c:50
msgid "Failed to initialize the crypto engine."
msgstr "Ðе удалоÑÑŒ инициализировать криптографичеÑкий модуль."
-#: ../libnm-util/crypto_gnutls.c:93
+#: ../libnm-util/crypto_gnutls.c:92
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
msgstr "Ðе удалоÑÑŒ инициализировать модуль MD5: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:156
+#: ../libnm-util/crypto_gnutls.c:155
#, c-format
msgid "Invalid IV length (must be at least %zd)."
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ВИ (минимально %zd)."
-#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#: ../libnm-util/crypto_gnutls.c:164 ../libnm-util/crypto_nss.c:184
#, c-format
msgid "Not enough memory for decrypted key buffer."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ð° раÑшифрованного ключа."
-#: ../libnm-util/crypto_gnutls.c:173
+#: ../libnm-util/crypto_gnutls.c:172
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ шифра декодированиÑ: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:182
+#: ../libnm-util/crypto_gnutls.c:181
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
msgstr "Ðе удалоÑÑŒ Ñоздать Ñимметричный ключ Ð´Ð»Ñ Ñ€Ð°Ñшифровки: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:191
+#: ../libnm-util/crypto_gnutls.c:190
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
msgstr "Ðе удалоÑÑŒ Ñоздать ВИ Ð´Ð»Ñ Ñ€Ð°Ñшифровки: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:200
+#: ../libnm-util/crypto_gnutls.c:199
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
msgstr "Ðе удалоÑÑŒ Ñоздать ВИ Ð´Ð»Ñ Ñ€Ð°Ñшифровки: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#: ../libnm-util/crypto_gnutls.c:209 ../libnm-util/crypto_nss.c:263
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr "Ðе удалоÑÑŒ раÑшифровать личный ключ: Ð½ÐµÐ¿Ñ€ÐµÐ´Ð²Ð¸Ð´ÐµÐ½Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° заполнениÑ."
-#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#: ../libnm-util/crypto_gnutls.c:220 ../libnm-util/crypto_nss.c:274
#, c-format
msgid "Failed to decrypt the private key."
msgstr "Ðе удалоÑÑŒ раÑшифровать личный ключ."
-#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#: ../libnm-util/crypto_gnutls.c:285 ../libnm-util/crypto_nss.c:352
#, c-format
msgid "Could not allocate memory for encrypting."
msgstr "Ðе удалоÑÑŒ выделить памÑÑ‚ÑŒ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ"
-#: ../libnm-util/crypto_gnutls.c:294
+#: ../libnm-util/crypto_gnutls.c:293
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ кода шифрованиÑ: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:303
+#: ../libnm-util/crypto_gnutls.c:302
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
msgstr "Ðе удалоÑÑŒ Ñоздать Ñимметричный ключ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:313
+#: ../libnm-util/crypto_gnutls.c:312
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
msgstr "Ðе удалоÑÑŒ Ñоздать ВИ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:322
+#: ../libnm-util/crypto_gnutls.c:321
#, c-format
msgid "Failed to encrypt the data: %s / %s."
msgstr "Ðе удалоÑÑŒ зашифровать данные: %s / %s."
-#: ../libnm-util/crypto_gnutls.c:362
+#: ../libnm-util/crypto_gnutls.c:361
#, c-format
msgid "Error initializing certificate data: %s"
msgstr "Ошибка инициализации данных Ñертификата: %s"
-#: ../libnm-util/crypto_gnutls.c:384
+#: ../libnm-util/crypto_gnutls.c:383
#, c-format
msgid "Couldn't decode certificate: %s"
msgstr "Ðе удалоÑÑŒ раÑшифровать Ñертификат: %s"
-#: ../libnm-util/crypto_gnutls.c:408
+#: ../libnm-util/crypto_gnutls.c:407
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
msgstr "Ðе удалоÑÑŒ инициализировать декодер PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:421
+#: ../libnm-util/crypto_gnutls.c:420
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
msgstr "Ðе удалоÑÑŒ раÑшифровать файл PKCS#12: %s"
-#: ../libnm-util/crypto_gnutls.c:433
+#: ../libnm-util/crypto_gnutls.c:432
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
msgstr "Ðе удалоÑÑŒ проверить файл PKCS#12: %s"
+#: ../libnm-util/crypto_gnutls.c:460
+#, c-format
+msgid "Couldn't initialize PKCS#8 decoder: %s"
+msgstr "Ðе удалоÑÑŒ инициализировать декодер PKCS#8: %s"
+
+#: ../libnm-util/crypto_gnutls.c:483
+#, c-format
+msgid "Couldn't decode PKCS#8 file: %s"
+msgstr "Ðе удалоÑÑŒ раÑшифровать файл PKCS#12: %s"
+
#: ../libnm-util/crypto_nss.c:56
#, c-format
msgid "Failed to initialize the crypto engine: %d."
msgstr "Ðе удалоÑÑŒ инициализировать криптографичеÑкий модуль: %d."
-#: ../libnm-util/crypto_nss.c:111
+#: ../libnm-util/crypto_nss.c:107
#, c-format
msgid "Failed to initialize the MD5 context: %d."
msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ MD5: %d."
-#: ../libnm-util/crypto_nss.c:179
+#: ../libnm-util/crypto_nss.c:175
#, c-format
msgid "Invalid IV length (must be at least %d)."
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ВИ (минимально %d)."
-#: ../libnm-util/crypto_nss.c:196
+#: ../libnm-util/crypto_nss.c:192
#, c-format
msgid "Failed to initialize the decryption cipher slot."
msgstr "Ðе удалоÑÑŒ инициализировать Ñлот шифра декодированиÑ."
-#: ../libnm-util/crypto_nss.c:206
+#: ../libnm-util/crypto_nss.c:202
#, c-format
msgid "Failed to set symmetric key for decryption."
msgstr "Ðе удалоÑÑŒ задать Ñимметричный ключ раÑшифровки."
-#: ../libnm-util/crypto_nss.c:216
+#: ../libnm-util/crypto_nss.c:212
#, c-format
msgid "Failed to set IV for decryption."
msgstr "Ðе удалоÑÑŒ задать ВИ раÑшифровки."
-#: ../libnm-util/crypto_nss.c:224
+#: ../libnm-util/crypto_nss.c:220
#, c-format
msgid "Failed to initialize the decryption context."
msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ раÑшифровки."
-#: ../libnm-util/crypto_nss.c:237
+#: ../libnm-util/crypto_nss.c:233
#, c-format
msgid "Failed to decrypt the private key: %d."
msgstr "Ðе удалоÑÑŒ раÑшифровать личный ключ: %d."
-#: ../libnm-util/crypto_nss.c:245
+#: ../libnm-util/crypto_nss.c:241
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
msgstr ""
"Ðе удалоÑÑŒ раÑшифровать личный ключ: Ñлишком большой объем раÑшифрованных "
"данных."
-#: ../libnm-util/crypto_nss.c:256
+#: ../libnm-util/crypto_nss.c:252
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
msgstr "Ðе удалоÑÑŒ завершить раÑшифровку личного ключа: %d."
-#: ../libnm-util/crypto_nss.c:364
+#: ../libnm-util/crypto_nss.c:360
#, c-format
msgid "Failed to initialize the encryption cipher slot."
msgstr "Ðе удалоÑÑŒ инициализировать Ñлот шифра декодированиÑ."
-#: ../libnm-util/crypto_nss.c:372
+#: ../libnm-util/crypto_nss.c:368
#, c-format
msgid "Failed to set symmetric key for encryption."
msgstr "Ðе удалоÑÑŒ задать Ñимметричный ключ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ."
-#: ../libnm-util/crypto_nss.c:380
+#: ../libnm-util/crypto_nss.c:376
#, c-format
msgid "Failed to set IV for encryption."
msgstr "Ðе удалоÑÑŒ задать ВИ раÑшифровки."
-#: ../libnm-util/crypto_nss.c:388
+#: ../libnm-util/crypto_nss.c:384
#, c-format
msgid "Failed to initialize the encryption context."
msgstr "Ðе удалоÑÑŒ инициализировать контекÑÑ‚ шифрованиÑ."
-#: ../libnm-util/crypto_nss.c:396
+#: ../libnm-util/crypto_nss.c:392
#, c-format
msgid "Failed to encrypt: %d."
msgstr "Ðе удалоÑÑŒ зашифровать: %d."
-#: ../libnm-util/crypto_nss.c:404
+#: ../libnm-util/crypto_nss.c:400
#, c-format
msgid "Unexpected amount of data after encrypting."
msgstr "Ðепредвиденный объём данных поÑле шифрованиÑ."
-#: ../libnm-util/crypto_nss.c:447
+#: ../libnm-util/crypto_nss.c:443
#, c-format
msgid "Couldn't decode certificate: %d"
msgstr "Ðе удалоÑÑŒ раÑшифровать Ñертификат: %d"
-#: ../libnm-util/crypto_nss.c:482
+#: ../libnm-util/crypto_nss.c:478
#, c-format
msgid "Couldn't convert password to UCS2: %d"
msgstr "Ðе удалоÑÑŒ преобразовать пароль в UCS2: %d"
-#: ../libnm-util/crypto_nss.c:510
+#: ../libnm-util/crypto_nss.c:506
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
msgstr "Ðе удалоÑÑŒ инициализировать декодер PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:519
+#: ../libnm-util/crypto_nss.c:515
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
msgstr "Ðе удалоÑÑŒ раÑшифровать файл PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:528
+#: ../libnm-util/crypto_nss.c:524
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
msgstr "Ðе удалоÑÑŒ проверить файл PKCS#12: %d"
-#: ../libnm-util/crypto_nss.c:557
+#: ../libnm-util/crypto_nss.c:568
msgid "Could not generate random data."
msgstr "Ошибка при генерации Ñлучайных данных."
-#: ../libnm-util/nm-utils.c:1925
+#: ../libnm-util/nm-utils.c:2000
#, c-format
msgid "Not enough memory to make encryption key."
msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° шифрованиÑ."
-#: ../libnm-util/nm-utils.c:2035
+#: ../libnm-util/nm-utils.c:2110
msgid "Could not allocate memory for PEM file creation."
msgstr "Ðе удалоÑÑŒ выделить памÑÑ‚ÑŒ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° PEM."
-#: ../libnm-util/nm-utils.c:2047
+#: ../libnm-util/nm-utils.c:2122
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr "Ðе удалоÑÑŒ выделить памÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ВИ в файл PEM."
-#: ../libnm-util/nm-utils.c:2059
+#: ../libnm-util/nm-utils.c:2134
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
msgstr "Ðе удалоÑÑŒ выделить памÑÑ‚ÑŒ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи зашифрованного ключа в файл PEM."
-#: ../libnm-util/nm-utils.c:2078
+#: ../libnm-util/nm-utils.c:2153
#, c-format
msgid "Could not allocate memory for PEM file data."
msgstr "Ðе удалоÑÑŒ выделить памÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… файла PEM."
-#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
-#: ../src/nm-netlink-monitor.c:653
-#, c-format
-msgid "error processing netlink message: %s"
-msgstr "ошибка обработки ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Разрешить контроль Ñетевых подключений"
-#: ../src/nm-netlink-monitor.c:214
-msgid "error occurred while waiting for data on socket"
-msgstr "произошла ошибка при ожидании данных из Ñокета"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Connection sharing via a protected WiFi network"
+msgstr "СовмеÑтное иÑпользование Ñоединений в закрытой Ñети WiFi"
-#: ../src/nm-netlink-monitor.c:254
-#, c-format
-msgid "unable to connect to netlink for monitoring link status: %s"
-msgstr "не удаётÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑтатуÑа ÑоединениÑ: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Connection sharing via an open WiFi network"
+msgstr "СовмеÑтное иÑпользование Ñоединений в открытой Ñети WiFi"
-#: ../src/nm-netlink-monitor.c:265
-#, c-format
-msgid "unable to enable netlink handle credential passing: %s"
-msgstr "не удаётÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ проверку данных авторизации netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable WiFi devices"
+msgstr "Включить или выключить уÑтройÑтва WiFi"
-#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
-#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable WiMAX mobile broadband devices"
+msgstr "Включить или выключить уÑтройÑтва мобильных Ñетей WiMax"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
+msgid "Enable or disable mobile broadband devices"
+msgstr "Включить или выключить уÑтройÑтва мобильных Ñетей"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "Enable or disable system networking"
+msgstr "Включить или выключить ÑиÑтемные ÑоединениÑ"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "Modify network connections for all users"
+msgstr "Изменить Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупные вÑем пользователÑм"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "Modify persistent system hostname"
+msgstr "Изменить поÑтоÑнное Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° компьютера"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "Modify personal network connections"
+msgstr "Редактировать личные наÑтройки подключениÑ"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid ""
+"Put NetworkManager to sleep or wake it up (should only be used by system "
+"power management)"
msgstr ""
-"не удаётÑÑ Ñоздать идентификатор netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑтатуÑа "
-"ÑоединениÑ: %s"
+"ПеревеÑти NetworkManager в режим Ñна или пробудить его (должно "
+"иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ ÑиÑтемой ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¸Ñ‚Ð°Ð½Ð¸ÐµÐ¼)"
-#: ../src/nm-netlink-monitor.c:376
-#, c-format
-msgid "unable to allocate netlink link cache for monitoring link status: %s"
-msgstr "не удаётÑÑ Ð²Ñ‹Ð´ÐµÐ»Ð¸Ñ‚ÑŒ кÑш netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑтатуÑа ÑоединениÑ: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents control of network connections"
+msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает управление подключениÑми."
-#: ../src/nm-netlink-monitor.c:502
-#, c-format
-msgid "unable to join netlink group: %s"
-msgstr "не удалоÑÑŒ войти в группу netlink: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение и выключение WiFi уÑтройÑтв"
-#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
-#, c-format
-msgid "error updating link cache: %s"
-msgstr "ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÑша ÑоединениÑ: %s"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
+msgid ""
+"System policy prevents enabling or disabling WiMAX mobile broadband devices"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение или выключение уÑтройÑтв мобильной "
+"ÑвÑзи WiMAX"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение или выключение уÑтройÑтв мобильной "
+"ÑвÑзи"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:16
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение и выключение ÑиÑтемных подключений"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:17
+msgid "System policy prevents modification of network settings for all users"
+msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение наÑтроек Ð´Ð»Ñ Ð²Ñех пользователей"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18
+msgid "System policy prevents modification of personal network settings"
+msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение перÑональных наÑтроек Ñети"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:19
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение поÑтоÑнного имени узла компьютера"
-#: ../src/main.c:502
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° не разрешает переводить NetworkManager в режим Ñна или "
+"пробуждать его"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в закрытой "
+"Ñети WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в открытой "
+"Ñети WiFi"
+
+#: ../src/main.c:530
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr ""
"Ðеверный параметр. ИÑпользуйте --help Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° ÑпиÑка возможных "
"параметров.\n"
-#: ../src/main.c:562
+#: ../src/main.c:611
#, c-format
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. ИÑпользуйте --help Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° ÑпиÑка допуÑтимых параметров.\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:325
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62
msgid "# Created by NetworkManager\n"
msgstr "# Создано NetworkManager\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:341
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:69
#, c-format
msgid ""
"# Merged from %s\n"
"\n"
msgstr ""
-"# Совмещено Ñ %s\n"
+"# Объединено Ñ %s\n"
"\n"
-#: ../src/dhcp-manager/nm-dhcp-manager.c:279
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
msgid "no usable DHCP client could be found."
msgstr "не найден клиент DHCP."
-#: ../src/dhcp-manager/nm-dhcp-manager.c:288
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
msgid "'dhclient' could be found."
-msgstr "'dhclient' не найден."
+msgstr "«dhclient» не найден."
-#: ../src/dhcp-manager/nm-dhcp-manager.c:298
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
msgid "'dhcpcd' could be found."
-msgstr "'dhcpcd' не найден."
+msgstr "«dhcpcd» не найден."
-#: ../src/dhcp-manager/nm-dhcp-manager.c:306
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
#, c-format
msgid "unsupported DHCP client '%s'"
-msgstr "клиент DHCP '%s' не поддерживаетÑÑ"
+msgstr "клиент DHCP «%s» не поддерживаетÑÑ"
-#: ../src/logging/nm-logging.c:146
+#: ../src/dns-manager/nm-dns-manager.c:369
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr ""
+"ЗÐМЕЧÐÐИЕ: преобразователь имён glibc не поддерживает более трёх Ñерверов "
+"имён."
+
+#: ../src/dns-manager/nm-dns-manager.c:371
+msgid "The nameservers listed below may not be recognized."
+msgstr "ÐижеперечиÑленные Ñервера имён могут быть пропущены."
+
+#: ../src/logging/nm-logging.c:149
#, c-format
msgid "Unknown log level '%s'"
msgstr "ÐеизвеÑтный уровень Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Â«%s»"
-#: ../src/logging/nm-logging.c:171
+#: ../src/logging/nm-logging.c:174
#, c-format
msgid "Unknown log domain '%s'"
msgstr "ÐеизвеÑтный домен Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Â«%s»"
-#: ../src/dns-manager/nm-dns-manager.c:343
-msgid "NOTE: the libc resolver may not support more than 3 nameservers."
-msgstr ""
-"Ð’ÐИМÐÐИЕ: преобразователь имён glibc не поддерживает более трёх Ñерверов "
-"имён."
+#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355
+#, c-format
+msgid "CDMA connection %d"
+msgstr "Подключение CDMA %d"
-#: ../src/dns-manager/nm-dns-manager.c:345
-msgid "The nameservers listed below may not be recognized."
-msgstr "ÐижеперечиÑленные Ñервера могут быть пропущены."
+#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351
+#, c-format
+msgid "GSM connection %d"
+msgstr "Подключение GSM %d"
-#: ../src/settings/nm-default-wired-connection.c:157
+#: ../src/nm-device-bt.c:326
#, c-format
-msgid "Auto %s"
-msgstr "Ðвто %s"
+msgid "PAN connection %d"
+msgstr "Подключение PAN %d"
-#: ../system-settings/plugins/ifcfg-rh/reader.c:3256
-msgid "System"
-msgstr "СиÑтема"
+#: ../src/nm-device-bt.c:359
+#, c-format
+msgid "DUN connection %d"
+msgstr "Подключение DUN %d"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
-msgid "Connection sharing via a protected WiFi network"
-msgstr "СовмеÑтное иÑпользование Ñоединений в закрытой Ñети WiFi"
+#: ../src/nm-device-ethernet.c:1681
+#, c-format
+msgid "PPPoE connection %d"
+msgstr "Подключение PPoE %d"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
-msgid "Connection sharing via an open WiFi network"
-msgstr "СовмеÑтное иÑпользование Ñоединений в открытой Ñети WiFi"
+#: ../src/nm-device-ethernet.c:1681 ../src/settings/nm-settings-utils.c:50
+#, c-format
+msgid "Wired connection %d"
+msgstr "Проводное Ñоединение %d"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
-msgid "Modify persistent system hostname"
-msgstr "Изменить поÑтоÑнное Ð¸Ð¼Ñ ÑƒÐ·Ð»Ð° компьютера"
+#: ../src/nm-device-olpc-mesh.c:423
+#, c-format
+msgid "Mesh %d"
+msgstr "Mesh %d"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
-msgid "Modify system connections"
-msgstr "Изменить ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑиÑтемы"
+#: ../src/nm-manager.c:655
+#, c-format
+msgid "VPN connection %d"
+msgstr "Подключение VPN %d"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
-msgid "System policy prevents modification of system settings"
-msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение ÑиÑтемных наÑтроек"
+#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
+#: ../src/nm-netlink-monitor.c:653
+#, c-format
+msgid "error processing netlink message: %s"
+msgstr "ошибка обработки ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ netlink: %s"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
-msgid "System policy prevents modification of the persistent system hostname"
-msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение поÑтоÑнного имени узла компьютера"
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "произошла ошибка при ожидании данных из Ñокета"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
-msgid "System policy prevents sharing connections via a protected WiFi network"
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
msgstr ""
-"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в закрытой "
-"Ñети WiFi"
+"не удаётÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ ÑоединениÑ: %s"
-#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
-msgid "System policy prevents sharing connections via an open WiFi network"
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr "не удаётÑÑ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ передачу мандата идентификатора netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
msgstr ""
-"СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в закрытой "
-"Ñети WiFi"
+"не удалоÑÑŒ Ñоздать идентификатор netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ "
+"ÑоединениÑ: %s"
+
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr ""
+"не удалоÑÑŒ выделить кÑш netlink Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑоÑтоÑÐ½Ð¸Ñ ÑоединениÑ: %s"
+
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "не удалоÑÑŒ войти в группу netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
+#, c-format
+msgid "error updating link cache: %s"
+msgstr "ошибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÑша ÑоединениÑ: %s"
+
+#: ../src/settings/plugins/ifcfg-rh/reader.c:3512
+#: ../src/settings/plugins/ifnet/connection_parser.c:51
+msgid "System"
+msgstr "СиÑтема"
+
+#~ msgid "SCOPE"
+#~ msgstr "ОБЛÐСТЬ"
+
+#~ msgid "DBUS-SERVICE"
+#~ msgstr "СЛУЖБРDBUS"
+
+#~ msgid "system"
+#~ msgstr "ÑиÑтема"
+
+#~ msgid "user"
+#~ msgstr "пользователь"
+
+#~ msgid "System connections"
+#~ msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑиÑтем"
+
+#~ msgid "User connections"
+#~ msgstr "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
+
+#~ msgid "Error: Obtaining active connection for '%s' failed."
+#~ msgstr "Ошибка: не удалоÑÑŒ уÑтановить активное Ñоединение Ð´Ð»Ñ Â«%s»"
+#~ msgid "Auto %s"
+#~ msgstr "Ðвто %s"
diff --git a/po/uk.po b/po/uk.po
index 408507108..5bec199e0 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,222 +1,2049 @@
-# Ukrainian translation of NetworkManager
-# Copyright (C) Free Software Foundation, 2005
+# Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the NetworkManager package.
-# Maxim Dziumanenko <dziumanenko@gmail.com>, 2005-2007
#
+# Yuri Chornoivan <yurchor@ukr.net>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: NetworkManager\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-16 15:51+0200\n"
-"PO-Revision-Date: 2007-02-16 03:32+0200\n"
-"Last-Translator: Maxim Dziumanenko <dziumanenko@gmail.com>\n"
-"Language-Team: Ukrainian <uk@li.org>\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-08-19 03:25+0000\n"
+"PO-Revision-Date: 2011-08-19 19:00+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: uk\n"
+"X-Generator: Lokalize 1.2\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:417
-msgid "Cannot add VPN connection"
-msgstr "Ðе вдаєтьÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
+#: ../cli/src/connections.c:64 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:101 ../cli/src/devices.c:114 ../cli/src/devices.c:124
+#: ../cli/src/devices.c:134 ../cli/src/devices.c:148 ../cli/src/devices.c:162
+#: ../cli/src/devices.c:173 ../cli/src/devices.c:184 ../cli/src/devices.c:193
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:224
+msgid "NAME"
+msgstr "ÐÐЗВÐ"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:419
+#. 0
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:79
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:66
+msgid "DEVICES"
+msgstr "ПРИСТРОЇ"
+
+#. 2
+#: ../cli/src/connections.c:67
+msgid "DEFAULT"
+msgstr "ТИПОВЕ"
+
+#. 3
+#: ../cli/src/connections.c:68
+msgid "SPEC-OBJECT"
+msgstr "SPEC-OBJECT"
+
+#. 4
+#: ../cli/src/connections.c:69
+msgid "VPN"
+msgstr "VPN"
+
+#. 5
+#. 6
+#. 2
+#. 11
+#. 5
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:85
+#: ../cli/src/devices.c:69 ../cli/src/devices.c:214 ../cli/src/devices.c:230
+msgid "DBUS-PATH"
+msgstr "DBUS-PATH"
+
+#. 1
+#. 0
+#. 1
+#. 2
+#: ../cli/src/connections.c:80 ../cli/src/devices.c:67
+#: ../cli/src/devices.c:103 ../cli/src/devices.c:227
+msgid "TYPE"
+msgstr "ТИП"
+
+#. 2
+#: ../cli/src/connections.c:81
+msgid "TIMESTAMP"
+msgstr "ЧÐСОВРМІТКÐ"
+
+#. 3
+#: ../cli/src/connections.c:82
+msgid "TIMESTAMP-REAL"
+msgstr "ДІЙСÐРЧÐСОВРМІТКÐ"
+
+#. 4
+#: ../cli/src/connections.c:83
+msgid "AUTOCONNECT"
+msgstr "ÐВТОЗ’ЄДÐÐÐÐЯ"
+
+#. 5
+#: ../cli/src/connections.c:84
+msgid "READONLY"
+msgstr "ЛИШЕ ЧИТÐÐÐЯ"
+
+#: ../cli/src/connections.c:167
+#, c-format
msgid ""
-"No suitable VPN software was found on your system. Contact your system "
-"administrator."
+"Usage: nmcli con { COMMAND | help }\n"
+" COMMAND := { list | status | up | down }\n"
+"\n"
+" list [id <id> | uuid <id>]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [nsp <name>] [--"
+"nowait] [--timeout <timeout>]\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout "
+"<timeout>]\n"
+" down id <id> | uuid <id>\n"
msgstr ""
-"У ÑиÑтемі не вÑтановлено потрібне програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ VPN. Зв'ÑжітьÑÑ Ð· "
-"ÑиÑтемним адмініÑтратором."
+"ВикориÑтаннÑ: nmcli con { КОМÐÐДР| help }\n"
+" КОМÐÐДР:= { list | status | up | down }\n"
+"\n"
+" list [id <id> | uuid <id>]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <інтерфейÑ>] [ap <ап. адреÑа>] [nsp <назва>] "
+"[--"
+"nowait] [--timeout <очікуваннÑ>]\n"
+" up id <id> | uuid <id> [iface <інтерфейÑ>] [ap <ап. адреÑа>] [--nowait] "
+"[--timeout "
+"<очікуваннÑ>]\n"
+" down id <id> | uuid <id>\n"
+
+#: ../cli/src/connections.c:220 ../cli/src/connections.c:544
+#, c-format
+msgid "Error: 'con list': %s"
+msgstr "Помилка: «con list»: %s"
+
+#: ../cli/src/connections.c:222 ../cli/src/connections.c:546
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Помилка: «con list»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/connections.c:230
+msgid "Connection details"
+msgstr "Параметри з’єднаннÑ"
+
+#: ../cli/src/connections.c:419
+msgid "never"
+msgstr "ніколи"
+
+#. "CAPABILITIES"
+#. Print header
+#. "WIFI-PROPERTIES"
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:663
+#: ../cli/src/settings.c:937 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:940 ../cli/src/settings.c:942
+#: ../cli/src/settings.c:1067 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1148
+#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1150
+#: ../cli/src/settings.c:1151 ../cli/src/settings.c:1152
+#: ../cli/src/settings.c:1153 ../cli/src/settings.c:1154
+#: ../cli/src/settings.c:1155 ../cli/src/settings.c:1156
+#: ../cli/src/settings.c:1157 ../cli/src/settings.c:1158
+#: ../cli/src/settings.c:1159 ../cli/src/settings.c:1160
+#: ../cli/src/settings.c:1235
+msgid "yes"
+msgstr "так"
+
+#: ../cli/src/connections.c:420 ../cli/src/connections.c:421
+#: ../cli/src/connections.c:599 ../cli/src/connections.c:601
+#: ../cli/src/devices.c:509 ../cli/src/devices.c:562 ../cli/src/devices.c:687
+#: ../cli/src/devices.c:713 ../cli/src/devices.c:714 ../cli/src/devices.c:715
+#: ../cli/src/devices.c:716 ../cli/src/devices.c:717 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:663 ../cli/src/settings.c:937
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:940
+#: ../cli/src/settings.c:942 ../cli/src/settings.c:1067
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149
+#: ../cli/src/settings.c:1150 ../cli/src/settings.c:1151
+#: ../cli/src/settings.c:1152 ../cli/src/settings.c:1153
+#: ../cli/src/settings.c:1154 ../cli/src/settings.c:1155
+#: ../cli/src/settings.c:1156 ../cli/src/settings.c:1157
+#: ../cli/src/settings.c:1158 ../cli/src/settings.c:1159
+#: ../cli/src/settings.c:1160 ../cli/src/settings.c:1235
+msgid "no"
+msgstr "ні"
+
+#: ../cli/src/connections.c:495
+msgid "Connection list"
+msgstr "СпиÑок з’єднань"
+
+#: ../cli/src/connections.c:508 ../cli/src/connections.c:1368
+#: ../cli/src/connections.c:1383 ../cli/src/connections.c:1392
+#: ../cli/src/connections.c:1402 ../cli/src/connections.c:1414
+#: ../cli/src/connections.c:1509 ../cli/src/devices.c:1190
+#: ../cli/src/devices.c:1200 ../cli/src/devices.c:1314
+#: ../cli/src/devices.c:1321 ../cli/src/devices.c:1534
+#: ../cli/src/devices.c:1541
+#, c-format
+msgid "Error: %s argument is missing."
+msgstr "Помилка: пропущено аргумент %s."
+
+#: ../cli/src/connections.c:521
+#, c-format
+msgid "Error: %s - no such connection."
+msgstr "Помилка: невідоме Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ %s."
+
+#: ../cli/src/connections.c:527 ../cli/src/connections.c:1427
+#: ../cli/src/connections.c:1526 ../cli/src/devices.c:987
+#: ../cli/src/devices.c:1067 ../cli/src/devices.c:1214
+#: ../cli/src/devices.c:1327 ../cli/src/devices.c:1547
+#, c-format
+msgid "Unknown parameter: %s\n"
+msgstr "Ðевідомий параметр: %s\n"
+
+#: ../cli/src/connections.c:536
+#, c-format
+msgid "Error: no valid parameter specified."
+msgstr "Помилка: не вказано коректних параметрів."
+
+#: ../cli/src/connections.c:551 ../cli/src/connections.c:1617
+#: ../cli/src/devices.c:1755 ../cli/src/network-manager.c:463
+#, c-format
+msgid "Error: %s."
+msgstr "Помилка: %s."
+
+#: ../cli/src/connections.c:639
+#, c-format
+msgid "Error: 'con status': %s"
+msgstr "Помилка: «con status»: %s"
+
+#: ../cli/src/connections.c:641
+#, c-format
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Помилка: «con status»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/connections.c:649 ../cli/src/connections.c:1442
+#: ../cli/src/connections.c:1541 ../cli/src/devices.c:1014
+#: ../cli/src/devices.c:1076 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1357 ../cli/src/devices.c:1576
+#, c-format
+msgid "Error: Can't find out if NetworkManager is running: %s."
+msgstr "Помилка: не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸, чи працює NetworkManager: %s."
+
+#: ../cli/src/connections.c:653 ../cli/src/connections.c:1446
+#: ../cli/src/connections.c:1545 ../cli/src/devices.c:1018
+#: ../cli/src/devices.c:1080 ../cli/src/devices.c:1233
+#: ../cli/src/devices.c:1361 ../cli/src/devices.c:1580
+#, c-format
+msgid "Error: NetworkManager is not running."
+msgstr "Помилка: NetworkManager не працює."
+
+#: ../cli/src/connections.c:661
+msgid "Active connections"
+msgstr "Ðктивні з’єднаннÑ"
+
+#: ../cli/src/connections.c:1085
+#, c-format
+msgid "no active connection on device '%s'"
+msgstr "на приÑтрої «%s» немає активних з’єднань"
+
+#: ../cli/src/connections.c:1093
+#, c-format
+msgid "no active connection or device"
+msgstr "немає активних з’єднань або приÑтроїв"
+
+#: ../cli/src/connections.c:1164
+#, c-format
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "приÑтрій «%s» неÑуміÑний зі з’єднаннÑм «%s»"
+
+#: ../cli/src/connections.c:1166
+#, c-format
+msgid "no device found for connection '%s'"
+msgstr "не виÑвлено приÑтрою Ð´Ð»Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«%s»"
+
+#: ../cli/src/connections.c:1177
+msgid "activating"
+msgstr "активаціÑ"
+
+#: ../cli/src/connections.c:1179
+msgid "activated"
+msgstr "активовано"
+
+#: ../cli/src/connections.c:1181 ../cli/src/devices.c:304
+msgid "deactivating"
+msgstr "деактиваціÑ"
+
+#: ../cli/src/connections.c:1184 ../cli/src/connections.c:1207
+#: ../cli/src/connections.c:1240 ../cli/src/devices.c:308
+#: ../cli/src/devices.c:688 ../cli/src/network-manager.c:118
+#: ../cli/src/network-manager.c:180 ../cli/src/network-manager.c:183
+#: ../cli/src/network-manager.c:192 ../cli/src/network-manager.c:298
+#: ../cli/src/network-manager.c:353 ../cli/src/network-manager.c:391
+#: ../cli/src/network-manager.c:430 ../cli/src/settings.c:485
+#: ../cli/src/utils.c:396
+msgid "unknown"
+msgstr "невідомо"
+
+#: ../cli/src/connections.c:1193
+msgid "VPN connecting (prepare)"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN (приготуваннÑ)"
+
+#: ../cli/src/connections.c:1195
+msgid "VPN connecting (need authentication)"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN (потрібне розпізнаваннÑ)"
+
+#: ../cli/src/connections.c:1197
+msgid "VPN connecting"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
+
+#: ../cli/src/connections.c:1199
+msgid "VPN connecting (getting IP configuration)"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN (Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ IP)"
+
+#: ../cli/src/connections.c:1201
+msgid "VPN connected"
+msgstr "VPN з’єднано"
+
+#: ../cli/src/connections.c:1203
+msgid "VPN connection failed"
+msgstr "Ðевдала Ñпроба Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
+
+#: ../cli/src/connections.c:1205
+msgid "VPN disconnected"
+msgstr "VPN роз’єднано"
+
+#: ../cli/src/connections.c:1216
+msgid "unknown reason"
+msgstr "невідома причина"
+
+#: ../cli/src/connections.c:1218
+msgid "none"
+msgstr "немає"
+
+#: ../cli/src/connections.c:1220
+msgid "the user was disconnected"
+msgstr "кориÑтувача від’єднано"
+
+#: ../cli/src/connections.c:1222
+msgid "the base network connection was interrupted"
+msgstr "оÑновне Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею розірвано"
+
+#: ../cli/src/connections.c:1224
+msgid "the VPN service stopped unexpectedly"
+msgstr "Ñлужба VPN неочікувано завершила роботу"
+
+#: ../cli/src/connections.c:1226
+msgid "the VPN service returned invalid configuration"
+msgstr "Ñлужбою VPN повернуто неприпуÑтимі налаштуваннÑ"
+
+#: ../cli/src/connections.c:1228
+msgid "the connection attempt timed out"
+msgstr "перевищено Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ"
+
+#: ../cli/src/connections.c:1230
+msgid "the VPN service did not start in time"
+msgstr "Ñлужбу VPN не було вчаÑно запущено"
+
+#: ../cli/src/connections.c:1232
+msgid "the VPN service failed to start"
+msgstr "не вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñлужбу VPN"
+
+#: ../cli/src/connections.c:1234
+msgid "no valid VPN secrets"
+msgstr "не виÑвлено коректних реєÑтраційних даних VPN"
+
+#: ../cli/src/connections.c:1236
+msgid "invalid VPN secrets"
+msgstr "некоректні реєÑтраційні дані VPN"
+
+#: ../cli/src/connections.c:1238
+msgid "the connection was removed"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ вилучено"
+
+#: ../cli/src/connections.c:1252
+#, c-format
+msgid "state: %s\n"
+msgstr "Ñтан: %s\n"
+
+#: ../cli/src/connections.c:1255 ../cli/src/connections.c:1281
+#, c-format
+msgid "Connection activated\n"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ð¾Ð²Ð°Ð½Ð¾\n"
+
+#: ../cli/src/connections.c:1258
+#, c-format
+msgid "Error: Connection activation failed."
+msgstr "Помилка: невдала Ñпроба активації з’єднаннÑ."
+
+#: ../cli/src/connections.c:1277
+#, c-format
+msgid "state: %s (%d)\n"
+msgstr "Ñтан: %s (%d)\n"
+
+#: ../cli/src/connections.c:1287
+#, c-format
+msgid "Error: Connection activation failed: %s."
+msgstr "Помилка: не вдалоÑÑ Ð°ÐºÑ‚Ð¸Ð²ÑƒÐ²Ð°Ñ‚Ð¸ з’єднаннÑ: %s."
+
+#: ../cli/src/connections.c:1304 ../cli/src/devices.c:1136
+#, c-format
+msgid "Error: Timeout %d sec expired."
+msgstr "Помилка: перевищено Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ %d Ñ."
+
+#: ../cli/src/connections.c:1317
+#, c-format
+msgid "Error: Connection activation failed: %s"
+msgstr "Помилка: не вдалоÑÑ Ð°ÐºÑ‚Ð¸Ð²ÑƒÐ²Ð°Ñ‚Ð¸ з’єднаннÑ: %s"
+
+#: ../cli/src/connections.c:1323
+#, c-format
+msgid "Active connection state: %s\n"
+msgstr "Стан активного з’єднаннÑ: %s\n"
+
+#: ../cli/src/connections.c:1324
+#, c-format
+msgid "Active connection path: %s\n"
+msgstr "ÐдреÑа активного з’єднаннÑ: %s\n"
+
+#: ../cli/src/connections.c:1376 ../cli/src/connections.c:1517
+#, c-format
+msgid "Error: Unknown connection: %s."
+msgstr "Помилка: невідоме з’єднаннÑ: %s."
+
+#: ../cli/src/connections.c:1422 ../cli/src/devices.c:1208
+#, c-format
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Помилка: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Â«%s» Ñ” некоректним."
+
+#: ../cli/src/connections.c:1435 ../cli/src/connections.c:1534
+#, c-format
+msgid "Error: id or uuid has to be specified."
+msgstr "Помилка: мало бути вказано id або uuid."
+
+#: ../cli/src/connections.c:1463
+#, c-format
+msgid "Error: No suitable device found: %s."
+msgstr "Помилка: не знайдено відповідних приÑтроїв: %s."
+
+#: ../cli/src/connections.c:1465
+#, c-format
+msgid "Error: No suitable device found."
+msgstr "Помилка: не знайдено відповідних приÑтроїв."
+
+#: ../cli/src/connections.c:1570
+#, c-format
+msgid "Warning: Connection not active\n"
+msgstr "Помилка: Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” активним\n"
+
+#: ../cli/src/connections.c:1608
+#, c-format
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "Помилка: команда «con» «%s» є некоректною."
+
+#: ../cli/src/connections.c:1673
+#, c-format
+msgid "Error: could not connect to D-Bus."
+msgstr "Помилка: не вдалоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· D-Bus."
+
+#: ../cli/src/connections.c:1680
+#, c-format
+msgid "Error: Could not get system settings."
+msgstr "Помилка: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ параметри ÑиÑтеми."
+
+#: ../cli/src/connections.c:1690
+#, c-format
+msgid "Error: Can't obtain connections: settings service is not running."
+msgstr ""
+"Помилка: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑпиÑок з’єднань: Ñлужба параметрів не працює."
+
+#. 0
+#. 9
+#. 3
+#: ../cli/src/devices.c:66 ../cli/src/devices.c:102 ../cli/src/devices.c:212
+#: ../cli/src/devices.c:228
+msgid "DEVICE"
+msgstr "ПРИСТРІЙ"
+
+#. 1
+#. 4
+#. 1
+#: ../cli/src/devices.c:68 ../cli/src/devices.c:106
+#: ../cli/src/network-manager.c:39
+msgid "STATE"
+msgstr "СТÐÐ"
+
+#: ../cli/src/devices.c:78
+msgid "GENERAL"
+msgstr "ЗÐГÐЛЬÐІ"
+
+#. 0
+#: ../cli/src/devices.c:79
+msgid "CAPABILITIES"
+msgstr "МОЖЛИВОСТІ"
+
+#. 1
+#: ../cli/src/devices.c:80
+msgid "WIFI-PROPERTIES"
+msgstr "ПÐРÐМЕТРИ WIFI"
+
+#. 2
+#: ../cli/src/devices.c:81
+msgid "AP"
+msgstr "ТД"
+
+#. 3
+#: ../cli/src/devices.c:82
+msgid "WIRED-PROPERTIES"
+msgstr "ПÐРÐМЕТРИ WIRED"
+
+#. 4
+#: ../cli/src/devices.c:83
+msgid "WIMAX-PROPERTIES"
+msgstr "ПÐРÐМЕТРИ WIMAX"
+
+#. 5
+#. 0
+#: ../cli/src/devices.c:84 ../cli/src/devices.c:225
+msgid "NSP"
+msgstr "NSP"
+
+#. 6
+#: ../cli/src/devices.c:85
+msgid "IP4-SETTINGS"
+msgstr "ПÐРÐМЕТРИ IP4"
+
+#. 7
+#: ../cli/src/devices.c:86
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 8
+#: ../cli/src/devices.c:87
+msgid "IP6-SETTINGS"
+msgstr "ПÐРÐМЕТРИ IP6"
+
+#. 9
+#: ../cli/src/devices.c:88
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:104
+msgid "DRIVER"
+msgstr "ДРÐЙВЕР"
+
+#. 3
+#: ../cli/src/devices.c:105
+msgid "HWADDR"
+msgstr "ÐП.ÐДРЕСÐ"
+
+#. 0
+#: ../cli/src/devices.c:115
+msgid "CARRIER-DETECT"
+msgstr "ВИЗÐ.ÐОСІЯ"
+
+#. 1
+#: ../cli/src/devices.c:116
+msgid "SPEED"
+msgstr "ШВИДКІСТЬ"
+
+#. 0
+#: ../cli/src/devices.c:125
+msgid "CARRIER"
+msgstr "ÐОСІЙ"
+
+#. 0
+#: ../cli/src/devices.c:135
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:136
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:137
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:138
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:139
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:149
+msgid "CTR-FREQ"
+msgstr "CTR-FREQ"
+
+#. 1
+#: ../cli/src/devices.c:150
+msgid "RSSI"
+msgstr "RSSI"
+
+#. 2
+#: ../cli/src/devices.c:151
+msgid "CINR"
+msgstr "CINR"
+
+#. 3
+#: ../cli/src/devices.c:152
+msgid "TX-POW"
+msgstr "TX-POW"
+
+#. 4
+#: ../cli/src/devices.c:153
+msgid "BSID"
+msgstr "BSID"
+
+#. 0
+#: ../cli/src/devices.c:163 ../cli/src/devices.c:174
+msgid "ADDRESS"
+msgstr "ÐДРЕСÐ"
+
+#. 1
+#: ../cli/src/devices.c:164 ../cli/src/devices.c:175
+msgid "PREFIX"
+msgstr "ПРЕФІКС"
+
+#. 2
+#: ../cli/src/devices.c:165 ../cli/src/devices.c:176
+msgid "GATEWAY"
+msgstr "ШЛЮЗ"
+
+#. 0
+#: ../cli/src/devices.c:185 ../cli/src/devices.c:194
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:203
+msgid "SSID"
+msgstr "SSID"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:461
-msgid "Cannot import VPN connection"
-msgstr "Ðе вдаєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
+#. 1
+#: ../cli/src/devices.c:204
+msgid "BSSID"
+msgstr "BSSID"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:463
+#. 2
+#: ../cli/src/devices.c:205
+msgid "MODE"
+msgstr "РЕЖИМ"
+
+#. 3
+#: ../cli/src/devices.c:206
+msgid "FREQ"
+msgstr "ЧÐСТОТÐ"
+
+#. 4
+#: ../cli/src/devices.c:207
+msgid "RATE"
+msgstr "ШВИДКІСТЬ"
+
+#. 5
+#. 1
+#: ../cli/src/devices.c:208 ../cli/src/devices.c:226
+msgid "SIGNAL"
+msgstr "СИГÐÐЛ"
+
+#. 6
+#: ../cli/src/devices.c:209
+msgid "SECURITY"
+msgstr "ЗÐХИСТ"
+
+#. 7
+#: ../cli/src/devices.c:210
+msgid "WPA-FLAGS"
+msgstr "ПРÐПОРЦІ WPA"
+
+#. 8
+#: ../cli/src/devices.c:211
+msgid "RSN-FLAGS"
+msgstr "ПРÐПОРЦІ RSN"
+
+#. 10
+#. 4
+#: ../cli/src/devices.c:213 ../cli/src/devices.c:229
+msgid "ACTIVE"
+msgstr "ÐКТИВÐИЙ"
+
+#: ../cli/src/devices.c:256
#, c-format
msgid ""
-"Cannot find suitable software for VPN connection type '%s' to import the "
-"file '%s'. Contact your system administrator."
+"Usage: nmcli dev { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | list | disconnect | wifi | wimax }\n"
+"\n"
+" COMMAND := { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <iface>]\n"
+" disconnect iface <iface> [--nowait] [--timeout <timeout>]\n"
+" wifi [list [iface <iface>] [hwaddr <hwaddr>]]\n"
+" wimax [list [iface <iface>] [nsp <name>]]\n"
+"\n"
msgstr ""
-"Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідне програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·'єднань VPN типу '%"
-"s', щоб імпортувати файл '%s'. Зв'ÑжітьÑÑ Ð· ÑиÑтемним адмініÑтратором."
+"ВикориÑтаннÑ: nmcli dev { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | list | disconnect | wifi | wimax }\n"
+"\n"
+" КОМÐÐДР:= { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <інтерфейÑ>]\n"
+" disconnect iface <інтерфейÑ> [--nowait] [--timeout <очікуваннÑ>]\n"
+" wifi [list [iface <інтерфейÑ>] [hwaddr <ап. адреÑа>]]\n"
+" wimax [list [iface <інтерфейÑ>] [nsp <назва>]]\n"
+"\n"
+
+#: ../cli/src/devices.c:284
+msgid "unmanaged"
+msgstr "некерований"
+
+#: ../cli/src/devices.c:286
+msgid "unavailable"
+msgstr "недоÑтупний"
+
+#: ../cli/src/devices.c:288 ../cli/src/network-manager.c:115
+msgid "disconnected"
+msgstr "роз'єднано"
+
+#: ../cli/src/devices.c:290
+msgid "connecting (prepare)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (приготуваннÑ)"
+
+#: ../cli/src/devices.c:292
+msgid "connecting (configuring)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (налаштовуваннÑ)"
+
+#: ../cli/src/devices.c:294
+msgid "connecting (need authentication)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (потрібне розпізнаваннÑ)"
+
+#: ../cli/src/devices.c:296
+msgid "connecting (getting IP configuration)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ IP)"
+
+#: ../cli/src/devices.c:298
+msgid "connecting (checking IP connectivity)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (перевірка можливоÑÑ‚Ñ– з’єднаннÑ)"
+
+#: ../cli/src/devices.c:300
+msgid "connecting (starting secondary connections)"
+msgstr "Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ (вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ñ€ÑƒÐ³Ð¾Ñ€Ñдних з’єднань)"
+
+#: ../cli/src/devices.c:302 ../cli/src/network-manager.c:111
+msgid "connected"
+msgstr "з'єднано"
+
+#: ../cli/src/devices.c:306
+msgid "connection failed"
+msgstr "невдала Ñпроба з’єднаннÑ"
+
+#: ../cli/src/devices.c:331 ../cli/src/devices.c:341 ../cli/src/devices.c:501
+#: ../cli/src/devices.c:545
+msgid "Unknown"
+msgstr "Ðевідомо"
+
+#: ../cli/src/devices.c:374
+msgid "(none)"
+msgstr "(немає)"
+
+#: ../cli/src/devices.c:399
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: помилка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑи IP4 0x%X"
+
+#: ../cli/src/devices.c:470
+#, c-format
+msgid "%u MHz"
+msgstr "%u МГц"
+
+#: ../cli/src/devices.c:471
+#, c-format
+msgid "%u MB/s"
+msgstr "%u МБ/Ñ"
+
+#: ../cli/src/devices.c:480
+msgid "Encrypted: "
+msgstr "Зашифровано: "
+
+#: ../cli/src/devices.c:485
+msgid "WEP "
+msgstr "WEP "
+
+#: ../cli/src/devices.c:487
+msgid "WPA "
+msgstr "WPA "
+
+#: ../cli/src/devices.c:489
+msgid "WPA2 "
+msgstr "WPA2 "
+
+#: ../cli/src/devices.c:492
+msgid "Enterprise "
+msgstr "Enterprise "
+
+#: ../cli/src/devices.c:501
+msgid "Ad-Hoc"
+msgstr "Ad-Hoc"
+
+#: ../cli/src/devices.c:501
+msgid "Infrastructure"
+msgstr "ІнфраÑтруктура"
+
+#: ../cli/src/devices.c:536
+msgid "Home"
+msgstr "Домівка"
+
+#: ../cli/src/devices.c:539
+msgid "Partner"
+msgstr "Партнер"
+
+#: ../cli/src/devices.c:542
+msgid "Roaming"
+msgstr "Роумінг"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:580
+#: ../cli/src/devices.c:612
#, c-format
-msgid "Error retrieving VPN connection '%s'"
-msgstr "Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN '%s'"
+msgid "Error: 'dev list': %s"
+msgstr "Помилка: «dev list»: %s"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:583
+#: ../cli/src/devices.c:614
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Помилка: «dev list»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/devices.c:623
+msgid "Device details"
+msgstr "Дані щодо приÑтрою"
+
+#: ../cli/src/devices.c:657 ../cli/src/devices.c:1152 ../cli/src/utils.c:342
+msgid "(unknown)"
+msgstr "(невідомо)"
+
+#: ../cli/src/devices.c:658
+msgid "unknown)"
+msgstr "невідомо)"
+
+#: ../cli/src/devices.c:684
+#, c-format
+msgid "%u Mb/s"
+msgstr "%u Мб/Ñ"
+
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:757
+msgid "on"
+msgstr "увімкн."
+
+#: ../cli/src/devices.c:757
+msgid "off"
+msgstr "вимкн."
+
+#: ../cli/src/devices.c:1004
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Помилка: «dev status»: %s"
+
+#: ../cli/src/devices.c:1006
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Помилка: «dev status»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/devices.c:1029
+msgid "Status of devices"
+msgstr "Стан приÑтрою"
+
+#: ../cli/src/devices.c:1060
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "Помилка: не вказано аргументу «%s»."
+
+#: ../cli/src/devices.c:1101 ../cli/src/devices.c:1253
+#: ../cli/src/devices.c:1389 ../cli/src/devices.c:1608
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "Помилка: не знайдено приÑтрій «%s»."
+
+#: ../cli/src/devices.c:1124
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Виконано: приÑтрій «%s» уÑпішно від’єднано."
+
+#: ../cli/src/devices.c:1149
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Помилка: невдала Ñпроба Ð²Ñ–Ð´â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Â«%s» (%s): %s"
+
+#: ../cli/src/devices.c:1157
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "Стан приÑтрою: %d (%s)\n"
+
+#: ../cli/src/devices.c:1222
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Помилка: мало бути вказано інтерфейÑ."
+
+#: ../cli/src/devices.c:1347
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Помилка: «dev wifi»: %s"
+
+#: ../cli/src/devices.c:1349
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Помилка: «dev wifi»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/devices.c:1372
+msgid "WiFi scan list"
+msgstr "СпиÑок ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ WiFi"
+
+#: ../cli/src/devices.c:1409 ../cli/src/devices.c:1463
+#: ../cli/src/devices.c:1670
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Помилка: не знайдено точки доÑтупу з апаратною адреÑою «%s»."
+
+#: ../cli/src/devices.c:1426
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "Помилка: приÑтрій «%s» не Ñ” приÑтроєм WiFi."
+
+#: ../cli/src/devices.c:1490
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "Помилка: команда «dev wifi» «%s» є некоректною."
+
+#: ../cli/src/devices.c:1566
+#, c-format
+msgid "Error: 'dev wimax': %s"
+msgstr "Помилка: «dev wimax»: %s"
+
+#: ../cli/src/devices.c:1568
+#, c-format
+msgid "Error: 'dev wimax': %s; allowed fields: %s"
+msgstr "Помилка: «dev wimax»: %s; дозволені полÑ: %s"
+
+#: ../cli/src/devices.c:1591
+msgid "WiMAX NSP list"
+msgstr "СпиÑок WiMAX NSP"
+
+#: ../cli/src/devices.c:1628
+#, c-format
+msgid "Error: NSP with name '%s' not found."
+msgstr "Помилка: не знайдено NSP з назвою «%s»."
+
+#: ../cli/src/devices.c:1639
+#, c-format
+msgid "Error: Device '%s' is not a WiMAX device."
+msgstr "Помилка: приÑтрій «%s» не Ñ” приÑтроєм WiMAX."
+
+#: ../cli/src/devices.c:1697
+#, c-format
+msgid "Error: 'dev wimax' command '%s' is not valid."
+msgstr "Помилка: команда «dev wimax» «%s» є некоректною."
+
+#: ../cli/src/devices.c:1747
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "Помилка: команда «dev» «%s» є некоректною."
+
+#: ../cli/src/network-manager.c:37
+msgid "RUNNING"
+msgstr "ВИКОÐУЄТЬСЯ"
+
+#. 0
+#: ../cli/src/network-manager.c:38
+msgid "VERSION"
+msgstr "ВЕРСІЯ"
+
+#. 2
+#: ../cli/src/network-manager.c:40
+msgid "NET-ENABLED"
+msgstr "NET-ENABLED"
+
+#. 3
+#: ../cli/src/network-manager.c:41
+msgid "WIFI-HARDWARE"
+msgstr "ОБЛÐДÐÐÐÐЯ WIFI"
+
+#. 4
+#: ../cli/src/network-manager.c:42
+msgid "WIFI"
+msgstr "WIFI"
+
+#. 5
+#: ../cli/src/network-manager.c:43
+msgid "WWAN-HARDWARE"
+msgstr "ОБЛÐДÐÐÐÐЯ WWAN"
+
+#. 6
+#: ../cli/src/network-manager.c:44
+msgid "WWAN"
+msgstr "WWAN"
+
+#. 7
+#: ../cli/src/network-manager.c:45
+msgid "WIMAX-HARDWARE"
+msgstr "ОБЛÐДÐÐÐÐЯ WIMAX"
+
+#. 8
+#: ../cli/src/network-manager.c:46
+msgid "WIMAX"
+msgstr "WIMAX"
+
+#: ../cli/src/network-manager.c:74
#, c-format
msgid ""
-"Could not find the UI files for VPN connection type '%s'. Contact your "
-"system administrator."
+"Usage: nmcli nm { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+" wimax [on|off]\n"
+"\n"
+msgstr ""
+"ВикориÑтаннÑ: nmcli nm { КОМÐÐДР| help }\n"
+"\n"
+" КОМÐÐДР:= { status | enable | sleep | wifi | wwan | wimax }\n"
+"\n"
+" КОМÐÐДР:= { status | enable | sleep | wifi | wwan }\n"
+"\n"
+" status\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
+" wifi [on|off]\n"
+" wwan [on|off]\n"
+" wimax [on|off]\n"
+"\n"
+
+#: ../cli/src/network-manager.c:103
+msgid "asleep"
+msgstr "приÑпаний"
+
+#: ../cli/src/network-manager.c:105
+msgid "connecting"
+msgstr "з’єднуєтьÑÑ"
+
+#: ../cli/src/network-manager.c:107
+msgid "connected (local only)"
+msgstr "з’єднуєтьÑÑ (локально)"
+
+#: ../cli/src/network-manager.c:109
+msgid "connected (site only)"
+msgstr "з’єднано (на вузлі)"
+
+#: ../cli/src/network-manager.c:113
+msgid "disconnecting"
+msgstr "роз’єднуєтьÑÑ"
+
+#: ../cli/src/network-manager.c:153
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Помилка: «nm status»: %s"
+
+#: ../cli/src/network-manager.c:155
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Помилка: «nm status»: %s; дозволені полÑ: %s"
+
+#. create NMClient
+#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
+msgid "enabled"
+msgstr "увімкнено"
+
+#: ../cli/src/network-manager.c:168 ../cli/src/network-manager.c:169
+#: ../cli/src/network-manager.c:170 ../cli/src/network-manager.c:171
+#: ../cli/src/network-manager.c:172 ../cli/src/network-manager.c:174
+#: ../cli/src/network-manager.c:175 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:351 ../cli/src/network-manager.c:389
+#: ../cli/src/network-manager.c:428
+msgid "disabled"
+msgstr "вимкнено"
+
+#: ../cli/src/network-manager.c:188
+msgid "NetworkManager status"
+msgstr "Стан NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:191
+msgid "running"
+msgstr "виконуєтьÑÑ"
+
+#: ../cli/src/network-manager.c:191
+msgid "not running"
+msgstr "не виконуєтьÑÑ"
+
+#: ../cli/src/network-manager.c:222 ../cli/src/utils.c:322
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr ""
+"Помилка: не вдалоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· ÑиÑтемним каналом обміну даними: %s"
+
+#: ../cli/src/network-manager.c:233
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Помилка: не вдалоÑÑ Ñтворити прокÑÑ–-об’єкт D-Bus."
+
+#: ../cli/src/network-manager.c:239
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "Помилка у затримці: %s"
+
+#: ../cli/src/network-manager.c:283 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:376 ../cli/src/network-manager.c:415
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr ""
+"Помилка: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«--fields» «%s» не можна викориÑтовувати тут; дозволені "
+"полÑ: %s"
+
+#: ../cli/src/network-manager.c:291
+msgid "Networking enabled"
+msgstr "Мережу увімкнено"
+
+#: ../cli/src/network-manager.c:307
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr ""
+"Помилка: некоректний параметр «enable»: «%s»; мало бути «true» або «false»."
+
+#: ../cli/src/network-manager.c:317
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Помилка: Ñтан приÑиплÑÐ½Ð½Ñ Ð½Ðµ екÑпортовано NetworkManager."
+
+#: ../cli/src/network-manager.c:325
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr ""
-"Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ файли графічного інтерфейÑу Ð´Ð»Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN типу '%s'. "
-"Зв'ÑжітьÑÑ Ð· ÑиÑтемним адмініÑтратором."
+"Помилка: некоректний параметр «sleep»: «%s»; мало бути «true» або «false»."
+
+#: ../cli/src/network-manager.c:346
+msgid "WiFi enabled"
+msgstr "WiFi увімкнено"
+
+#: ../cli/src/network-manager.c:362
+#, c-format
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "Помилка: некоректний параметр «wifi»: «%s»."
+
+#: ../cli/src/network-manager.c:384
+msgid "WWAN enabled"
+msgstr "WWAN увімкнено"
+
+#: ../cli/src/network-manager.c:400
+#, c-format
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "Помилка: некоректний параметр «wwan»: «%s»."
+
+#: ../cli/src/network-manager.c:423
+msgid "WiMAX enabled"
+msgstr "WiMAX увімкнено"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:727
+#: ../cli/src/network-manager.c:439
#, c-format
-msgid "Delete VPN connection \"%s\"?"
-msgstr "Видалити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN \"%s\"?"
+msgid "Error: invalid 'wimax' parameter: '%s'."
+msgstr "Помилка: некоректний параметр «wimax»: «%s»."
-#: ../gnome/vpn-properties/nm-vpn-properties.c:730
+#: ../cli/src/network-manager.c:452
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "Помилка: команда «nm» «%s» є некоректною."
+
+#: ../cli/src/nmcli.c:64
#, c-format
msgid ""
-"All information about the VPN connection \"%s\" will be lost and you may "
-"need your system administrator to provide information to create a new "
-"connection."
-msgstr ""
-"УÑÑ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN \"%s\" буде втрачена. Можливо, вам "
-"доведетьÑÑ Ð·Ð²ÐµÑ€Ð½ÑƒÑ‚Ð¸ÑÑŒ до ÑиÑтемного адмініÑтратора за інформацією Ð´Ð»Ñ "
-"ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ з'єднаннÑ."
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:924
-msgid "Unable to load"
-msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:926
-msgid "Cannot find some needed resources (the glade file)!"
-msgstr "Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ деÑкі необхідні реÑурÑи (не знайдено файл glade)!"
-
-#. druid_window = GTK_DIALOG (gtk_dialog_new_with_buttons (_("Create VPN Connection"),
-#. NULL,
-#. GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
-#. GTK_STOCK_CANCEL,
-#. GTK_RESPONSE_REJECT,
-#. GTK_STOCK_APPLY,
-#. GTK_RESPONSE_ACCEPT,
-#. NULL));
-#: ../gnome/vpn-properties/nm-vpn-properties.c:1081
-msgid "Create VPN Connection"
-msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
-
-#. gtk_container_add (GTK_CONTAINER (druid_window->vbox), GTK_WIDGET(gtk_label_new("Some label")));
-#. gtk_box_pack_start (GTK_BOX (druid_window->vbox), GTK_WIDGET(druid), TRUE,TRUE,0);
-#. gtk_box_pack_start (GTK_BOX (druid_window->vbox), GTK_WIDGET(gtk_label_new("Some label")), TRUE,TRUE,0);
-#. toplevel = gtk_widget_get_toplevel (GTK_WIDGET (druid));
-#. gtk_signal_connect (GTK_OBJECT (toplevel), "delete_event", GTK_SIGNAL_FUNC (vpn_window_close), NULL);
-#. make the druid window modal wrt. our main window
-#. gtk_window_set_modal (druid_window, TRUE);
-#. gtk_window_set_transient_for (GTK_WINDOW(druid_window), GTK_WINDOW (dialog));
-#. Edit dialog
-#: ../gnome/vpn-properties/nm-vpn-properties.c:1099
-msgid "Edit VPN Connection"
-msgstr "Правка з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:1
-msgid "Add a new VPN connection"
-msgstr "Додати нове з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:2
-msgid "Delete the selected VPN connection"
-msgstr "Видалити виділені з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:3
-msgid "E_xport"
-msgstr "_ЕкÑпорт"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:4
-msgid "Edit the selected VPN connection"
-msgstr "Редагувати виділене з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:5
-msgid "Export the VPN settings to a file"
-msgstr "ЕкÑпортувати параметри VPN у файл"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:6
-msgid "Export the selected VPN connection to a file"
-msgstr "ЕкÑпортувати виділене з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN у файл"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:7
-msgid "Manage Virtual Private Network Connections"
-msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·'єднаннÑми VPN"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:8
-msgid "VPN Connections"
-msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ VPN"
-
-#: ../src/nm-ap-security-wep.c:52
-msgid "40-bit WEP"
-msgstr "40-bit WEP"
-
-#: ../src/nm-ap-security-wep.c:54
-msgid "104-bit WEP"
-msgstr "104-bit WEP"
-
-#: ../src/nm-ap-security-wpa-psk.c:51
-msgid "WPA TKIP"
-msgstr "WPA TKIP"
-
-#: ../src/nm-ap-security-wpa-psk.c:53
-msgid "WPA CCMP"
-msgstr "WPA CCMP"
-
-#: ../src/nm-ap-security-wpa-psk.c:55
-msgid "WPA Automatic"
-msgstr "WPA Automatic"
-
-#: ../src/nm-ap-security-wpa-psk.c:60
-msgid "WPA2 TKIP"
-msgstr "WPA2 TKIP"
-
-#: ../src/nm-ap-security-wpa-psk.c:62
-msgid "WPA2 CCMP"
-msgstr "WPA2 CCMP"
-
-#: ../src/nm-ap-security-wpa-psk.c:64
-msgid "WPA2 Automatic"
-msgstr "WPA2 Automatic"
-
-#: ../src/nm-ap-security.c:326
-msgid "none"
-msgstr "немає"
+"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
+"\n"
+"OPTIONS\n"
+" -t[erse] terse output\n"
+" -p[retty] pretty output\n"
+" -m[ode] tabular|multiline output mode\n"
+" -f[ields] <field1,field2,...>|all|common specify fields to output\n"
+" -e[scape] yes|no escape columns separators in "
+"values\n"
+" -n[ocheck] don't check nmcli and "
+"NetworkManager versions\n"
+" -v[ersion] show program version\n"
+" -h[elp] print this help\n"
+"\n"
+"OBJECT\n"
+" nm NetworkManager status\n"
+" con NetworkManager connections\n"
+" dev devices managed by NetworkManager\n"
+"\n"
+msgstr ""
+"ВикориÑтаннÑ: %s [ПÐРÐМЕТРИ] ОБ’ЄКТ { КОМÐÐДР| help }\n"
+"\n"
+"ПÐРÐМЕТРИ\n"
+" -t[erse] Ñкорочене виведеннÑ\n"
+" -p[retty] форматоване виведеннÑ\n"
+" -m[ode] tabular|multiline режим виведеннÑ\n"
+" -f[ields] <поле1,поле2,...>|all|common вказати Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ\n"
+" -e[scape] yes|no вилучати роздільники Ñтовпчиків "
+"у значеннÑÑ…\n"
+" -n[ocheck] не перевірÑти верÑÑ–Ñ— nmcli Ñ– "
+"NetworkManager\n"
+" -v[ersion] показати верÑÑ–ÑŽ програми\n"
+" -h[elp] вивеÑти цю довідку\n"
+"\n"
+"ОБ’ЄКТ\n"
+" nm Ñтан NetworkManager\n"
+" con Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ NetworkManager\n"
+" dev приÑтрої, керовані NetworkManager\n"
+"\n"
+
+#: ../cli/src/nmcli.c:109
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Помилка: невідомий об’єкт «%s», Ñпробуйте «nmcli help»."
+
+#: ../cli/src/nmcli.c:139
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Помилка: параметр «--terse» вказано двічі."
-#: ../src/nm-netlink-monitor.c:174
+#: ../cli/src/nmcli.c:144
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr ""
+"Помилка: параметр «--terse» Ñ– «--pretty» не можна викориÑтовувати одночаÑно."
+
+#: ../cli/src/nmcli.c:152
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Помилка: параметр «--pretty» вказано двічі."
+
+#: ../cli/src/nmcli.c:157
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr ""
+"Помилка: параметр «--pretty» Ñ– «--terse» не можна викориÑтовувати одночаÑно"
+
+#: ../cli/src/nmcli.c:167 ../cli/src/nmcli.c:183
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "Помилка: не вказано аргумент параметра «%s»."
+
+#: ../cli/src/nmcli.c:176 ../cli/src/nmcli.c:192
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Помилка: «%s» не є коректним аргументом «%s»."
+
+#: ../cli/src/nmcli.c:199
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Помилка: не вказано полів Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² «%s»."
+
+#: ../cli/src/nmcli.c:207
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "інÑтрумент nmcli, верÑÑ–Ñ %s\n"
+
+#: ../cli/src/nmcli.c:213
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "Помилка: невідомий параметр «%s», Ñпробуйте «nmcli -help»."
+
+#: ../cli/src/nmcli.c:232
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "Отримано Ñигнал %d, Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸â€¦"
+
+#: ../cli/src/nmcli.c:257
+msgid "Error: Could not create NMClient object."
+msgstr "Помилка: не вдалоÑÑ Ñтворити об’єкт NMClient."
+
+#: ../cli/src/nmcli.c:273
+msgid "Success"
+msgstr "Виконано"
+
+#: ../cli/src/settings.c:423
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (16-ковий ASCII-ключ)"
+
+#: ../cli/src/settings.c:425
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128-бітовий пароль)"
+
+#: ../cli/src/settings.c:428
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (невідомо)"
+
+#: ../cli/src/settings.c:454
+msgid "0 (unknown)"
+msgstr "0 (невідомо)"
+
+#: ../cli/src/settings.c:460
+msgid "any, "
+msgstr "будь-Ñкий, "
+
+#: ../cli/src/settings.c:462
+msgid "900 MHz, "
+msgstr "900 МГц, "
+
+#: ../cli/src/settings.c:464
+msgid "1800 MHz, "
+msgstr "1800 МГц, "
+
+#: ../cli/src/settings.c:466
+msgid "1900 MHz, "
+msgstr "1900 МГц, "
+
+#: ../cli/src/settings.c:468
+msgid "850 MHz, "
+msgstr "800 МГц, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 МГц, "
+
+#: ../cli/src/settings.c:472
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 МГц, "
+
+#: ../cli/src/settings.c:474
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 МГц, "
+
+#: ../cli/src/settings.c:476
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 МГц, "
+
+#: ../cli/src/settings.c:478
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 МГц, "
+
+#: ../cli/src/settings.c:480
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 МГц, "
+
+#: ../cli/src/settings.c:482
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 МГц, "
+
+#: ../cli/src/settings.c:566 ../cli/src/settings.c:732
+msgid "auto"
+msgstr "авто"
+
+#: ../cli/src/settings.c:727 ../cli/src/settings.c:730
+#: ../cli/src/settings.c:731 ../cli/src/utils.c:176
+msgid "not set"
+msgstr "не вÑтановлено"
+
+#: ../cli/src/utils.c:128
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "поле «%s» має бути єдиним"
+
+#: ../cli/src/utils.c:131
+#, c-format
+msgid "invalid field '%s'"
+msgstr "некоректне поле «%s»"
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «--terse» потребує Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«--fields»"
+
+#: ../cli/src/utils.c:154
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr ""
+"Параметр «--terse» потребує певних значень параметра «--fields», а не «%s»"
+
+#: ../cli/src/utils.c:333
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus"
+msgstr ""
+"Помилка: не вдалоÑÑ Ñтворити прокÑÑ–-об’єкт D-Bus Ð´Ð»Ñ org.freedesktop.DBus"
+
+#: ../cli/src/utils.c:341
+#, c-format
+msgid "Error: NameHasOwner request failed: %s"
+msgstr "Помилка: невдала Ñпроба запиту NameHasOwner: %s"
+
+#: ../cli/src/utils.c:386
#, c-format
msgid ""
-"unable to create netlink socket for monitoring wired ethernet devices - %s"
+"Warning: nmcli (%s) and NetworkManager (%s) versions don't match. Use --"
+"nocheck to suppress the warning.\n"
msgstr ""
-"не вдаєтьÑÑ Ñтворити мережний Ñокет Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ приÑтрою ethernet - %s"
+"Увага: верÑÑ–Ñ— nmcli (%s) Ñ– NetworkManager (%s) не збігаютьÑÑ. СкориÑтайтеÑÑ "
+"параметром --nocheck Ð´Ð»Ñ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ попередженнÑ.\n"
-#: ../src/nm-netlink-monitor.c:192
+#: ../cli/src/utils.c:395
#, c-format
msgid ""
-"unable to bind to netlink socket for monitoring wired ethernet devices - %s"
+"Error: nmcli (%s) and NetworkManager (%s) versions don't match. Force "
+"execution using --nocheck, but the results are unpredictable."
msgstr ""
-"не вдаєтьÑÑ Ð¿Ñ€Ð¸Ð²'ÑзатиÑÑŒ до мережного Ñокету Ð´Ð»Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽ приÑтрою ethernet "
-"- %s"
+"Помилка: верÑÑ–Ñ— nmcli (%s) Ñ– NetworkManager (%s) не збігаютьÑÑ. Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑку у "
+"примуÑовому режимі ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --nocheck, але результати можуть "
+"бути непередбачуваними.\n."
+
+#: ../libnm-util/crypto.c:133
+#, c-format
+msgid "PEM key file had no end tag '%s'."
+msgstr "У файлі ключа PEM не міÑтитьÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ теґу «%s»."
+
+#: ../libnm-util/crypto.c:146
+#, c-format
+msgid "Doesn't look like a PEM private key file."
+msgstr "Ймовірно, цей файл не є файлом закритого ключа PEM."
+
+#: ../libnm-util/crypto.c:154
+#, c-format
+msgid "Not enough memory to store PEM file data."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… файла PEM."
+
+#: ../libnm-util/crypto.c:170
+#, c-format
+msgid "Malformed PEM file: Proc-Type was not first tag."
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ PEM: Proc-Type не Ñ” першим теґом."
-#: ../src/nm-netlink-monitor.c:427
-msgid "operation took too long"
-msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð½Ð°Ð´Ñ‚Ð¾ довго"
+#: ../libnm-util/crypto.c:178
+#, c-format
+msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ PEM: невідомий теґ Proc-Type «%s»."
-#: ../src/nm-netlink-monitor.c:524
-msgid "received data from wrong type of sender"
-msgstr "отримано дані з неправильним типом відправника"
+#: ../libnm-util/crypto.c:188
+#, c-format
+msgid "Malformed PEM file: DEK-Info was not the second tag."
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ PEM: DEK-Info не Ñ” другим теґом."
-#: ../src/nm-netlink-monitor.c:537
-msgid "received data from unexpected sender"
-msgstr "отримано дані з неÑподіваним відправником"
+#: ../libnm-util/crypto.c:199
+#, c-format
+msgid "Malformed PEM file: no IV found in DEK-Info tag."
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° PEM: не знайдено теґу DEK-Info у ВІ."
-#: ../src/nm-netlink-monitor.c:666
-msgid "too much data was sent over socket and some of it was lost"
-msgstr "через Ñокет надто багато даних надіÑлано, та чаÑтину з них втрачено"
+#: ../libnm-util/crypto.c:206
+#, c-format
+msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
+msgstr ""
+"Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° PEM: некоректне Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð’Ð† у тезі DEK-Info."
+
+#: ../libnm-util/crypto.c:219
+#, c-format
+msgid "Malformed PEM file: unknown private key cipher '%s'."
+msgstr ""
+"Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° PEM: невідоме ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ ключа «%s»."
+
+#: ../libnm-util/crypto.c:238
+#, c-format
+msgid "Could not decode private key."
+msgstr "Ðе вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ."
+
+#: ../libnm-util/crypto.c:284
+msgid "Failed to find expected PKCS#8 start tag."
+msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуваний початковий теґ PKCS#8."
+
+#: ../libnm-util/crypto.c:292
+#, c-format
+msgid "Failed to find expected PKCS#8 end tag '%s'."
+msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ очікуваний завершальний теґ PKCS#8 «%s»."
+
+#: ../libnm-util/crypto.c:312
+msgid "Not enough memory to store private key data."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… закритого ключа."
+
+#: ../libnm-util/crypto.c:317
+msgid "Failed to decode PKCS#8 private key."
+msgstr "Ðе вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ PKCS#8."
+
+#: ../libnm-util/crypto.c:339 ../libnm-util/crypto.c:625
+#, c-format
+msgid "Not enough memory to store certificate data."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ñертифіката."
+
+#: ../libnm-util/crypto.c:365
+#, c-format
+msgid "IV must be an even number of bytes in length."
+msgstr "Довжина ВІ має дорівнювати парній кількоÑÑ‚Ñ– байтів."
+
+#: ../libnm-util/crypto.c:374
+#, c-format
+msgid "Not enough memory to store the IV."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð’Ð†."
+
+#: ../libnm-util/crypto.c:385
+#, c-format
+msgid "IV contains non-hexadecimal digits."
+msgstr "ВІ міÑтить не шіÑтнадцÑткові цифри."
+
+#: ../libnm-util/crypto.c:423 ../libnm-util/crypto_gnutls.c:147
+#: ../libnm-util/crypto_gnutls.c:265 ../libnm-util/crypto_nss.c:167
+#: ../libnm-util/crypto_nss.c:332
+#, c-format
+msgid "Private key cipher '%s' was unknown."
+msgstr "Ðевідоме ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ ключа «%s»."
+
+#: ../libnm-util/crypto.c:432
+#, c-format
+msgid "Not enough memory to decrypt private key."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð´ÐµÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ ключа."
+
+#: ../libnm-util/crypto.c:497
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ закритого ключа."
+
+#: ../libnm-util/crypto.c:542
+#, c-format
+msgid "Unable to determine private key type."
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ тип закритого ключа."
+
+#: ../libnm-util/crypto.c:597
+#, c-format
+msgid "PEM certificate had no start tag '%s'."
+msgstr "Сертифікат PEM не міÑтить початкового теґу «%s»."
+
+#: ../libnm-util/crypto.c:606
+#, c-format
+msgid "PEM certificate had no end tag '%s'."
+msgstr "Сертифікат PEM не міÑтить завершального теґу «%s»."
+
+#: ../libnm-util/crypto.c:630
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "Ðе вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñертифікат."
+
+#: ../libnm-util/crypto_gnutls.c:50
+msgid "Failed to initialize the crypto engine."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ рушій шифруваннÑ."
+
+#: ../libnm-util/crypto_gnutls.c:92
+#, c-format
+msgid "Failed to initialize the MD5 engine: %s / %s."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ рушій обчиÑÐ»ÐµÐ½Ð½Ñ MD5: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:155
+#, c-format
+msgid "Invalid IV length (must be at least %zd)."
+msgstr "Ðекоректна довжина ВІ (має бути принаймні %zd)."
+
+#: ../libnm-util/crypto_gnutls.c:164 ../libnm-util/crypto_nss.c:184
+#, c-format
+msgid "Not enough memory for decrypted key buffer."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ð° розшифрованого ключа."
+
+#: ../libnm-util/crypto_gnutls.c:172
+#, c-format
+msgid "Failed to initialize the decryption cipher context: %s / %s."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ контекÑÑ‚ шифру декодуваннÑ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:181
+#, c-format
+msgid "Failed to set symmetric key for decryption: %s / %s."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ñиметричний ключ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:190
+#, c-format
+msgid "Failed to set IV for decryption: %s / %s."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити ВІ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:199
+#, c-format
+msgid "Failed to decrypt the private key: %s / %s."
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:209 ../libnm-util/crypto_nss.c:263
+#, c-format
+msgid "Failed to decrypt the private key: unexpected padding length."
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ: неочікувана довжина доповненнÑ."
+
+#: ../libnm-util/crypto_gnutls.c:220 ../libnm-util/crypto_nss.c:274
+#, c-format
+msgid "Failed to decrypt the private key."
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ."
+
+#: ../libnm-util/crypto_gnutls.c:285 ../libnm-util/crypto_nss.c:352
+#, c-format
+msgid "Could not allocate memory for encrypting."
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ пам’ÑÑ‚Ñ–."
+
+#: ../libnm-util/crypto_gnutls.c:293
+#, c-format
+msgid "Failed to initialize the encryption cipher context: %s / %s."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ контекÑÑ‚ шифру кодуваннÑ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:302
+#, c-format
+msgid "Failed to set symmetric key for encryption: %s / %s."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ñиметричний ключ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:312
+#, c-format
+msgid "Failed to set IV for encryption: %s / %s."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити ВІ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:321
+#, c-format
+msgid "Failed to encrypt the data: %s / %s."
+msgstr "Ðе вдалоÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ дані: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:361
+#, c-format
+msgid "Error initializing certificate data: %s"
+msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби ініціалізації даних Ñертифіката: %s"
+
+#: ../libnm-util/crypto_gnutls.c:383
+#, c-format
+msgid "Couldn't decode certificate: %s"
+msgstr "Ðе вдалоÑÑ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ñ‚Ð¸ Ñертифікат: %s"
+
+#: ../libnm-util/crypto_gnutls.c:407
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрумент Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ PKCS#12: %s"
+
+#: ../libnm-util/crypto_gnutls.c:420
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %s"
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ файл PKCS#12: %s"
+
+#: ../libnm-util/crypto_gnutls.c:432
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %s"
+msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ файл PKCS#12: %s"
+
+#: ../libnm-util/crypto_gnutls.c:460
+#, c-format
+msgid "Couldn't initialize PKCS#8 decoder: %s"
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрумент Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ PKCS#8: %s"
+
+#: ../libnm-util/crypto_gnutls.c:483
+#, c-format
+msgid "Couldn't decode PKCS#8 file: %s"
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ файл PKCS#8: %s"
-#: ../src/nm-netlink-monitor.c:774
+#: ../libnm-util/crypto_nss.c:56
+#, c-format
+msgid "Failed to initialize the crypto engine: %d."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ рушій шифруваннÑ: %d."
+
+#: ../libnm-util/crypto_nss.c:107
+#, c-format
+msgid "Failed to initialize the MD5 context: %d."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ контекÑÑ‚ MD5: %d."
+
+#: ../libnm-util/crypto_nss.c:175
+#, c-format
+msgid "Invalid IV length (must be at least %d)."
+msgstr "Ðекоректна довжина ВІ (має бути принаймні %d)."
+
+#: ../libnm-util/crypto_nss.c:192
+#, c-format
+msgid "Failed to initialize the decryption cipher slot."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñлот шифру декодуваннÑ."
+
+#: ../libnm-util/crypto_nss.c:202
+#, c-format
+msgid "Failed to set symmetric key for decryption."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ñиметричний ключ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ."
+
+#: ../libnm-util/crypto_nss.c:212
+#, c-format
+msgid "Failed to set IV for decryption."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити ВІ Ð´Ð»Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ."
+
+#: ../libnm-util/crypto_nss.c:220
+#, c-format
+msgid "Failed to initialize the decryption context."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ контекÑÑ‚ розшифруваннÑ."
+
+#: ../libnm-util/crypto_nss.c:233
+#, c-format
+msgid "Failed to decrypt the private key: %d."
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ: %d."
+
+#: ../libnm-util/crypto_nss.c:241
+#, c-format
+msgid "Failed to decrypt the private key: decrypted data too large."
+msgstr ""
+"Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ закритий ключ: розшифровані дані Ñ” занадто об’ємними."
+
+#: ../libnm-util/crypto_nss.c:252
+#, c-format
+msgid "Failed to finalize decryption of the private key: %d."
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¾Ð³Ð¾ ключа: %d."
+
+#: ../libnm-util/crypto_nss.c:360
+#, c-format
+msgid "Failed to initialize the encryption cipher slot."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñлот шифру розкодуваннÑ."
+
+#: ../libnm-util/crypto_nss.c:368
+#, c-format
+msgid "Failed to set symmetric key for encryption."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити Ñиметричний ключ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ."
+
+#: ../libnm-util/crypto_nss.c:376
+#, c-format
+msgid "Failed to set IV for encryption."
+msgstr "Ðе вдалоÑÑ Ð²Ñтановити вектор ініціалізації Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ."
+
+#: ../libnm-util/crypto_nss.c:384
+#, c-format
+msgid "Failed to initialize the encryption context."
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ контекÑÑ‚ шифруваннÑ."
+
+#: ../libnm-util/crypto_nss.c:392
+#, c-format
+msgid "Failed to encrypt: %d."
+msgstr "Ðе вдалоÑÑ Ð·Ð°ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸: %d."
+
+#: ../libnm-util/crypto_nss.c:400
+#, c-format
+msgid "Unexpected amount of data after encrypting."
+msgstr "Ðеочікуваний об’єм даних піÑÐ»Ñ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ."
+
+#: ../libnm-util/crypto_nss.c:443
+#, c-format
+msgid "Couldn't decode certificate: %d"
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ Ñертифікат: %d"
+
+#: ../libnm-util/crypto_nss.c:478
+#, c-format
+msgid "Couldn't convert password to UCS2: %d"
+msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ð° UCS2: %d"
+
+#: ../libnm-util/crypto_nss.c:506
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %d"
+msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ інÑтрумент Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ PKCS#12: %d"
+
+#: ../libnm-util/crypto_nss.c:515
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %d"
+msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ñ‚Ð¸ файл PKCS#12: %d"
+
+#: ../libnm-util/crypto_nss.c:524
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %d"
+msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ файл PKCS#12: %d"
+
+#: ../libnm-util/crypto_nss.c:568
+msgid "Could not generate random data."
+msgstr "Ðе вдалоÑÑ Ñтворити пÑевдовипадкові дані."
+
+#: ../libnm-util/nm-utils.c:2000
+#, c-format
+msgid "Not enough memory to make encryption key."
+msgstr "ÐедоÑтатньо пам’ÑÑ‚Ñ– Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° шифруваннÑ."
+
+#: ../libnm-util/nm-utils.c:2110
+msgid "Could not allocate memory for PEM file creation."
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° PEM."
+
+#: ../libnm-util/nm-utils.c:2122
+#, c-format
+msgid "Could not allocate memory for writing IV to PEM file."
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу ВІ до файла PEM."
+
+#: ../libnm-util/nm-utils.c:2134
+#, c-format
+msgid "Could not allocate memory for writing encrypted key to PEM file."
+msgstr ""
+"Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу зашифрованого ключа до файла "
+"PEM."
+
+#: ../libnm-util/nm-utils.c:2153
+#, c-format
+msgid "Could not allocate memory for PEM file data."
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ облаÑÑ‚ÑŒ пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ… файла PEM."
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Дозволити ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñми мережею"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Спільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° оÑнові захищеної мережі WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Connection sharing via an open WiFi network"
+msgstr "Спільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° оÑнові відкритої мережі WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable WiFi devices"
+msgstr "Увімкнути або вимкнути приÑтрої WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable WiMAX mobile broadband devices"
+msgstr "Увімкнути або вимкнути приÑтрої широкоÑмугових мобільних мереж WiMAX"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
+msgid "Enable or disable mobile broadband devices"
+msgstr "Увімкнути або вимкнути приÑтрої широкоÑмугових мобільних мереж"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "Enable or disable system networking"
+msgstr "Увімкнути або вимкнути ÑиÑтемну роботу у мережі"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "Modify network connections for all users"
+msgstr "ВнеÑти зміни до мережевих з’єднань вÑÑ–Ñ… кориÑтувачів"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "Modify persistent system hostname"
+msgstr "Змінити поÑтійну назву вузла у мережі"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "Modify personal network connections"
+msgstr "Змінити параметри оÑобиÑтих з’єднань з мережею"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid ""
+"Put NetworkManager to sleep or wake it up (should only be used by system "
+"power management)"
+msgstr ""
+"Призупинити або поновити роботу NetworkManager (має викориÑтовуватиÑÑ Ð»Ð¸ÑˆÐµ "
+"інÑтрументами ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñм ÑиÑтеми)"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents control of network connections"
+msgstr "Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñми"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
+msgid ""
+"System policy prevents enabling or disabling WiMAX mobile broadband devices"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв широкоÑмугових "
+"мобільних мереж WiMAX"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:15
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв широкоÑмугових "
+"мобільних мереж"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:16
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ з мережею на "
+"ÑиÑтемному рівні"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:17
+msgid "System policy prevents modification of network settings for all users"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до параметрів мережі Ð´Ð»Ñ Ð²ÑÑ–Ñ… "
+"кориÑтувачів"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:18
+msgid "System policy prevents modification of personal network settings"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до оÑобиÑтих параметрів мережі"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:19
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до поÑтійної назви вузла у мережі"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:20
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ приÑиплÑÐ½Ð½Ñ Ñ‚Ð° Ð¿Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ NetworkManager"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:21
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ñпільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ за допомогою "
+"захищеної мережі WiFi"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:22
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ñпільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ за допомогою "
+"відкритої мережі WiFi"
+
+#: ../src/main.c:530
+#, c-format
+msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgstr ""
+"Ðекоректний параметр. Щоб ознайомитиÑÑ Ð·Ñ– ÑпиÑком параметрів, ÑкориÑтайтеÑÑ "
+"параметром --help.\n"
+
+#: ../src/main.c:611
+#, c-format
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr ""
+"%s. Щоб ознайомитиÑÑ Ð·Ñ– ÑпиÑком параметрів, ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ --help.\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62
+msgid "# Created by NetworkManager\n"
+msgstr "# Створено за допомогою NetworkManager\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:69
+#, c-format
+msgid ""
+"# Merged from %s\n"
+"\n"
+msgstr ""
+"# Об’єднано з %s\n"
+"\n"
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ придатного до викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð° DHCP."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «dhclient»."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ «dhcpcd»."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
+#, c-format
+msgid "unsupported DHCP client '%s'"
+msgstr "підтримки клієнта DHCP «%s» не передбачено"
+
+#: ../src/dns-manager/nm-dns-manager.c:376
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr ""
+"ЗÐУВÐЖЕÐÐЯ: можливо, інÑтрумент Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑ Ð·Ð° назвами libc вашої "
+"ÑиÑтеми не підтримує викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð½Ð°Ð´ 3 Ñерверів назв."
+
+#: ../src/dns-manager/nm-dns-manager.c:378
+msgid "The nameservers listed below may not be recognized."
+msgstr "Вказані у наведеному нижче ÑпиÑку Ñервери назв може бути пропущено."
+
+#: ../src/logging/nm-logging.c:149
+#, c-format
+msgid "Unknown log level '%s'"
+msgstr "Ðевідомий рівень Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Â«%s»"
+
+#: ../src/logging/nm-logging.c:174
+#, c-format
+msgid "Unknown log domain '%s'"
+msgstr "Ðевідомий домен Ð¶ÑƒÑ€Ð½Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Â«%s»"
+
+#: ../src/modem-manager/nm-modem-cdma.c:296 ../src/nm-device-bt.c:355
+#, c-format
+msgid "CDMA connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ CDMA %d"
+
+#: ../src/modem-manager/nm-modem-gsm.c:499 ../src/nm-device-bt.c:351
+#, c-format
+msgid "GSM connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ GSM %d"
+
+#: ../src/nm-device-bt.c:326
+#, c-format
+msgid "PAN connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ PAN %d"
+
+#: ../src/nm-device-bt.c:359
+#, c-format
+msgid "DUN connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ DUN %d"
+
+#: ../src/nm-device-ethernet.c:1723
+#, c-format
+msgid "PPPoE connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ PPPoE %d"
+
+#: ../src/nm-device-ethernet.c:1723 ../src/settings/nm-settings-utils.c:50
+#, c-format
+msgid "Wired connection %d"
+msgstr "Дротове Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ %d"
+
+#: ../src/nm-device-olpc-mesh.c:393
+#, c-format
+msgid "Mesh %d"
+msgstr "Mesh %d"
+
+#: ../src/nm-manager.c:657
+#, c-format
+msgid "VPN connection %d"
+msgstr "Ð—â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ VPN %d"
+
+#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231
+#: ../src/nm-netlink-monitor.c:653
+#, c-format
+msgid "error processing netlink message: %s"
+msgstr "помилка під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:214
msgid "error occurred while waiting for data on socket"
-msgstr "помилка при очікуванні даних з Ñокету"
+msgstr "під Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° дані з Ñокета ÑталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr ""
+"не вдалоÑÑ Ð²Ñтановити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· netlink Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° Ñтаном "
+"з’єднаннÑ: %s"
+
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr ""
+"не вдалоÑÑ ÑƒÐ²Ñ–Ð¼ÐºÐ½ÑƒÑ‚Ð¸ інÑтрумент netlink Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ€ÐµÑ”Ñтраційних даних: %s"
-#: ../src/nm-ap-security-wpa-eap.c:93 ../src/nm-ap-security-wpa-eap.c:112
-msgid "WPA2 Enterprise"
-msgstr "WPA2 Enterprise"
+#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
+#, c-format
+msgid "unable to allocate netlink handle for monitoring link status: %s"
+msgstr ""
+"не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити у пам’ÑÑ‚Ñ– інÑтрумент netlink Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° "
+"Ñтаном з’єднаннÑ: %s"
+
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr ""
+"не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити у пам’ÑÑ‚Ñ– кеш з’єднань netlink Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° "
+"Ñтаном з’єднань: %s"
+
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "не вдалоÑÑ Ð´Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ÑÑ Ð´Ð¾ групи netlink: %s"
+
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
+#, c-format
+msgid "error updating link cache: %s"
+msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐµÑˆÑƒ з’єднаннÑ: %s"
-#: ../src/nm-ap-security-wpa-eap.c:95 ../src/nm-ap-security-wpa-eap.c:115
-msgid "WPA Enterprise"
-msgstr "WPA Enterprise"
+#: ../src/settings/plugins/ifcfg-rh/reader.c:3575
+#: ../src/settings/plugins/ifnet/connection_parser.c:51
+msgid "System"
+msgstr "СиÑтема"
-#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:80
-msgid "LEAP"
-msgstr "LEAP"
diff --git a/policy/org.freedesktop.NetworkManager.policy b/policy/org.freedesktop.NetworkManager.policy
index 3aea453ad..73689dc96 100644
--- a/policy/org.freedesktop.NetworkManager.policy
+++ b/policy/org.freedesktop.NetworkManager.policy
@@ -29,11 +29,13 @@
<description xml:lang="or">ତନà­à¬¤à­à¬° ନେଟୱରà­à¬•à¬¿à¬™à­à¬—କୠସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ କରନà­à¬¤à­</description>
<description xml:lang="pa">ਸਿਸਟਮ ਨੈੱਟਵਰਕਿੰਗ ਚਾਲੂ ਜਾਂ ਬੰਦ</description>
<description xml:lang="pl">Włączenie lub wyłączenie sieci systemowej</description>
+ <description xml:lang="ru">Включить или выключить ÑиÑтемные ÑоединениÑ</description>
<description xml:lang="sl">OmogoÄi ali onemogoÄi sistemske omrežne povezave</description>
<description xml:lang="sr">Омогући или онемогући умрежавање на ÑиÑтему</description>
<description xml:lang="sr@latin">Omogući ili onemogući umrežavanje na sistemu</description>
<description xml:lang="sv">Aktivera eller inaktivera systemnätverk</description>
<description xml:lang="te">సిసà±à°Ÿà°®à± నెటà±à°µà°°à±à°•à°¿à°‚à°—à±â€Œà°¨à± చేతనమౠలేదా అచేతనమౠచేయà±à°®à±</description>
+ <description xml:lang="uk">Увімкнути або вимкнути ÑиÑтемну роботу у мережі</description>
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ç³»ç»Ÿç½‘络</description>
<message>System policy prevents enabling or disabling system networking</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на мрежата на ÑиÑтемно ниво</message>
@@ -55,11 +57,13 @@
<message xml:lang="or">ତନà­à¬¤à­à¬° ନିତୀ ତନà­à¬¤à­à¬° ନେଟୱରà­à¬•à¬¿à¬™à­à¬—କୠସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ ହେବାରୠବାରଣ କରିଥାà¬</message>
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਸਿਸਟਮ ਨੈੱਟਵਰਕਿੰਗ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje włączanie lub wyłączanie sieci systemowej</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение и выключение ÑиÑтемных подключений</message>
<message xml:lang="sl">Sistemska doloÄila prepreÄujejo omogoÄanje ali onemogoÄanje omrežnih povezav.</message>
<message xml:lang="sr">Овлашћења ÑиÑтема онемогућавају управљање мрежом на ÑиÑтему</message>
<message xml:lang="sr@latin">Ovlašćenja sistema onemogućavaju upravljanje mrežom na sistemu</message>
<message xml:lang="sv">Systemets policy förhindrar aktivering eller inaktivering av systemnätverk</message>
<message xml:lang="te">సిసà±à°Ÿà°®à± నెటà±à°µà°°à±à°•à°¿à°‚à°—à±â€Œà°¨à± చేతనమౠచేయà±à°Ÿà°•à± లేదా అచేతనమౠచేయà±à°Ÿà°•à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ з мережею на ÑиÑтемному рівні</message>
<message xml:lang="zh_CN">系统策略阻止å¯ç”¨æˆ–ç¦ç”¨ç³»ç»Ÿç½‘络</message>
<defaults>
<allow_inactive>no</allow_inactive>
@@ -88,11 +92,13 @@
<description xml:lang="or">NetworkManager କୠସà­à¬ªà­à¬¤ କିମà­à¬¬à¬¾ ଜାଗà­à¬°à¬¤ ରଖନà­à¬¤à­ (କେବଳ ତନà­à¬¤à­à¬° ଶକà­à¬¤à¬¿ ପରିଚାଳନା ଦà­à­±à¬¾à¬°à¬¾ ବà­à­Ÿà¬¬à¬¹à¬¾à¬° ହେବା ଉଚିତ)</description>
<description xml:lang="pa">ਨੈੱਟਵਰਕਮੈਨਜੇਰ ਨੂੰ ਸਲੀਪ ਕਰੋ ਜਾਂ ਵੇਕ ਅੱਪ ਕਰੋ (ਕੇਵਲ ਸਿਸਟਮ ਪਾਵਰ ਮੈਨਜੇਮੈਂਟ ਰਾਹੀਂ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ)</description>
<description xml:lang="pl">Umieszczenie usługi NetworkManager w stanie uśpienia lub przebudzenie go (powinno być używane tylko przez systemowe zarządzanie zasilaniem)</description>
+ <description xml:lang="ru">ПеревеÑти NetworkManager в режим Ñна или пробудить его (должно иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ ÑиÑтемой ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¸Ñ‚Ð°Ð½Ð¸ÐµÐ¼)</description>
<description xml:lang="sl">Postavi program NetworkManager v mirovanje ali iz njega (možnost je namenjena upravljanju napajanja)</description>
<description xml:lang="sr">Омогућава уÑпављивање Управника мреже (кориÑти Ñе Ñа Управником потрошње на ÑиÑтему)</description>
<description xml:lang="sr@latin">Omogućava uspavljivanje Upravnika mreže (koristi se sa Upravnikom potrošnje na sistemu)</description>
<description xml:lang="sv">Försätt Nätverkshanterare i vänteläge eller återställ efter det (bör endast användas av systemets strömhantering)</description>
<description xml:lang="te">నెటà±à°µà°°à±à°•à±à°®à±‡à°¨à±‡à°œà°°à±â€Œà°¨à± à°¸à±à°²à±€à°ªà±â€Œà°¨à°•à± లేదా దానిని మెలà±à°•à±Šà°²à±à°ªà±à°Ÿà°•à± à°µà±à°‚à°šà°‚à°¡à°¿ (సిసà±à°Ÿà°®à± పవరౠనిరà±à°µà°¹à°£ చేత మాతà±à°°à°®à±‡ à°µà±à°ªà°¯à±‹à°—ించబడాలి)</description>
+ <description xml:lang="uk">Призупинити або поновити роботу NetworkManager (має викориÑтовуватиÑÑ Ð»Ð¸ÑˆÐµ інÑтрументами ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¶Ð¸Ð²Ð»ÐµÐ½Ð½Ñм ÑиÑтеми)</description>
<description xml:lang="zh_CN">挂起或唤醒 NetworkManager (应仅用于系统电æºç®¡ç†)</description>
<message>System policy prevents putting NetworkManager to sleep or waking it up</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва приÑпиване и Ñъбуждане на NetworkManager</message>
@@ -114,11 +120,13 @@
<message xml:lang="or">ତନà­à¬¤à­à¬° ନିତୀ NetworkManager କୠସà­à¬ªà­à¬¤ କିମà­à¬¬à¬¾ ଜାଗà­à¬°à¬¤ ରହିବାରୠବାରଣ କରିଥାà¬</message>
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਨੈੱਟਵਰਕਮੈਨੇਜਰ ਨੂੰ ਸਲੀਪ ਜਾਂ ਵੇਕਅੱਪ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje umieszczenie usługi NetworkManager w stanie uśpienia lub przebudzenie go</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° не разрешает переводить NetworkManager в режим Ñна или пробуждать его</message>
<message xml:lang="sl">Sistemska doloÄila prepreÄujejo postavitev programa NetworkManager v mirovanje ali iz njega.</message>
<message xml:lang="sr">Овлашћења ÑиÑтема онемогућавају уÑпављивање Управника мрежом</message>
<message xml:lang="sr@latin">Ovlašćenja sistema onemogućavaju uspavljivanje Upravnika mrežom</message>
<message xml:lang="sv">Systemets policy förhindrar att Nätverkshanterare försätts i vänteläge eller återställs efter det</message>
<message xml:lang="te">నెటà±à°µà°°à±à°•à±à°®à±‡à°¨à±‡à°œà°°à±â€Œà°¨à± à°¸à±à°²à±€à°ªà±â€Œà°¨à°•à± లేదా దానిని మెలà±à°•à±Šà°²à±à°ªà±à°Ÿà°•à± à°µà±à°‚à°šà±à°Ÿà°¨à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ приÑиплÑÐ½Ð½Ñ Ñ‚Ð° Ð¿Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ NetworkManager</message>
<message xml:lang="zh_CN">系统策略阻止挂起或唤醒 NetworkManager</message>
<defaults>
<allow_inactive>no</allow_inactive>
@@ -147,11 +155,13 @@
<description xml:lang="or">WiFi ଉପକରଣଗà­à¬¡à¬¼à¬¿à¬•à­ ସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ କରନà­à¬¤à­</description>
<description xml:lang="pa">ਵਾਈ-ਫਾਈ ਜੰਤਰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰੋ</description>
<description xml:lang="pl">Włączenie lub wyłączenie urządzeń WiFi</description>
+ <description xml:lang="ru">Включить или выключить уÑтройÑтва WiFi</description>
<description xml:lang="sl">OmogoÄi ali onemogoÄi naprave WiFi</description>
<description xml:lang="sr">Омогући или онемогући бежичне уређаје</description>
<description xml:lang="sr@latin">Omogući ili onemogući bežiÄne ureÄ‘aje</description>
<description xml:lang="sv">Aktivera eller inaktivera WiFi-enheter</description>
<description xml:lang="te">WiFi పరికరమà±à°²à°¨à± చేతనమౠలేదా అచేతనమౠచేయà±à°®à±</description>
+ <description xml:lang="uk">Увімкнути або вимкнути приÑтрої WiFi</description>
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ WiFi 设备</description>
<message>System policy prevents enabling or disabling WiFi devices</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за безжични мрежи</message>
@@ -173,11 +183,13 @@
<message xml:lang="or">ତନà­à¬¤à­à¬° ନିତୀ WiFi ଉପକରଣଗà­à¬¡à¬¼à¬¿à¬•à­ ସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ ହେବାରୠବାରଣ କରିଥାà¬</message>
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਵਾਈ-ਫਾਈ ਜੰਤਰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰਨੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje włączanie lub wyłączanie urządzeń WiFi</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение и выключение WiFi уÑтройÑтв</message>
<message xml:lang="sl">Sistemska doloÄila prepreÄujejo omogoÄanja ali onemogoÄanje WiFi naprav</message>
<message xml:lang="sr">Овлашћења ÑиÑтема онемогућавају управљање бежичним уређајима</message>
<message xml:lang="sr@latin">Ovlašćenja sistema onemogućavaju upravljanje bežiÄnim ureÄ‘ajima</message>
<message xml:lang="sv">Systemets policy förhindrar aktivering eller inaktivering av WiFi-enheter</message>
<message xml:lang="te">WiFi పరికరమà±à°²à°¨à± చేతనమౠచేయà±à°Ÿà°•à± లేదా అచేతనమౠచేయà±à°Ÿà°•à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв WiFi</message>
<message xml:lang="zh_CN">系统策略阻止å¯ç”¨æˆ–ç¦ç”¨ WiFi 设备</message>
<defaults>
<allow_inactive>no</allow_inactive>
@@ -206,11 +218,13 @@
<description xml:lang="or">ମୋବାଇଲ ବà­à¬°à­‹à¬¡à¬¬à­à­Ÿà¬¾à¬£à­à¬¡ ଉପକରଣଗà­à¬¡à¬¼à¬¿à¬•à­ ସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ କରନà­à¬¤à­</description>
<description xml:lang="pa">ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ ਚਾਲੂ ਜਾਂ ਬੰਦ</description>
<description xml:lang="pl">Włączenie lub wyłączenie urządzeń komórkowych</description>
+ <description xml:lang="ru">Включить или выключить уÑтройÑтва мобильных Ñетей</description>
<description xml:lang="sl">OmogoÄi ali onemogoÄi naprave mobilnih Å¡irokopasovnih storitev</description>
<description xml:lang="sr">Омогући или онемогући мобилне широкопојаÑне уређаје</description>
<description xml:lang="sr@latin">Omogući ili onemogući mobilne širokopojasne uređaje</description>
<description xml:lang="sv">Aktivera eller inaktivera mobila bredbandsenheter</description>
<description xml:lang="te">మొబైలౠబà±à°°à°¾à°¡à±â€Œà°¬à°¾à°‚డౠపరికరమà±à°²à°¨à± చేతనమౠలేదా అచేతనమౠచేయà±à°®à±</description>
+ <description xml:lang="uk">Увімкнути або вимкнути приÑтрої широкоÑмугових мобільних мереж</description>
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ç§»åŠ¨å®½å¸¦è®¾å¤‡</description>
<message>System policy prevents enabling or disabling mobile broadband devices</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за мобилни мрежи</message>
@@ -232,11 +246,13 @@
<message xml:lang="or">ତନà­à¬¤à­à¬° ନିତୀ ମୋବାଇଲ ବà­à¬°à­‹à¬¡à¬¬à­à­Ÿà¬¾à¬£à­à¬¡ ଉପକରଣଗà­à¬¡à¬¼à¬¿à¬•à­ ସକà­à¬°à¬¿à­Ÿ କିମà­à¬¬à¬¾ ନିଷà­à¬•à­à¬°à¬¿à­Ÿ ହେବାରୠବାରଣ କରିଥାà¬</message>
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਮੋਬਾਇਲ ਬਰਾਡਬੈਂਡ ਜੰਤਰ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje włączenie lub wyłączenie urządzeń komórkowych</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение или выключение уÑтройÑтв мобильной ÑвÑзи</message>
<message xml:lang="sl">Sistemska doloÄila prepreÄuje omogoÄanja ali onemogoÄanje mobilne Å¡irokopasovne naprave</message>
<message xml:lang="sr">Овлашћења ÑиÑтема онемогућавају управљање мобилним широкопојаÑним уређајима</message>
<message xml:lang="sr@latin">Ovlašćenja sistema onemogućavaju upravljanje mobilnim širokopojasnim uređajima</message>
<message xml:lang="sv">Systemets policy förhindrar aktivering eller inaktivering av mobila bredbandsenheter</message>
<message xml:lang="te">మొబైలౠబà±à°°à°¾à°¡à±â€Œà°¬à°¾à°‚డౠపరికరమà±à°²à°¨à± చేతనమà±à°šà±‡à°¯à±à°Ÿà°•à± లేదా అచేతనమà±à°šà±‡à°¯à±à°Ÿà°•à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв широкоÑмугових мобільних мереж</message>
<message xml:lang="zh_CN">系统策略阻止å¯ç”¨æˆ–ç¦ç”¨ç§»åŠ¨å®½å¸¦è®¾å¤‡</message>
<defaults>
<allow_inactive>no</allow_inactive>
@@ -252,9 +268,12 @@
<description xml:lang="eo">EnÅalti aÅ­ elÅalti WiMAX-larÄkapacitajn aparatojn</description>
<description xml:lang="es">Activar o desactivar los dispositivos de banda ancha moÌvil WiMAX</description>
<description xml:lang="hu">WiMAX mobil széles sávú eszközök be- és kikapcsolása</description>
+ <description xml:lang="id">Aktifkan atau matikan perangkat broadband bergerak WiMAX</description>
<description xml:lang="ko">와ì´ë§¥ìŠ¤ ëª¨ë°”ì¼ ê´‘ëŒ€ì—­ 장치 사용 여부</description>
<description xml:lang="mr">WiMAX मोबाईल बà¥à¤°à¥‰à¤¡à¤¬à¤à¤¡ साधने सà¥à¤°à¥‚ किंवा बंद करा</description>
<description xml:lang="pl">Włączenie lub wyłączenie urządzeń komórkowych WiMAX</description>
+ <description xml:lang="ru">Включить или выключить уÑтройÑтва мобильных Ñетей WiMax</description>
+ <description xml:lang="uk">Увімкнути або вимкнути приÑтрої широкоÑмугових мобільних мереж WiMAX</description>
<message>System policy prevents enabling or disabling WiMAX mobile broadband devices</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за мобилни мрежи по WiMAX</message>
<message xml:lang="ca">La política del sistema impedeix habilitar o inhabilitar els dispositius de banda ampla mòbil WiMAX</message>
@@ -262,9 +281,12 @@
<message xml:lang="eo">Sistempolitiko preventas enÅalton aÅ­ elÅalton de larÄkapacitaj WiMAX-aparatoj</message>
<message xml:lang="es">La poliÌtica del sistema evita activar o desactivar los dispositivos de banda ancha moÌvil WiMAX</message>
<message xml:lang="hu">A rendszer házirendje megakadályozza a WiMAX mobil széles sávú eszközök be- vagy kikapcsolását</message>
+ <message xml:lang="id">Kebijakan sistem mencegah mengaktifkan atau mematikan perangkat broadband bergerak WiMAX</message>
<message xml:lang="ko">시스템 ì •ì±…ì´ ì™€ì´ë§¥ìŠ¤ ëª¨ë°”ì¼ ê´‘ëŒ€ì—­ ìž¥ì¹˜ì˜ ì‚¬ìš© 여부 ì„¤ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤</message>
<message xml:lang="mr">पà¥à¤°à¤£à¤¾à¤²à¥€ करार WiMAX मोबाईल बà¥à¤°à¥‰à¤¡à¤¬à¤à¤¡ साधनांना सà¥à¤°à¥‚ किंवा बंद होणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न रोखते</message>
<message xml:lang="pl">Polityka systemu powstrzymuje włączenie lub wyłączenie urządzeń komórkowych WiMAX</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает включение или выключение уÑтройÑтв мобильной ÑвÑзи WiMAX</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ñтроїв широкоÑмугових мобільних мереж WiMAX</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
@@ -292,11 +314,13 @@
<description xml:lang="or">ନେଟୱରà­à¬• ସଂଯୋଗଗà­à¬¡à¬¼à¬¿à¬• ପାଇଠନିୟନà­à¬¤à­à¬°à¬£à¬•à­ ଅନà­à¬®à¬¤à¬¿ ଦିଅନà­à¬¤à­</description>
<description xml:lang="pa">ਨੈੱਟਵਰਕ ਕà©à¨¨à©ˆà¨•à¨¸à¨¼à¨¨à¨¾à¨‚ ਲਈ ਕੰਟਰੋਲ ਮਨਜ਼ੂਰ</description>
<description xml:lang="pl">Umożliwienie kontroli połączeń sieciowych</description>
+ <description xml:lang="ru">Разрешить контроль Ñетевых подключений</description>
<description xml:lang="sl">Dovoli nadzor omrežnih povezav</description>
<description xml:lang="sr">Дозволи контролу мрежних веза</description>
<description xml:lang="sr@latin">Dozvoli kontrolu mrežnih veza</description>
<description xml:lang="sv">Tillåt kontroll av nätverksanslutningar</description>
<description xml:lang="te">నెటà±à°µà°°à±à°•à± à°…à°¨à±à°¸à°‚ధానమà±à°² యొకà±à°• నియంతà±à°°à°£ à°…à°¨à±à°®à°¤à°¿à°‚à°šà±à°®à±</description>
+ <description xml:lang="uk">Дозволити ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñми мережею</description>
<description xml:lang="zh_CN">å…许控制网络连接</description>
<message>System policy prevents control of network connections</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва управлÑване на мрежовите връзки</message>
@@ -318,11 +342,13 @@
<message xml:lang="or">ତନà­à¬¤à­à¬° ନିତୀ ନେଟୱରà­à¬• ସଂଯୋଗଗà­à¬¡à¬¼à¬¿à¬•à¬° ନିୟନà­à¬¤à­à¬°à¬£à¬•à­ ବାରଣ କରିଥାà¬</message>
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਨੈੱਟਵਰਕ ਕà©à¨¨à©ˆà¨•à¨¸à¨¼à¨¨ ਕੰਟਰੋਲ ਕਰਨ ਤੋਂ ਸੋਧ ਤੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje kontrolę połączeń sieciowych</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает управление подключениÑми.</message>
<message xml:lang="sl">Sistemska doloÄila prepreÄujejo nadzor omrežnih povezav</message>
<message xml:lang="sr">Овлашћења ÑиÑтема онемогућавају контролу мрежних веза</message>
<message xml:lang="sr@latin">Ovlašćenja sistema onemogućavaju kontrolu mrežnih veza</message>
<message xml:lang="sv">Systemets policy förhindrar kontroll av nätverksanslutningar</message>
<message xml:lang="te">నెటà±à°µà°°à±à°•à± à°…à°¨à±à°¸à°‚ధానమà±à°² నియంతà±à°°à°£à°¨à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñми</message>
<message xml:lang="zh_CN">系统策略阻止更改网络连接</message>
<defaults>
<allow_inactive>yes</allow_inactive>
@@ -368,6 +394,7 @@
<description xml:lang="sv">Anslutningsdelning via ett skyddat trådlöst nätverk</description>
<description xml:lang="ta">ஒர௠பாதà¯à®•à®¾à®•à¯à®•à®ªà¯à®ª WiFi நெடà¯à®µà¯Šà®°à¯à®•à¯à®•à®¿à®©à¯ வழியாக இணைபà¯à®ªà¯ பகிரபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯</description>
<description xml:lang="te">à°°à°•à±à°·à°¿à°¤ WiFi నెటà±à°µà°°à±à°•à± à°¦à±à°µà°¾à°°à°¾ à°…à°¨à±à°¸à°‚ధానపౠభాగసà±à°µà°¾à°®à±à°¯à°®à±.</description>
+ <description xml:lang="uk">Спільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° оÑнові захищеної мережі WiFi</description>
<description xml:lang="zh_CN">通过å—ä¿æŠ¤çš„ WiFi 网络共享连接</description>
<description xml:lang="zh_TW">é€éŽå—ä¿è­·çš„ WiFi 網路共享連線</description>
<message>System policy prevents sharing connections via a protected WiFi network</message>
@@ -407,6 +434,7 @@
<message xml:lang="sv">Systemets policy förhindrar delning av anslutningar via ett skyddat trådlöst nätverk</message>
<message xml:lang="ta">பாதà¯à®•à®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ WiFi நெடà¯à®µà¯Šà®°à¯à®•à¯à®•à®¿à®©à¯ வழியாக இணைபà¯à®ªà¯à®•à®³à¯ˆ பகிரà¯à®µà®¤à¯ˆ கணினி பாலிசி தடà¯à®•à¯à®•à®¿à®±à®¤à¯</message>
<message xml:lang="te">à°°à°•à±à°·à°¿à°¤ WiFi నెటà±à°µà°°à±à°•à± à°¦à±à°µà°¾à°°à°¾ à°…à°¨à±à°¸à°‚ధానమà±à°²à°¨à± భాగసà±à°µà°¾à°®à±à°¯à°ªà°°à°šà±à°Ÿ సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ñпільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ за допомогою захищеної мережі WiFi</message>
<message xml:lang="zh_CN">系统策略阻止使用å—ä¿æŠ¤çš„ WiFi 网络共享连接</message>
<message xml:lang="zh_TW">系統政策讓您無法é€éŽå—ä¿è­·çš„ WiFi 網路共享連çµ</message>
<defaults>
@@ -453,6 +481,7 @@
<description xml:lang="sv">Anslutningsdelning via ett öppet trådlöst nätverk</description>
<description xml:lang="ta">ஒர௠திறநà¯à®¤ WiFi நெடà¯à®µà¯Šà®°à¯à®•à¯à®•à®¿à®©à¯ வழியாக இணைபà¯à®ªà¯ பகிரபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯</description>
<description xml:lang="te">ఓపెనౠWiFi నెటà±à°µà°°à±à°•à± à°¦à±à°µà°¾à°°à°¾ à°…à°¨à±à°¸à°‚ధానపౠభాగసà±à°µà°¾à°®à±à°¯à°®à±</description>
+ <description xml:lang="uk">Спільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° оÑнові відкритої мережі WiFi</description>
<description xml:lang="zh_CN">通过公开 WiFi 网络共享连接</description>
<description xml:lang="zh_TW">é€éŽé–‹æ”¾çš„ WiFi 網路共享連線</description>
<message>System policy prevents sharing connections via an open WiFi network</message>
@@ -485,13 +514,14 @@
<message xml:lang="pa">ਸਿਸਟਮ ਪਾਲਸੀ ਕà©à¨¨à©ˆà¨•à¨¸à¨¼à¨¨ ਨੂੰ ਓਪਨ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਸਾਂà¨à¨¾ ਕਰਨ ਤੋਂ ਰੋਕਦੀ ਹੈ</message>
<message xml:lang="pl">Polityka systemu powstrzymuje współdzielenie połączeń przez otwartą sieć WiFi</message>
<message xml:lang="pt_BR">Políticas de sistema previnem compartilhamento de conexões através de uma rede sem fio aberta</message>
- <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в закрытой Ñети WiFi</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает ÑовмеÑтное иÑпользование Ñоединений в открытой Ñети WiFi</message>
<message xml:lang="sl">Sistemska pravila prepreÄujejo souporabo povezav preko odprtega WiFi omrežja</message>
<message xml:lang="sr">Овлашћења ÑиÑтема не дозвољавају дељење везе преко отворене бежичне мреже</message>
<message xml:lang="sr@latin">Ovlašćenja sistema ne dozvoljavaju deljenje veze preko otvorene bežiÄne mreže</message>
<message xml:lang="sv">Systemets policy förhindrar delning av anslutningar via ett öppet trådlöst nätverk</message>
<message xml:lang="ta">திறநà¯à®¤ WiFi நெடà¯à®µà¯Šà®°à¯à®•à¯à®•à®¿à®©à¯ வழியாக இணைபà¯à®ªà¯à®•à®³à¯ˆ பகிரà¯à®µà®¤à¯ˆ கணினி பாலிசி தடà¯à®•à¯à®•à®¿à®±à®¤à¯</message>
<message xml:lang="te">ఓపెనౠWiFi నెటà±à°µà°°à±à°•à± à°¦à±à°µà°¾à°°à°¾ à°…à°¨à±à°¸à°‚ధానమà±à°²à°¨à± భాగసà±à°µà°¾à°®à±à°¯à°ªà°°à°šà±à°Ÿ సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ Ñпільне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·â€™Ñ”Ð´Ð½Ð°Ð½ÑŒ за допомогою відкритої мережі WiFi</message>
<message xml:lang="zh_CN">系统策略阻止使用公开 WiFi 网络共享连接</message>
<message xml:lang="zh_TW">系統政策讓您無法é€éŽé–‹æ”¾çš„ WiFi 網路共享連線</message>
<defaults>
@@ -506,17 +536,23 @@
<description xml:lang="eo">Modifi proprajn retkonektojn</description>
<description xml:lang="es">Modificar las conexiones de red personales</description>
<description xml:lang="hu">Személyes hálózati kapcsolatok módosítása</description>
+ <description xml:lang="id">Ubah koneksi jaringan personal</description>
<description xml:lang="ko">ê°œì¸ ë„¤íŠ¸ì›Œí¬ ì—°ê²°ì„ ìˆ˜ì •í•©ë‹ˆë‹¤</description>
<description xml:lang="mr">वैयकà¥à¤¤à¤¿à¤• नेटवरà¥à¤• जोडणी संपादित करा</description>
<description xml:lang="pl">Modyfikacja osobistych połączeń sieciowych</description>
+ <description xml:lang="ru">Редактировать личные наÑтройки подключениÑ</description>
+ <description xml:lang="uk">Змінити параметри оÑобиÑтих з’єднань з мережею</description>
<message>System policy prevents modification of personal network settings</message>
<message xml:lang="de">Die Systemrichtlinien verhindern das Bearbeiten von eigenen Netzwerkeinstellungen</message>
<message xml:lang="eo">Sistempolitiko preventas modifadon de propraj retagordoj</message>
<message xml:lang="es">La política del sistema evita la modificación de la configuración personal de la red</message>
<message xml:lang="hu">A rendszer házirendje megakadályozza a személyes hálózati beállítások módosítását</message>
+ <message xml:lang="id">Kebijakan sistem mencegah pengubahan tatanan jaringan pribadi</message>
<message xml:lang="ko">시스템 ì •ì±…ì´ ê°œì¸ ë„¤íŠ¸ì›Œí¬ ì„¤ì •ì˜ ìˆ˜ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤</message>
<message xml:lang="mr">पà¥à¤°à¤£à¤¾à¤²à¥€ करार, वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त नेटवरà¥à¤• सेटिंगà¥à¤¸à¥ संपादीत करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न रोखते</message>
<message xml:lang="pl">Polityka systemu powstrzymuje modyfikację osobistych ustawień systemowych</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение перÑональных наÑтроек Ñети</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до оÑобиÑтих параметрів мережі</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
@@ -529,17 +565,23 @@
<description xml:lang="eo">Modifi retkonektojn por ĉiuj uzantoj</description>
<description xml:lang="es">Modificar las conexiones de red para todos los usuarios</description>
<description xml:lang="hu">Hálózati kapcsolatok módosítása minden felhasználó számára</description>
+ <description xml:lang="id">Ubah koneksi jaringan bagi semua pengguna</description>
<description xml:lang="ko">모든 사용ìžì˜ ë„¤íŠ¸ì›Œí¬ ì—°ê²°ì„ ìˆ˜ì •í•©ë‹ˆë‹¤</description>
<description xml:lang="mr">सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚करीता नेटवरà¥à¤• जोडणी संपादित करा</description>
<description xml:lang="pl">Modyfikacja połączeń sieciowych dla wszystkich użytkowników</description>
+ <description xml:lang="ru">Изменить Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупные вÑем пользователÑм</description>
+ <description xml:lang="uk">ВнеÑти зміни до мережевих з’єднань вÑÑ–Ñ… кориÑтувачів</description>
<message>System policy prevents modification of network settings for all users</message>
<message xml:lang="de">Die Systemrichtlinien verhindern das Bearbeiten von Netzwerkeinstellungen für alle Benutzer</message>
<message xml:lang="eo">Sistempolitiko preventas modifadon de retagordoj por ĉiuj uzantoj</message>
<message xml:lang="es">La política del sistema evita la modificación de la configuración de la red para todos los usuarios</message>
<message xml:lang="hu">A rendszer házirendje megakadályozza a hálózati beállítások módosítását minden felhasználó számára</message>
+ <message xml:lang="id">Kebijakan sistem mencegah pengubahan tatanan sistem bagi semua pengguna</message>
<message xml:lang="ko">시스템 ì •ì±…ì´ ëª¨ë“  사용ìžì˜ ë„¤íŠ¸ì›Œí¬ ì„¤ì •ì˜ ìˆ˜ì •ì„ ê¸ˆì§€í•©ë‹ˆë‹¤</message>
<message xml:lang="mr">पà¥à¤°à¤£à¤¾à¤²à¥€ करार सरà¥à¤µ वापरकरà¥à¤¤à¥à¤¯à¤¾à¤‚ना नेटवरà¥à¤• सेटिंगà¥à¤¸à¥ संपादीत करणà¥à¤¯à¤¾à¤ªà¤¾à¤¸à¥‚न रोखते</message>
<message xml:lang="pl">Polityka systemu powstrzymuje modyfikację ustawień sieciowych dla wszystkich użytkowników</message>
+ <message xml:lang="ru">СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ð¾Ð»Ð¸Ñ‚Ð¸ÐºÐ° запрещает изменение наÑтроек Ð´Ð»Ñ Ð²Ñех пользователей</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до параметрів мережі Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
@@ -584,6 +626,7 @@
<description xml:lang="sv">Ändra bestående värdnamn för systemet</description>
<description xml:lang="ta">நிலையான கணினி பà¯à®°à®µà®²à®ªà¯à®ªà¯†à®¯à®°à¯ˆ மாறà¯à®±à®¿à®¯à®®à¯ˆ</description>
<description xml:lang="te">నిరంతర సిసà±à°Ÿà°®à± హోసà±à°Ÿà±à°¨à°¾à°®à°®à± మారà±à°šà±à°®à±</description>
+ <description xml:lang="uk">Змінити поÑтійну назву вузла у мережі</description>
<description xml:lang="zh_CN">更改系统固有主机å</description>
<description xml:lang="zh_TW">修改永久系統的主機å稱</description>
<message>System policy prevents modification of the persistent system hostname</message>
@@ -623,6 +666,7 @@
<message xml:lang="sv">Systemets policy förhindrar ändring av bestående värdnamn för systemet</message>
<message xml:lang="ta">நிலையான கணினி பà¯à®°à®µà®²à®ªà¯†à®¯à®°à¯ மாறà¯à®±à®¿à®¯à®®à¯ˆà®ªà¯à®ªà®¤à¯ˆ கணினி பாலிசி தடà¯à®•à¯à®•à®¿à®±à®¤à¯</message>
<message xml:lang="te">నిరంతర సిసà±à°Ÿà°®à± హోసà±à°Ÿà±à°¨à°¾à°®à°®à±à°¨à± సవరించà±à°Ÿà°¨à± సిసà±à°Ÿà°®à± విధానమౠనిరోధించà±à°šà±à°¨à±à°¨à°¦à°¿</message>
+ <message xml:lang="uk">Правила ÑиÑтеми заборонÑÑŽÑ‚ÑŒ внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до поÑтійної назви вузла у мережі</message>
<message xml:lang="zh_CN">系统策略阻止更改系统固有主机å</message>
<message xml:lang="zh_TW">系統政策讓您無法修改永久的系統主機å稱</message>
<defaults>
diff --git a/src/NetworkManager.conf b/src/NetworkManager.conf
index b256a444e..15b11b7e1 100644
--- a/src/NetworkManager.conf
+++ b/src/NetworkManager.conf
@@ -10,6 +10,19 @@
send_interface="org.freedesktop.NetworkManager.PPP"/>
<allow send_interface="org.freedesktop.NetworkManager.SecretAgent"/>
+
+ <!-- Allow NM to talk to known VPN plugins; due to a bug in
+ the D-Bus daemon, when a plugin is installed and the user
+ immediately tries to use it, the VPN plugin's rules aren't
+ always loaded into dbus-daemon. Those rules allow NM to
+ talk to the plugin. Oops. Work around that by explicitly
+ allowing NM to talk to VPN plugins here.
+ -->
+ <allow send_destination="org.freedesktop.NetworkManager.openconnect"/>
+ <allow send_destination="org.freedesktop.NetworkManager.openswan"/>
+ <allow send_destination="org.freedesktop.NetworkManager.openvpn"/>
+ <allow send_destination="org.freedesktop.NetworkManager.pptp"/>
+ <allow send_destination="org.freedesktop.NetworkManager.vpnc"/>
</policy>
<policy at_console="true">
<allow send_destination="org.freedesktop.NetworkManager"/>
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index 5a6a61b64..f96f2aadb 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -39,6 +39,9 @@
#include "nm-setting-connection.h"
#include "nm-setting-ip4-config.h"
#include "nm-setting-ip6-config.h"
+#include "nm-setting-wireless.h"
+#include "nm-setting-wireless-security.h"
+#include "nm-manager-auth.h"
#include <netlink/addr.h>
#include <netinet/in.h>
@@ -709,6 +712,33 @@ nm_match_spec_s390_subchannels (const GSList *specs, const char *subchannels)
return FALSE;
}
+const char *
+nm_utils_get_shared_wifi_permission (NMConnection *connection)
+{
+ NMSettingWireless *s_wifi;
+ NMSettingWirelessSecurity *s_wsec;
+ NMSettingIP4Config *s_ip4;
+ const char *method = NULL;
+
+ s_ip4 = nm_connection_get_setting_ip4_config (connection);
+ if (s_ip4)
+ method = nm_setting_ip4_config_get_method (s_ip4);
+
+ if (g_strcmp0 (method, NM_SETTING_IP4_CONFIG_METHOD_SHARED) != 0)
+ return NULL; /* Not shared */
+
+ s_wifi = nm_connection_get_setting_wireless (connection);
+ if (s_wifi) {
+ s_wsec = nm_connection_get_setting_wireless_security (connection);
+ if (nm_setting_wireless_get_security (s_wifi) || s_wsec)
+ return NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED;
+ else
+ return NM_AUTH_PERMISSION_WIFI_SHARE_OPEN;
+ }
+
+ return NULL;
+}
+
/*********************************/
static void
diff --git a/src/NetworkManagerUtils.h b/src/NetworkManagerUtils.h
index aaa267fb0..1bf741ed3 100644
--- a/src/NetworkManagerUtils.h
+++ b/src/NetworkManagerUtils.h
@@ -52,6 +52,7 @@ void nm_utils_call_dispatcher (const char *action,
gboolean nm_match_spec_hwaddr (const GSList *specs, const char *hwaddr);
gboolean nm_match_spec_s390_subchannels (const GSList *specs, const char *subchannels);
+const char *nm_utils_get_shared_wifi_permission (NMConnection *connection);
GHashTable *value_hash_create (void);
void value_hash_add (GHashTable *hash,
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index fc5823270..49cd74e58 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -165,7 +165,7 @@ merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src)
}
static void
-merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
+merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src, const char *iface)
{
guint32 num, i;
@@ -181,8 +181,15 @@ merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
if (inet_ntop (AF_INET, &(addr->s6_addr32[3]), buf, INET_ADDRSTRLEN) > 0)
add_string_item (rc->nameservers, buf);
} else {
- if (inet_ntop (AF_INET6, addr, buf, INET6_ADDRSTRLEN) > 0)
- add_string_item (rc->nameservers, buf);
+ if (inet_ntop (AF_INET6, addr, buf, INET6_ADDRSTRLEN) > 0) {
+ if (IN6_IS_ADDR_LINKLOCAL (addr) && strchr (buf, '%') == NULL) {
+ char *tmp;
+ tmp = g_strdup_printf ("%s%%%s", buf, iface);
+ add_string_item (rc->nameservers, tmp);
+ g_free (tmp);
+ } else
+ add_string_item (rc->nameservers, buf);
+ }
}
}
@@ -594,9 +601,9 @@ update_dns (NMDnsManager *self,
merge_one_ip4_config (&rc, priv->ip4_device_config);
if (priv->ip6_vpn_config)
- merge_one_ip6_config (&rc, priv->ip6_vpn_config);
+ merge_one_ip6_config (&rc, priv->ip6_vpn_config, iface);
if (priv->ip6_device_config)
- merge_one_ip6_config (&rc, priv->ip6_device_config);
+ merge_one_ip6_config (&rc, priv->ip6_device_config, iface);
for (iter = priv->configs; iter; iter = g_slist_next (iter)) {
if ( (iter->data == priv->ip4_vpn_config)
@@ -612,7 +619,7 @@ update_dns (NMDnsManager *self,
} else if (NM_IS_IP6_CONFIG (iter->data)) {
NMIP6Config *config = NM_IP6_CONFIG (iter->data);
- merge_one_ip6_config (&rc, config);
+ merge_one_ip6_config (&rc, config, iface);
} else
g_assert_not_reached ();
}
diff --git a/src/modem-manager/nm-modem.c b/src/modem-manager/nm-modem.c
index 33f10789c..1823e5e6d 100644
--- a/src/modem-manager/nm-modem.c
+++ b/src/modem-manager/nm-modem.c
@@ -86,6 +86,17 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
+static void
+update_mm_enabled (NMModem *self, gboolean new_enabled)
+{
+ NMModemPrivate *priv = NM_MODEM_GET_PRIVATE (self);
+
+ if (priv->mm_enabled != new_enabled) {
+ priv->mm_enabled = new_enabled;
+ g_object_notify (G_OBJECT (self), NM_MODEM_ENABLED);
+ }
+}
+
gboolean
nm_modem_get_mm_enabled (NMModem *self)
{
@@ -822,8 +833,7 @@ get_mm_enabled_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_d
}
if (G_VALUE_HOLDS_BOOLEAN (&value)) {
- NM_MODEM_GET_PRIVATE (self)->mm_enabled = g_value_get_boolean (&value);
- g_object_notify (G_OBJECT (self), NM_MODEM_ENABLED);
+ update_mm_enabled (self, g_value_get_boolean (&value));
} else
nm_log_warn (LOGD_MB, "failed get modem enabled state: unexpected reply type");
@@ -880,6 +890,9 @@ nm_modem_set_mm_enabled (NMModem *self, gboolean enabled)
self, NULL,
G_TYPE_BOOLEAN, enabled,
G_TYPE_INVALID);
+ /* If we are disabling the modem, stop saying that it's enabled. */
+ if (!enabled)
+ update_mm_enabled (self, enabled);
}
}
@@ -898,8 +911,7 @@ modem_properties_changed (DBusGProxy *proxy,
value = g_hash_table_lookup (props, "Enabled");
if (value && G_VALUE_HOLDS_BOOLEAN (value)) {
- priv->mm_enabled = g_value_get_boolean (value);
- g_object_notify (G_OBJECT (self), NM_MODEM_ENABLED);
+ update_mm_enabled (self, g_value_get_boolean (value));
}
value = g_hash_table_lookup (props, "IpMethod");
diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c
index f470e090c..35b736705 100644
--- a/src/nm-device-ethernet.c
+++ b/src/nm-device-ethernet.c
@@ -34,6 +34,7 @@
#include <unistd.h>
#include <linux/if.h>
#include <errno.h>
+#include <netinet/ether.h>
#include <gudev/gudev.h>
@@ -881,6 +882,8 @@ real_get_best_auto_connection (NMDevice *dev,
NMSettingWired *s_wired;
const char *connection_type;
gboolean is_pppoe = FALSE;
+ const GSList *mac_blacklist, *mac_blacklist_iter;
+ gboolean mac_blacklist_found = FALSE;
s_con = (NMSettingConnection *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION);
g_assert (s_con);
@@ -909,6 +912,25 @@ real_get_best_auto_connection (NMDevice *dev,
mac = nm_setting_wired_get_mac_address (s_wired);
if (try_mac && mac && memcmp (mac->data, &priv->perm_hw_addr, ETH_ALEN))
continue;
+
+ /* Check for MAC address blacklist */
+ mac_blacklist = nm_setting_wired_get_mac_address_blacklist (s_wired);
+ for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter;
+ mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (mac_blacklist_iter->data, &addr)) {
+ g_warn_if_reached ();
+ continue;
+ }
+ if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) {
+ mac_blacklist_found = TRUE;
+ break;
+ }
+ }
+ /* Found device MAC address in the blacklist - do not use this connection */
+ if (mac_blacklist_found)
+ continue;
}
return connection;
@@ -1605,6 +1627,7 @@ real_check_connection_compatible (NMDevice *device,
gboolean is_pppoe = FALSE;
const GByteArray *mac;
gboolean try_mac = TRUE;
+ const GSList *mac_blacklist, *mac_blacklist_iter;
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
g_assert (s_con);
@@ -1645,6 +1668,25 @@ real_check_connection_compatible (NMDevice *device,
"The connection's MAC address did not match this device.");
return FALSE;
}
+
+ /* Check for MAC address blacklist */
+ mac_blacklist = nm_setting_wired_get_mac_address_blacklist (s_wired);
+ for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter;
+ mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (mac_blacklist_iter->data, &addr)) {
+ g_warn_if_reached ();
+ continue;
+ }
+ if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) {
+ g_set_error (error,
+ NM_ETHERNET_ERROR, NM_ETHERNET_ERROR_CONNECTION_INCOMPATIBLE,
+ "The connection's MAC address (%s) is blacklisted in %s.",
+ (char *) mac_blacklist_iter->data, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST);
+ return FALSE;
+ }
+ }
}
// FIXME: check bitrate against device capabilities
diff --git a/src/nm-device-olpc-mesh.c b/src/nm-device-olpc-mesh.c
index 8c8f9d0db..883223442 100644
--- a/src/nm-device-olpc-mesh.c
+++ b/src/nm-device-olpc-mesh.c
@@ -104,7 +104,6 @@ struct _NMDeviceOlpcMeshPrivate
gint8 num_freqs;
guint32 freqs[IW_MAX_FREQUENCIES];
- guint8 we_version;
gboolean up;
NMDevice * companion;
@@ -147,44 +146,7 @@ nm_olpc_mesh_error_get_type (void)
static guint32
real_get_generic_capabilities (NMDevice *dev)
{
- int fd;
- guint32 caps = NM_DEVICE_CAP_NONE;
- struct iw_range range;
- struct iwreq wrq;
- const char *iface = nm_device_get_iface (dev);
-
- /* Check for Wireless Extensions support >= 16 for wireless devices */
-
- fd = socket (PF_INET, SOCK_DGRAM, 0);
- if (fd < 0) {
- nm_log_warn (LOGD_OLPC_MESH, "couldn't open control socket.");
- goto out;
- }
-
- memset (&wrq, 0, sizeof (struct iwreq));
- memset (&range, 0, sizeof (struct iw_range));
- strncpy (wrq.ifr_name, iface, IFNAMSIZ);
- wrq.u.data.pointer = (caddr_t) &range;
- wrq.u.data.length = sizeof (struct iw_range);
-
- if (ioctl (fd, SIOCGIWRANGE, &wrq) < 0) {
- nm_log_warn (LOGD_OLPC_MESH, "couldn't get driver range information.");
- goto out;
- }
-
- if ((wrq.u.data.length < 300) || (range.we_version_compiled < 16)) {
- nm_log_warn (LOGD_OLPC_MESH,
- "(%s): driver's Wireless Extensions version (%d) is too old.",
- iface, range.we_version_compiled);
- goto out;
- } else {
- caps |= NM_DEVICE_CAP_NM_SUPPORTED;
- }
-
-out:
- if (fd >= 0)
- close (fd);
- return caps;
+ return NM_DEVICE_CAP_NM_SUPPORTED;
}
static void
@@ -193,7 +155,6 @@ nm_device_olpc_mesh_init (NMDeviceOlpcMesh * self)
NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (self);
priv->dispose_has_run = FALSE;
- priv->we_version = 0;
priv->companion = NULL;
priv->stage1_waiting = FALSE;
@@ -276,15 +237,24 @@ constructor (GType type,
wrq.u.data.pointer = (caddr_t) &range;
wrq.u.data.length = sizeof (struct iw_range);
- if (ioctl (fd, SIOCGIWRANGE, &wrq) < 0)
+ if (ioctl (fd, SIOCGIWRANGE, &wrq) < 0) {
+ nm_log_info (LOGD_HW | LOGD_WIFI, "(%s): driver WEXT range request failed",
+ nm_device_get_iface (NM_DEVICE (self)));
+ goto error;
+ }
+
+ if ((wrq.u.data.length < 300) || (range.we_version_compiled < 21)) {
+ nm_log_info (LOGD_HW | LOGD_WIFI,
+ "(%s): driver WEXT version too old (got %d, expected >= 21)",
+ nm_device_get_iface (NM_DEVICE (self)),
+ range.we_version_compiled);
goto error;
+ }
priv->num_freqs = MIN (range.num_frequency, IW_MAX_FREQUENCIES);
for (i = 0; i < priv->num_freqs; i++)
priv->freqs[i] = iw_freq_to_uint32 (&range.freq[i]);
- priv->we_version = range.we_version_compiled;
-
close (fd);
/* shorter timeout for mesh connectivity */
@@ -453,7 +423,7 @@ create_socket_with_request (NMDevice *self, struct iwreq *req)
g_return_val_if_fail (self != NULL, -1);
sk = socket (AF_INET, SOCK_DGRAM, 0);
- if (!sk) {
+ if (sk == -1) {
nm_log_err (LOGD_OLPC_MESH, "Couldn't create socket: %d.", errno);
return -1;
}
@@ -531,7 +501,6 @@ nm_device_olpc_mesh_set_channel (NMDeviceOlpcMesh *self, guint32 channel)
static void
nm_device_olpc_mesh_set_ssid (NMDeviceOlpcMesh *self, const GByteArray * ssid)
{
- NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (self);
int sk;
struct iwreq wrq;
const char * iface;
@@ -541,7 +510,7 @@ nm_device_olpc_mesh_set_ssid (NMDeviceOlpcMesh *self, const GByteArray * ssid)
g_return_if_fail (self != NULL);
sk = socket (AF_INET, SOCK_DGRAM, 0);
- if (!sk) {
+ if (sk == -1) {
nm_log_err (LOGD_OLPC_MESH, "Couldn't create socket: %d.", errno);
return;
}
@@ -554,24 +523,10 @@ nm_device_olpc_mesh_set_ssid (NMDeviceOlpcMesh *self, const GByteArray * ssid)
memcpy (buf, ssid->data, MIN (sizeof (buf) - 1, len));
}
wrq.u.essid.pointer = (caddr_t) buf;
-
- if (priv->we_version < 21) {
- /* For historic reasons, set SSID length to include one extra
- * character, C string nul termination, even though SSID is
- * really an octet string that should not be presented as a C
- * string. Some Linux drivers decrement the length by one and
- * can thus end up missing the last octet of the SSID if the
- * length is not incremented here. WE-21 changes this to
- * explicitly require the length _not_ to include nul
- * termination. */
- if (len)
- len++;
- }
wrq.u.essid.length = len;
wrq.u.essid.flags = (len > 0) ? 1 : 0; /* 1=enable SSID, 0=disable/any */
strncpy (wrq.ifr_name, iface, IFNAMSIZ);
-
if (ioctl (sk, SIOCSIWESSID, &wrq) < 0) {
if (errno != ENODEV) {
nm_log_err (LOGD_OLPC_MESH, "(%s): error setting SSID to '%s': %s",
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index 7a6e7528b..278d9a063 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -33,6 +33,7 @@
#include <linux/sockios.h>
#include <linux/ethtool.h>
#include <sys/ioctl.h>
+#include <netinet/ether.h>
#include "nm-glib-compat.h"
#include "nm-device.h"
@@ -55,6 +56,7 @@
#include "nm-setting-ip4-config.h"
#include "nm-setting-ip6-config.h"
#include "nm-system.h"
+#include "nm-settings-connection.h"
static gboolean impl_device_get_access_points (NMDeviceWifi *device,
GPtrArray **aps,
@@ -153,7 +155,6 @@ struct _NMDeviceWifiPrivate {
guint link_timeout_id;
/* Static options from driver */
- guint8 we_version;
guint32 capabilities;
gboolean has_scan_capa_ssid;
};
@@ -503,29 +504,14 @@ static guint32
real_get_generic_capabilities (NMDevice *dev)
{
int fd, err;
- guint32 caps = NM_DEVICE_CAP_NONE, response_len = 0;
+ guint32 caps = NM_DEVICE_CAP_NONE;
struct iwreq wrq;
- struct iw_range range;
const char *iface = nm_device_get_iface (dev);
- gboolean success;
-
- memset (&range, 0, sizeof (struct iw_range));
- success = wireless_get_range (NM_DEVICE_WIFI (dev), &range, &response_len);
- if (!success)
- return NM_DEVICE_CAP_NONE;
-
- /* Check for Wireless Extensions support >= 16 for wireless devices */
- if ((response_len < 300) || (range.we_version_compiled < 16)) {
- nm_log_err (LOGD_HW | LOGD_WIFI,
- "(%s): driver's Wireless Extensions version (%d) is too old.",
- iface, range.we_version_compiled);
- return NM_DEVICE_CAP_NONE;
- }
fd = socket (PF_INET, SOCK_DGRAM, 0);
if (fd < 0) {
nm_log_err (LOGD_HW, "(%s): couldn't open control socket.", iface);
- goto out;
+ return NM_DEVICE_CAP_NONE;
}
/* Cards that don't scan aren't supported */
@@ -538,7 +524,6 @@ real_get_generic_capabilities (NMDevice *dev)
else
caps |= NM_DEVICE_CAP_NM_SUPPORTED;
-out:
return caps;
}
@@ -548,11 +533,8 @@ out:
NM_WIFI_DEVICE_CAP_RSN)
static guint32
-get_wireless_capabilities (NMDeviceWifi *self,
- iwrange * range,
- guint32 data_len)
+get_wireless_capabilities (NMDeviceWifi *self, iwrange *range)
{
- guint32 minlen;
guint32 caps = NM_WIFI_DEVICE_CAP_NONE;
const char * iface;
@@ -561,39 +543,35 @@ get_wireless_capabilities (NMDeviceWifi *self,
iface = nm_device_get_iface (NM_DEVICE (self));
- minlen = ((char *) &range->enc_capa) - (char *) range + sizeof (range->enc_capa);
-
/* All drivers should support WEP by default */
caps |= NM_WIFI_DEVICE_CAP_CIPHER_WEP40 | NM_WIFI_DEVICE_CAP_CIPHER_WEP104;
- if ((data_len >= minlen) && range->we_version_compiled >= 18) {
- if (range->enc_capa & IW_ENC_CAPA_CIPHER_TKIP)
- caps |= NM_WIFI_DEVICE_CAP_CIPHER_TKIP;
+ if (range->enc_capa & IW_ENC_CAPA_CIPHER_TKIP)
+ caps |= NM_WIFI_DEVICE_CAP_CIPHER_TKIP;
- if (range->enc_capa & IW_ENC_CAPA_CIPHER_CCMP)
- caps |= NM_WIFI_DEVICE_CAP_CIPHER_CCMP;
+ if (range->enc_capa & IW_ENC_CAPA_CIPHER_CCMP)
+ caps |= NM_WIFI_DEVICE_CAP_CIPHER_CCMP;
- if (range->enc_capa & IW_ENC_CAPA_WPA)
- caps |= NM_WIFI_DEVICE_CAP_WPA;
+ if (range->enc_capa & IW_ENC_CAPA_WPA)
+ caps |= NM_WIFI_DEVICE_CAP_WPA;
- if (range->enc_capa & IW_ENC_CAPA_WPA2)
- caps |= NM_WIFI_DEVICE_CAP_RSN;
+ if (range->enc_capa & IW_ENC_CAPA_WPA2)
+ caps |= NM_WIFI_DEVICE_CAP_RSN;
- /* Check for cipher support but not WPA support */
- if ( (caps & (NM_WIFI_DEVICE_CAP_CIPHER_TKIP | NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
- && !(caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN))) {
- nm_log_warn (LOGD_WIFI, "%s: device supports WPA ciphers but not WPA protocol; "
- "WPA unavailable.", iface);
- caps &= ~WPA_CAPS;
- }
+ /* Check for cipher support but not WPA support */
+ if ( (caps & (NM_WIFI_DEVICE_CAP_CIPHER_TKIP | NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
+ && !(caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN))) {
+ nm_log_warn (LOGD_WIFI, "%s: device supports WPA ciphers but not WPA protocol; "
+ "WPA unavailable.", iface);
+ caps &= ~WPA_CAPS;
+ }
- /* Check for WPA support but not cipher support */
- if ( (caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN))
- && !(caps & (NM_WIFI_DEVICE_CAP_CIPHER_TKIP | NM_WIFI_DEVICE_CAP_CIPHER_CCMP))) {
- nm_log_warn (LOGD_WIFI, "%s: device supports WPA protocol but not WPA ciphers; "
- "WPA unavailable.", iface);
- caps &= ~WPA_CAPS;
- }
+ /* Check for WPA support but not cipher support */
+ if ( (caps & (NM_WIFI_DEVICE_CAP_WPA | NM_WIFI_DEVICE_CAP_RSN))
+ && !(caps & (NM_WIFI_DEVICE_CAP_CIPHER_TKIP | NM_WIFI_DEVICE_CAP_CIPHER_CCMP))) {
+ nm_log_warn (LOGD_WIFI, "%s: device supports WPA protocol but not WPA ciphers; "
+ "WPA unavailable.", iface);
+ caps &= ~WPA_CAPS;
}
return caps;
@@ -665,8 +643,19 @@ constructor (GType type,
memset (&range, 0, sizeof (struct iw_range));
success = wireless_get_range (NM_DEVICE_WIFI (object), &range, &response_len);
- if (!success)
+ if (!success) {
+ nm_log_info (LOGD_HW | LOGD_WIFI, "(%s): driver WEXT range request failed",
+ nm_device_get_iface (NM_DEVICE (self)));
goto error;
+ }
+
+ if ((response_len < 300) || (range.we_version_compiled < 21)) {
+ nm_log_info (LOGD_HW | LOGD_WIFI,
+ "(%s): driver WEXT version too old (got %d, expected >= 21)",
+ nm_device_get_iface (NM_DEVICE (self)),
+ range.we_version_compiled);
+ goto error;
+ }
priv->max_qual.qual = range.max_qual.qual;
priv->max_qual.level = range.max_qual.level;
@@ -677,8 +666,6 @@ constructor (GType type,
for (i = 0; i < priv->num_freqs; i++)
priv->freqs[i] = iw_freq_to_uint32 (&range.freq[i]);
- priv->we_version = range.we_version_compiled;
-
/* Check for the ability to scan specific SSIDs. Until the scan_capa
* field gets added to wireless-tools, need to work around that by casting
* to the custom structure.
@@ -698,7 +685,7 @@ constructor (GType type,
}
/* 802.11 wireless-specific capabilities */
- priv->capabilities = get_wireless_capabilities (self, &range, response_len);
+ priv->capabilities = get_wireless_capabilities (self, &range);
/* Connect to the supplicant manager */
priv->supplicant.mgr = nm_supplicant_manager_get ();
@@ -978,6 +965,31 @@ get_active_ap (NMDeviceWifi *self,
}
static void
+update_seen_bssids_cache (NMDeviceWifi *self, NMAccessPoint *ap)
+{
+ NMActRequest *req;
+ NMConnection *connection;
+
+ g_return_if_fail (NM_IS_DEVICE_WIFI (self));
+
+ if (ap == NULL)
+ return;
+
+ /* Don't cache the BSSID for Ad-Hoc APs */
+ if (nm_ap_get_mode (ap) != NM_802_11_MODE_INFRA)
+ return;
+
+ if (nm_device_get_state (NM_DEVICE (self)) == NM_DEVICE_STATE_ACTIVATED) {
+ req = nm_device_get_act_request (NM_DEVICE (self));
+ if (req) {
+ connection = nm_act_request_get_connection (req);
+ nm_settings_connection_add_seen_bssid (NM_SETTINGS_CONNECTION (connection),
+ nm_ap_get_address (ap));
+ }
+ }
+}
+
+static void
set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
{
NMDeviceWifiPrivate *priv;
@@ -1003,6 +1015,9 @@ set_current_ap (NMDeviceWifi *self, NMAccessPoint *new_ap)
*/
priv->ap_list = g_slist_remove (priv->ap_list, new_ap);
priv->ap_list = g_slist_prepend (priv->ap_list, new_ap);
+
+ /* Update seen BSSIDs cache */
+ update_seen_bssids_cache (self, priv->current_ap);
}
/* Unref old AP here to ensure object lives if new_ap == old_ap */
@@ -1303,6 +1318,7 @@ real_check_connection_compatible (NMDevice *device,
NMSettingConnection *s_con;
NMSettingWireless *s_wireless;
const GByteArray *mac;
+ const GSList *mac_blacklist, *mac_blacklist_iter;
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
g_assert (s_con);
@@ -1330,6 +1346,25 @@ real_check_connection_compatible (NMDevice *device,
return FALSE;
}
+ /* Check for MAC address blacklist */
+ mac_blacklist = nm_setting_wireless_get_mac_address_blacklist (s_wireless);
+ for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter;
+ mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (mac_blacklist_iter->data, &addr)) {
+ g_warn_if_reached ();
+ continue;
+ }
+ if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) {
+ g_set_error (error,
+ NM_WIFI_ERROR, NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE,
+ "The connection's MAC address (%s) is blacklisted in %s.",
+ (char *) mac_blacklist_iter->data, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST);
+ return FALSE;
+ }
+ }
+
// FIXME: check channel/freq/band against bands the hardware supports
// FIXME: check encryption against device capabilities
// FIXME: check bitrate against device capabilities
@@ -1574,6 +1609,8 @@ real_get_best_auto_connection (NMDevice *dev,
NMSettingConnection *s_con;
NMSettingWireless *s_wireless;
const GByteArray *mac;
+ const GSList *mac_blacklist, *mac_blacklist_iter;
+ gboolean mac_blacklist_found = FALSE;
NMSettingIP4Config *s_ip4;
const char *method = NULL;
@@ -1591,7 +1628,26 @@ real_get_best_auto_connection (NMDevice *dev,
mac = nm_setting_wireless_get_mac_address (s_wireless);
if (mac && memcmp (mac->data, &priv->perm_hw_addr, ETH_ALEN))
+ continue;
+
+ /* Check for MAC address blacklist */
+ mac_blacklist = nm_setting_wireless_get_mac_address_blacklist (s_wireless);
+ for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter;
+ mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) {
+ struct ether_addr addr;
+
+ if (!ether_aton_r (mac_blacklist_iter->data, &addr)) {
+ g_warn_if_reached ();
continue;
+ }
+ if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) {
+ mac_blacklist_found = TRUE;
+ break;
+ }
+ }
+ /* Found device MAC address in the blacklist - do not use this connection */
+ if (mac_blacklist_found)
+ continue;
/* Use the connection if it's a shared connection */
s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
@@ -1820,7 +1876,7 @@ nm_device_wifi_get_ssid (NMDeviceWifi *self)
priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
sk = socket (AF_INET, SOCK_DGRAM, 0);
- if (!sk) {
+ if (sk == -1) {
nm_log_err (LOGD_HW, "couldn't create socket: %d.", errno);
return NULL;
}
@@ -1844,13 +1900,6 @@ nm_device_wifi_get_ssid (NMDeviceWifi *self)
len = wrq.u.essid.length;
if (!nm_utils_is_empty_ssid ((guint8 *) ssid, len)) {
- /* Some drivers include nul termination in the SSID, so let's
- * remove it here before further processing. WE-21 changes this
- * to explicitly require the length _not_ to include nul
- * termination. */
- if (len > 0 && ssid[len - 1] == '\0' && priv->we_version < 21)
- len--;
-
priv->ssid = g_byte_array_sized_new (len);
g_byte_array_append (priv->ssid, (const guint8 *) ssid, len);
}
@@ -2446,88 +2495,86 @@ remove_link_timeout (NMDeviceWifi *self)
static gboolean
link_timeout_cb (gpointer user_data)
{
- NMDevice * dev = NM_DEVICE (user_data);
- NMDeviceWifi * self = NM_DEVICE_WIFI (dev);
- NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
- NMActRequest * req = NULL;
- NMAccessPoint * ap = NULL;
- NMConnection * connection;
- const char * setting_name;
- gboolean auth_enforced, encrypted = FALSE;
-
- g_assert (dev);
+ NMDevice *dev = NM_DEVICE (user_data);
- priv->link_timeout_id = 0;
+ nm_log_warn (LOGD_WIFI, "(%s): link timed out.", nm_device_get_iface (dev));
- req = nm_device_get_act_request (dev);
- ap = nm_device_wifi_get_activation_ap (self);
- if (req == NULL || ap == NULL) {
- /* shouldn't ever happen */
- nm_log_err (LOGD_WIFI, "couldn't get activation request or activation AP.");
- if (nm_device_is_activating (dev)) {
- cleanup_association_attempt (self, TRUE);
- nm_device_state_changed (dev, NM_DEVICE_STATE_FAILED, NM_DEVICE_STATE_REASON_NONE);
- }
- return FALSE;
- }
+ NM_DEVICE_WIFI_GET_PRIVATE (dev)->link_timeout_id = 0;
/* Disconnect event while activated; the supplicant hasn't been able
* to reassociate within the timeout period, so the connection must
* fail.
*/
- if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED) {
+ if (nm_device_get_state (dev) == NM_DEVICE_STATE_ACTIVATED)
nm_device_state_changed (dev, NM_DEVICE_STATE_DISCONNECTED, NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT);
- return FALSE;
- }
- /* Disconnect event during initial authentication and credentials
- * ARE checked - we are likely to have wrong key. Ask the user for
- * another one.
+ return FALSE;
+}
+
+static gboolean
+handle_authenticate_fail (NMDeviceWifi *self, guint32 new_state, guint32 old_state)
+{
+ NMDevice *device = NM_DEVICE (self);
+ NMSetting8021x *s_8021x;
+ NMSettingWirelessSecurity *s_wsec;
+ NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+ NMActRequest *req;
+ NMConnection *connection;
+ const char *setting_name = NULL;
+ gboolean handled = FALSE;
+
+ g_return_val_if_fail (new_state == NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED, FALSE);
+
+ /* Only care about ASSOCIATED -> DISCONNECTED transitions since 802.1x stuff
+ * happens between the ASSOCIATED and AUTHENTICATED states.
*/
- if (nm_device_get_state (dev) != NM_DEVICE_STATE_CONFIG)
- goto time_out;
+ if (old_state != NM_SUPPLICANT_INTERFACE_STATE_ASSOCIATED)
+ return FALSE;
- connection = nm_act_request_get_connection (req);
- if (!connection)
- goto time_out;
+ req = nm_device_get_act_request (NM_DEVICE (self));
+ g_return_val_if_fail (req != NULL, FALSE);
- auth_enforced = ap_auth_enforced (connection, ap, &encrypted);
- if (!encrypted || !auth_enforced)
- goto time_out;
+ connection = nm_act_request_get_connection (req);
+ g_return_val_if_fail (connection != NULL, FALSE);
- /* Drivers are still just too crappy, and emit too many disassociation
- * events during connection. So for now, just let the driver and supplicant
- * keep trying to associate, and don't ask for new secrets when we get
- * disconnected during association.
+ /* If it's an 802.1x or LEAP connection with "always ask"/unsaved secrets
+ * then we need to ask again because it might be an OTP token and the PIN
+ * may have changed.
*/
- if (0) {
+ s_8021x = nm_connection_get_setting_802_1x (connection);
+ s_wsec = nm_connection_get_setting_wireless_security (connection);
+
+ if (s_8021x) {
+ nm_setting_get_secret_flags (NM_SETTING (s_8021x),
+ NM_SETTING_802_1X_PASSWORD,
+ &secret_flags,
+ NULL);
+ setting_name = NM_SETTING_802_1X_SETTING_NAME;
+ } else if (s_wsec) {
+ nm_setting_get_secret_flags (NM_SETTING (s_wsec),
+ NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD,
+ &secret_flags,
+ NULL);
+ setting_name = NM_SETTING_WIRELESS_SECURITY_SETTING_NAME;
+ }
+
+ if (setting_name && (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)) {
+ NMSettingsGetSecretsFlags flags = NM_SETTINGS_GET_SECRETS_FLAG_ALLOW_INTERACTION
+ | NM_SETTINGS_GET_SECRETS_FLAG_REQUEST_NEW;
+
nm_connection_clear_secrets (connection);
- setting_name = nm_connection_need_secrets (connection, NULL);
- if (!setting_name)
- goto time_out;
- /* Association/authentication failed during association, probably have a
- * bad encryption key and the authenticating entity (AP, RADIUS server, etc)
- * denied the association due to bad credentials.
- */
nm_log_info (LOGD_DEVICE | LOGD_WIFI,
"Activation (%s/wireless): disconnected during association,"
- " asking for new key.", nm_device_get_iface (dev));
- cleanup_association_attempt (self, TRUE);
- nm_device_state_changed (dev, NM_DEVICE_STATE_NEED_AUTH, NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT);
- nm_act_request_get_secrets (req,
- setting_name,
- NM_SETTINGS_GET_SECRETS_FLAG_REQUEST_NEW,
- NULL,
- wifi_secrets_cb,
- self);
+ " asking for new key.", nm_device_get_iface (device));
- return FALSE;
+ cleanup_association_attempt (self, TRUE);
+ nm_device_state_changed (device, NM_DEVICE_STATE_NEED_AUTH, NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT);
+ nm_act_request_get_secrets (req, setting_name, flags, NULL, wifi_secrets_cb, self);
+ handled = TRUE;
}
-time_out:
- nm_log_warn (LOGD_WIFI, "(%s): link timed out.", nm_device_get_iface (dev));
- return FALSE;
+ return handled;
}
static void
@@ -2596,14 +2643,20 @@ supplicant_iface_state_cb (NMSupplicantInterface *iface,
break;
case NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED:
if ((devstate == NM_DEVICE_STATE_ACTIVATED) || nm_device_is_activating (device)) {
- /* Start the link timeout so we allow some time for reauthentication,
- * use a longer timeout if we are scanning since some cards take a
- * while to scan.
+ /* Disconnect during authentication means the 802.1x password is wrong */
+ if (handle_authenticate_fail (self, new_state, old_state))
+ break;
+ }
+
+ if (devstate == NM_DEVICE_STATE_ACTIVATED) {
+ /* If it's a disconnect while activated then start the link timer
+ * to let the supplicant reconnect for a bit and if that doesn't
+ * work kill the connection and try something else. Allow a bit
+ * more time if the card is scanning since sometimes the link will
+ * drop while scanning and come back when the scan is done.
*/
- if (!priv->link_timeout_id) {
- priv->link_timeout_id = g_timeout_add_seconds (scanning ? 30 : 15,
- link_timeout_cb, self);
- }
+ if (priv->link_timeout_id == 0)
+ priv->link_timeout_id = g_timeout_add_seconds (scanning ? 30 : 15, link_timeout_cb, self);
}
break;
case NM_SUPPLICANT_INTERFACE_STATE_DOWN:
@@ -3436,11 +3489,13 @@ activation_success_handler (NMDevice *dev)
done:
periodic_update (self);
+ /* Update seen BSSIDs cache with the connected AP */
+ update_seen_bssids_cache (self, priv->current_ap);
+
/* Reset scan interval to something reasonable */
priv->scan_interval = SCAN_INTERVAL_MIN + (SCAN_INTERVAL_STEP * 2);
}
-
static void
activation_failure_handler (NMDevice *dev)
{
@@ -3565,6 +3620,10 @@ device_state_changed (NMDevice *device,
}
clear_aps = TRUE;
break;
+ case NM_DEVICE_STATE_NEED_AUTH:
+ if (priv->supplicant.iface)
+ nm_supplicant_interface_disconnect (priv->supplicant.iface);
+ break;
case NM_DEVICE_STATE_ACTIVATED:
activation_success_handler (device);
break;
diff --git a/src/nm-device.c b/src/nm-device.c
index 4b7ec5dfb..1301197ac 100644
--- a/src/nm-device.c
+++ b/src/nm-device.c
@@ -2891,34 +2891,6 @@ check_connection_compatible (NMDeviceInterface *dev_iface,
}
static gboolean
-device_activation_precheck (NMDevice *self, NMConnection *connection, GError **error)
-{
- NMConnection *current_connection;
-
- g_return_val_if_fail (NM_IS_DEVICE (self), FALSE);
- g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
-
- if (nm_device_get_state (self) != NM_DEVICE_STATE_ACTIVATED)
- return TRUE;
-
- if (!nm_device_is_activating (self))
- return TRUE;
-
- // FIXME: why not just check connection path & service?
- current_connection = nm_act_request_get_connection (nm_device_get_act_request (self));
- if (nm_connection_compare (connection, current_connection, NM_SETTING_COMPARE_FLAG_EXACT)) {
- /* Already activating or activated with the same connection */
- g_set_error (error,
- NM_DEVICE_INTERFACE_ERROR,
- NM_DEVICE_INTERFACE_ERROR_CONNECTION_ACTIVATING,
- "%s", "Connection is already activating");
- return FALSE;
- }
-
- return TRUE;
-}
-
-static gboolean
nm_device_activate (NMDeviceInterface *device,
NMActRequest *req,
GError **error)
@@ -2926,9 +2898,21 @@ nm_device_activate (NMDeviceInterface *device,
NMDevice *self = NM_DEVICE (device);
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
- if (!device_activation_precheck (self, nm_act_request_get_connection (req), error)) {
- g_assert (*error);
- return FALSE;
+ /* Make sure this connection isn't activated already, or in the process of
+ * being activated.
+ */
+ if ( nm_device_is_activating (self)
+ || (nm_device_get_state (self) == NM_DEVICE_STATE_ACTIVATED)) {
+ NMConnection *new = nm_act_request_get_connection (req);
+ NMConnection *current = nm_act_request_get_connection (priv->act_request);
+
+ if (new == current) {
+ g_set_error_literal (error,
+ NM_DEVICE_INTERFACE_ERROR,
+ NM_DEVICE_INTERFACE_ERROR_CONNECTION_ACTIVATING,
+ "Connection is already activating");
+ return FALSE;
+ }
}
priv->act_request = g_object_ref (req);
diff --git a/src/nm-manager-auth.c b/src/nm-manager-auth.c
index 9171663b1..beed65ab3 100644
--- a/src/nm-manager-auth.c
+++ b/src/nm-manager-auth.c
@@ -173,6 +173,37 @@ nm_auth_chain_get_data (NMAuthChain *self, const char *tag)
return tmp ? tmp->data : NULL;
}
+/**
+ * nm_auth_chain_steal_data:
+ * @self: A #NMAuthChain.
+ * @tag: A "tag" uniquely identifying the data to steal.
+ *
+ * Removes the datum assocated with @tag from the chain's data associations,
+ * without invoking the association's destroy handler. The caller assumes
+ * ownership over the returned value.
+ *
+ * Returns: the datum originally associated with @tag
+ */
+gpointer
+nm_auth_chain_steal_data (NMAuthChain *self, const char *tag)
+{
+ ChainData *tmp;
+ gpointer value = NULL;
+
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (tag != NULL, NULL);
+
+ tmp = g_hash_table_lookup (self->data, tag);
+ if (tmp) {
+ g_hash_table_steal (self->data, tag);
+ value = tmp->data;
+ /* Make sure the destroy handler isn't called when freeing */
+ tmp->destroy = NULL;
+ free_data (tmp);
+ }
+ return value;
+}
+
void
nm_auth_chain_set_data (NMAuthChain *self,
const char *tag,
@@ -309,7 +340,8 @@ auth_call_schedule_early_finish (AuthCall *call, GError *error)
{
if (!call->chain->error)
call->chain->error = error;
- call->idle_id = g_idle_add ((GSourceFunc) auth_call_complete, call);
+ if (!call->idle_id)
+ call->idle_id = g_idle_add ((GSourceFunc) auth_call_complete, call);
}
#if WITH_POLKIT
@@ -544,45 +576,82 @@ typedef struct {
gpointer changed_data;
} PkChangedInfo;
+static GSList *funcs = NULL;
+
#if WITH_POLKIT
static void
-pk_authority_changed_cb (GObject *object, PkChangedInfo *info)
+pk_authority_changed_cb (GObject *object, gpointer unused)
{
- info->changed_callback (info->changed_data);
+ GSList *iter;
+
+ for (iter = funcs; iter; iter = g_slist_next (iter)) {
+ PkChangedInfo *info = iter->data;
+
+ info->changed_callback (info->changed_data);
+ }
}
#endif
void
-nm_auth_set_changed_func (GDestroyNotify callback, gpointer callback_data)
+nm_auth_changed_func_register (GDestroyNotify callback, gpointer callback_data)
{
#if WITH_POLKIT
- static PkChangedInfo info = { NULL, NULL };
- static guint32 changed_id = 0;
PolkitAuthority *authority;
+ static guint32 changed_id = 0;
+#endif
+ PkChangedInfo *info;
+ GSList *iter;
+ gboolean found = FALSE;
+#if WITH_POLKIT
authority = pk_authority_get ();
if (!authority)
return;
- if (callback == NULL) {
- /* Clearing the callback */
- info.changed_callback = NULL;
- info.changed_data = NULL;
- g_signal_handler_disconnect (authority, changed_id);
- changed_id = 0;
- } else {
- info.changed_callback = callback;
- info.changed_data= callback_data;
-
- if (changed_id == 0) {
- changed_id = g_signal_connect (authority,
- "changed",
- G_CALLBACK (pk_authority_changed_cb),
- &info);
+ /* Hook up the changed signal the first time a callback is registered */
+ if (changed_id == 0) {
+ changed_id = g_signal_connect (authority,
+ "changed",
+ G_CALLBACK (pk_authority_changed_cb),
+ &funcs);
+ }
+#endif
+
+ /* No duplicates */
+ for (iter = funcs; iter; iter = g_slist_next (iter)) {
+ info = iter->data;
+ if ((callback == info->changed_callback) && (callback_data == info->changed_data)) {
+ found = TRUE;
+ break;
}
}
+ g_warn_if_fail (found == FALSE);
+ if (found == FALSE) {
+ info = g_malloc0 (sizeof (*info));
+ info->changed_callback = callback;
+ info->changed_data = callback_data;
+ funcs = g_slist_append (funcs, info);
+ }
+
+#if WITH_POLKIT
g_object_unref (authority);
#endif
}
+void
+nm_auth_changed_func_unregister (GDestroyNotify callback, gpointer callback_data)
+{
+ GSList *iter;
+
+ for (iter = funcs; iter; iter = g_slist_next (iter)) {
+ PkChangedInfo *info = iter->data;
+
+ if ((callback == info->changed_callback) && (callback_data == info->changed_data)) {
+ g_free (info);
+ funcs = g_slist_delete_link (funcs, iter);
+ break;
+ }
+ }
+}
+
diff --git a/src/nm-manager-auth.h b/src/nm-manager-auth.h
index ad14d306c..15317c718 100644
--- a/src/nm-manager-auth.h
+++ b/src/nm-manager-auth.h
@@ -70,6 +70,8 @@ NMAuthChain *nm_auth_chain_new_dbus_sender (const char *dbus_sender,
gpointer nm_auth_chain_get_data (NMAuthChain *chain, const char *tag);
+gpointer nm_auth_chain_steal_data (NMAuthChain *chain, const char *tag);
+
void nm_auth_chain_set_data (NMAuthChain *chain,
const char *tag,
gpointer data,
@@ -102,7 +104,9 @@ gboolean nm_auth_uid_in_acl (NMConnection *connection,
gulong uid,
char **out_error_desc);
-void nm_auth_set_changed_func (GDestroyNotify callback, gpointer callback_data);
+void nm_auth_changed_func_register (GDestroyNotify callback, gpointer callback_data);
+
+void nm_auth_changed_func_unregister (GDestroyNotify callback, gpointer callback_data);
#endif /* NM_MANAGER_AUTH_H */
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 961c9d8c6..f5782254f 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -63,6 +63,7 @@
#include "nm-settings-connection.h"
#include "nm-manager-auth.h"
#include "NetworkManagerUtils.h"
+#include "nm-utils.h"
#define NM_AUTOIP_DBUS_SERVICE "org.freedesktop.nm_avahi_autoipd"
#define NM_AUTOIP_DBUS_IFACE "org.freedesktop.nm_avahi_autoipd"
@@ -172,6 +173,7 @@ struct PendingActivation {
DBusGMethodInvocation *context;
PendingActivationFunc callback;
NMAuthChain *chain;
+ const char *wifi_shared_permission;
char *connection_path;
NMConnection *connection;
@@ -739,17 +741,15 @@ pending_activation_new (NMManager *manager,
}
static void
-pending_auth_net_done (NMAuthChain *chain,
- GError *error,
- DBusGMethodInvocation *context,
- gpointer user_data)
+pending_auth_done (NMAuthChain *chain,
+ GError *error,
+ DBusGMethodInvocation *context,
+ gpointer user_data)
{
PendingActivation *pending = user_data;
NMAuthCallResult result;
GError *tmp_error = NULL;
- pending->chain = NULL;
-
/* Caller has had a chance to obtain authorization, so we only need to
* check for 'yes' here.
*/
@@ -758,10 +758,23 @@ pending_auth_net_done (NMAuthChain *chain,
tmp_error = g_error_new_literal (NM_MANAGER_ERROR,
NM_MANAGER_ERROR_PERMISSION_DENIED,
"Not authorized to control networking.");
+ goto out;
+ }
+
+ if (pending->wifi_shared_permission) {
+ result = nm_auth_chain_get_result (chain, pending->wifi_shared_permission);
+ if (result != NM_AUTH_CALL_RESULT_YES) {
+ tmp_error = g_error_new_literal (NM_MANAGER_ERROR,
+ NM_MANAGER_ERROR_PERMISSION_DENIED,
+ "Not authorized to share connections via wifi.");
+ goto out;
+ }
}
+ /* Otherwise authorized and available to activate */
+
+out:
pending->callback (pending, tmp_error);
- nm_auth_chain_unref (chain);
g_clear_error (&tmp_error);
}
@@ -772,12 +785,15 @@ pending_activation_check_authorized (PendingActivation *pending,
char *error_desc = NULL;
gulong sender_uid = G_MAXULONG;
GError *error;
+ const char *wifi_permission = NULL;
+ NMConnection *connection;
+ NMSettings *settings;
g_return_if_fail (pending != NULL);
g_return_if_fail (dbus_mgr != NULL);
if (!nm_auth_get_caller_uid (pending->context,
- dbus_mgr,
+ dbus_mgr,
&sender_uid,
&error_desc)) {
error = g_error_new_literal (NM_MANAGER_ERROR,
@@ -795,17 +811,40 @@ pending_activation_check_authorized (PendingActivation *pending,
return;
}
+ /* By this point we have an auto-completed connection (for AddAndActivate)
+ * or an existing connection (for Activate).
+ */
+ connection = pending->connection;
+ if (!connection) {
+ settings = NM_MANAGER_GET_PRIVATE (pending->manager)->settings;
+ connection = (NMConnection *) nm_settings_get_connection_by_path (settings, pending->connection_path);
+ }
+
+ if (!connection) {
+ error = g_error_new_literal (NM_MANAGER_ERROR,
+ NM_MANAGER_ERROR_UNKNOWN_CONNECTION,
+ "Connection could not be found.");
+ pending->callback (pending, error);
+ g_error_free (error);
+ return;
+ }
+
/* First check if the user is allowed to use networking at all, giving
* the user a chance to authenticate to gain the permission.
*/
pending->chain = nm_auth_chain_new (pending->context,
NULL,
- pending_auth_net_done,
+ pending_auth_done,
pending);
g_assert (pending->chain);
- nm_auth_chain_add_call (pending->chain,
- NM_AUTH_PERMISSION_NETWORK_CONTROL,
- TRUE);
+ nm_auth_chain_add_call (pending->chain, NM_AUTH_PERMISSION_NETWORK_CONTROL, TRUE);
+
+ /* Shared wifi connections require special permissions too */
+ wifi_permission = nm_utils_get_shared_wifi_permission (connection);
+ if (wifi_permission) {
+ pending->wifi_shared_permission = wifi_permission;
+ nm_auth_chain_add_call (pending->chain, wifi_permission, TRUE);
+ }
}
static void
@@ -1040,52 +1079,27 @@ manager_hidden_ap_found (NMDeviceInterface *device,
{
NMManager *manager = NM_MANAGER (user_data);
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
- const struct ether_addr *ap_addr;
- const GByteArray *ap_ssid;
+ const struct ether_addr *bssid;
GSList *iter;
GSList *connections;
gboolean done = FALSE;
- ap_ssid = nm_ap_get_ssid (ap);
- if (ap_ssid && ap_ssid->len)
- return;
+ g_return_if_fail (nm_ap_get_ssid (ap) == NULL);
- ap_addr = nm_ap_get_address (ap);
- g_assert (ap_addr);
+ bssid = nm_ap_get_address (ap);
+ g_assert (bssid);
/* Look for this AP's BSSID in the seen-bssids list of a connection,
* and if a match is found, copy over the SSID */
connections = nm_settings_get_connections (priv->settings);
-
for (iter = connections; iter && !done; iter = g_slist_next (iter)) {
NMConnection *connection = NM_CONNECTION (iter->data);
- NMSettingWireless *s_wireless;
- const GByteArray *ssid;
- guint32 num_bssids;
- guint32 i;
-
- s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
- if (!s_wireless)
- continue;
-
- num_bssids = nm_setting_wireless_get_num_seen_bssids (s_wireless);
- if (num_bssids < 1)
- continue;
-
- ssid = nm_setting_wireless_get_ssid (s_wireless);
- g_assert (ssid);
+ NMSettingWireless *s_wifi;
- for (i = 0; i < num_bssids && !done; i++) {
- const char *seen_bssid = nm_setting_wireless_get_seen_bssid (s_wireless, i);
- struct ether_addr seen_addr;
-
- if (ether_aton_r (seen_bssid, &seen_addr)) {
- if (memcmp (ap_addr, &seen_addr, sizeof (struct ether_addr)) == 0) {
- /* Copy the SSID from the connection to the AP */
- nm_ap_set_ssid (ap, ssid);
- done = TRUE;
- }
- }
+ s_wifi = nm_connection_get_setting_wireless (connection);
+ if (s_wifi) {
+ if (nm_settings_connection_has_seen_bssid (NM_SETTINGS_CONNECTION (connection), bssid))
+ nm_ap_set_ssid (ap, nm_setting_wireless_get_ssid (s_wifi));
}
}
g_slist_free (connections);
@@ -1667,12 +1681,11 @@ bluez_manager_bdaddr_removed_cb (NMBluezManager *bluez_mgr,
g_return_if_fail (bdaddr != NULL);
g_return_if_fail (object_path != NULL);
- nm_log_info (LOGD_HW, "BT device %s removed", bdaddr);
-
for (iter = priv->devices; iter; iter = iter->next) {
NMDevice *device = NM_DEVICE (iter->data);
if (!strcmp (nm_device_get_udi (device), object_path)) {
+ nm_log_info (LOGD_HW, "BT device %s removed", bdaddr);
priv->devices = remove_one_device (self, priv->devices, device, FALSE);
break;
}
@@ -1866,6 +1879,8 @@ internal_activate_device (NMManager *manager,
/* Tear down any existing connection */
if (nm_device_get_act_request (device)) {
+ nm_log_info (LOGD_DEVICE, "(%s): disconnecting for new activation request.",
+ nm_device_get_iface (device));
nm_device_state_changed (device,
NM_DEVICE_STATE_DISCONNECTED,
NM_DEVICE_STATE_REASON_NONE);
@@ -2040,7 +2055,9 @@ pending_activate (NMManager *self, PendingActivation *pending)
if (!path) {
nm_log_warn (LOGD_CORE, "connection %s failed to activate: (%d) %s",
- pending->connection_path, error->code, error->message);
+ pending->connection_path,
+ error ? error->code : -1,
+ error && error->message ? error->message : "(unknown)");
} else
g_object_notify (G_OBJECT (pending->manager), NM_MANAGER_ACTIVE_CONNECTIONS);
@@ -3105,6 +3122,13 @@ nm_manager_get (NMSettings *settings,
}
static void
+authority_changed_cb (gpointer user_data)
+{
+ /* Let clients know they should re-check their authorization */
+ g_signal_emit (NM_MANAGER (user_data), signals[CHECK_PERMISSIONS], 0);
+}
+
+static void
dispose (GObject *object)
{
NMManager *manager = NM_MANAGER (object);
@@ -3121,7 +3145,7 @@ dispose (GObject *object)
g_slist_foreach (priv->auth_chains, (GFunc) nm_auth_chain_unref, NULL);
g_slist_free (priv->auth_chains);
- nm_auth_set_changed_func (NULL, NULL);
+ nm_auth_changed_func_unregister (authority_changed_cb, manager);
while (g_slist_length (priv->devices)) {
priv->devices = remove_one_device (manager,
@@ -3398,13 +3422,6 @@ periodic_update_active_connection_timestamps (gpointer user_data)
}
static void
-authority_changed_cb (gpointer user_data)
-{
- /* Let clients know they should re-check their authorization */
- g_signal_emit (NM_MANAGER (user_data), signals[CHECK_PERMISSIONS], 0);
-}
-
-static void
nm_manager_init (NMManager *manager)
{
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
@@ -3502,7 +3519,7 @@ nm_manager_init (NMManager *manager)
nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy");
/* Listen for authorization changes */
- nm_auth_set_changed_func (authority_changed_cb, manager);
+ nm_auth_changed_func_register (authority_changed_cb, manager);
/* Monitor the firmware directory */
if (strlen (KERNEL_FIRMWARE_DIR)) {
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 194d11116..a42a0fa9b 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -46,6 +46,7 @@
#include "nm-dns-manager.h"
#include "nm-vpn-manager.h"
#include "nm-policy-hostname.h"
+#include "nm-manager-auth.h"
struct NMPolicy {
NMManager *manager;
@@ -66,12 +67,17 @@ struct NMPolicy {
HostnameThread *lookup;
+ gint reset_retries_id; /* idle handler for resetting the retries count */
+
char *orig_hostname; /* hostname at NM start time */
char *cur_hostname; /* hostname we want to assign */
};
#define RETRIES_TAG "autoconnect-retries"
#define RETRIES_DEFAULT 4
+#define RESET_RETRIES_TIMESTAMP_TAG "reset-retries-timestamp-tag"
+#define RESET_RETRIES_TIMER 300
+#define FAILURE_REASON_TAG "failure-reason"
static NMDevice *
get_best_ip4_device (NMManager *manager, NMActRequest **out_req)
@@ -316,36 +322,36 @@ update_system_hostname (NMPolicy *policy, NMDevice *best4, NMDevice *best6)
/* Grab a hostname out of the device's DHCP4 config */
dhcp4_config = nm_device_get_dhcp4_config (best4);
if (dhcp4_config) {
- p = dhcp_hostname = nm_dhcp4_config_get_option (dhcp4_config, "host_name");
+ p = dhcp_hostname = nm_dhcp4_config_get_option (dhcp4_config, "new_host_name");
if (dhcp_hostname && strlen (dhcp_hostname)) {
/* Sanity check; strip leading spaces */
while (*p) {
if (!isblank (*p++)) {
- _set_hostname (policy, TRUE, dhcp_hostname, "from DHCPv4");
+ _set_hostname (policy, TRUE, p-1, "from DHCPv4");
return;
}
}
nm_log_warn (LOGD_DNS, "DHCPv4-provided hostname '%s' looks invalid; ignoring it",
- dhcp_hostname);
+ dhcp_hostname);
}
}
} else if (best6) {
NMDHCP6Config *dhcp6_config;
- /* Grab a hostname out of the device's DHCP4 config */
+ /* Grab a hostname out of the device's DHCP6 config */
dhcp6_config = nm_device_get_dhcp6_config (best6);
if (dhcp6_config) {
- p = dhcp_hostname = nm_dhcp6_config_get_option (dhcp6_config, "host_name");
+ p = dhcp_hostname = nm_dhcp6_config_get_option (dhcp6_config, "new_host_name");
if (dhcp_hostname && strlen (dhcp_hostname)) {
/* Sanity check; strip leading spaces */
while (*p) {
if (!isblank (*p++)) {
- _set_hostname (policy, TRUE, dhcp_hostname, "from DHCPv6");
+ _set_hostname (policy, TRUE, p-1, "from DHCPv6");
return;
}
}
nm_log_warn (LOGD_DNS, "DHCPv6-provided hostname '%s' looks invalid; ignoring it",
- dhcp_hostname);
+ dhcp_hostname);
}
}
}
@@ -722,16 +728,29 @@ auto_activate_device (gpointer user_data)
/* Remove connections that shouldn't be auto-activated */
while (iter) {
- NMConnection *candidate = NM_CONNECTION (iter->data);
+ NMSettingsConnection *candidate = NM_SETTINGS_CONNECTION (iter->data);
+ gboolean remove_it = FALSE;
+ const char *permission;
/* Grab next item before we possibly delete the current item */
iter = g_slist_next (iter);
/* Ignore connections that were tried too many times or are not visible
- * to any logged-in users.
+ * to any logged-in users. Also ignore shared wifi connections for
+ * which no user has the shared wifi permission.
*/
- if ( get_connection_auto_retries (candidate) == 0
- || nm_settings_connection_is_visible (NM_SETTINGS_CONNECTION (candidate)) == FALSE)
+ if ( get_connection_auto_retries (NM_CONNECTION (candidate)) == 0
+ || nm_settings_connection_is_visible (candidate) == FALSE)
+ remove_it = TRUE;
+ else {
+ permission = nm_utils_get_shared_wifi_permission (NM_CONNECTION (candidate));
+ if (permission) {
+ if (nm_settings_connection_check_permission (candidate, permission) == FALSE)
+ remove_it = TRUE;
+ }
+ }
+
+ if (remove_it)
connections = g_slist_remove (connections, candidate);
}
@@ -739,6 +758,8 @@ auto_activate_device (gpointer user_data)
if (best_connection) {
GError *error = NULL;
+ nm_log_info (LOGD_DEVICE, "Auto-activating connection '%s'.",
+ nm_connection_get_id (best_connection));
if (!nm_manager_activate_connection (policy->manager,
best_connection,
specific_object,
@@ -817,13 +838,34 @@ hostname_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
}
static void
-reset_retries_all (NMSettings *settings)
+reset_retries_all (NMSettings *settings, NMDevice *device)
+{
+ GSList *connections, *iter;
+ GError *error = NULL;
+
+ connections = nm_settings_get_connections (settings);
+ for (iter = connections; iter; iter = g_slist_next (iter)) {
+ if (!device || nm_device_interface_check_connection_compatible (NM_DEVICE_INTERFACE (device), iter->data, &error))
+ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
+ g_clear_error (&error);
+ }
+ g_slist_free (connections);
+}
+
+static void
+reset_retries_for_failed_secrets (NMSettings *settings)
{
GSList *connections, *iter;
connections = nm_settings_get_connections (settings);
- for (iter = connections; iter; iter = g_slist_next (iter))
- set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
+ for (iter = connections; iter; iter = g_slist_next (iter)) {
+ NMDeviceStateReason reason = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (iter->data), FAILURE_REASON_TAG));
+
+ if (reason == NM_DEVICE_STATE_REASON_NO_SECRETS) {
+ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
+ g_object_set_data (G_OBJECT (iter->data), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
+ }
+ }
g_slist_free (connections);
}
@@ -838,7 +880,7 @@ sleeping_changed (NMManager *manager, GParamSpec *pspec, gpointer user_data)
/* Reset retries on all connections so they'll checked on wakeup */
if (sleeping || !enabled)
- reset_retries_all (policy->settings);
+ reset_retries_all (policy->settings, NULL);
}
static void
@@ -854,6 +896,9 @@ schedule_activate_check (NMPolicy *policy, NMDevice *device, guint delay_seconds
if (state < NM_DEVICE_STATE_DISCONNECTED)
return;
+ if (!nm_device_interface_get_enabled (NM_DEVICE_INTERFACE (device)))
+ return;
+
if (!nm_device_autoconnect_allowed (device))
return;
@@ -864,6 +909,37 @@ schedule_activate_check (NMPolicy *policy, NMDevice *device, guint delay_seconds
}
}
+static gboolean
+reset_connections_retries (gpointer user_data)
+{
+ NMPolicy *policy = (NMPolicy *) user_data;
+ GSList *connections, *iter;
+ time_t con_stamp, min_stamp, now;
+
+ policy->reset_retries_id = 0;
+
+ min_stamp = now = time (NULL);
+ connections = nm_settings_get_connections (policy->settings);
+ for (iter = connections; iter; iter = g_slist_next (iter)) {
+ con_stamp = GPOINTER_TO_SIZE (g_object_get_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG));
+ if (con_stamp == 0)
+ continue;
+ if (con_stamp + RESET_RETRIES_TIMER <= now) {
+ set_connection_auto_retries (NM_CONNECTION (iter->data), RETRIES_DEFAULT);
+ g_object_set_data (G_OBJECT (iter->data), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER (0));
+ continue;
+ }
+ if (con_stamp < min_stamp)
+ min_stamp = con_stamp;
+ }
+ g_slist_free (connections);
+
+ /* Schedule the handler again if there are some stamps left */
+ if (min_stamp != now)
+ policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER - (now - min_stamp), reset_connections_retries, policy);
+ return FALSE;
+}
+
static NMConnection *
get_device_connection (NMDevice *device)
{
@@ -886,6 +962,9 @@ device_state_changed (NMDevice *device,
NMPolicy *policy = (NMPolicy *) user_data;
NMConnection *connection = get_device_connection (device);
+ if (connection)
+ g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (0));
+
switch (new_state) {
case NM_DEVICE_STATE_FAILED:
/* Mark the connection invalid if it failed during activation so that
@@ -900,6 +979,11 @@ device_state_changed (NMDevice *device,
* automatically retrying because it's just going to fail anyway.
*/
set_connection_auto_retries (connection, 0);
+
+ /* Mark the connection as failed due to missing secrets so that we can reset
+ * RETRIES_TAG and automatically re-try when an secret agent registers.
+ */
+ g_object_set_data (G_OBJECT (connection), FAILURE_REASON_TAG, GUINT_TO_POINTER (NM_DEVICE_STATE_REASON_NO_SECRETS));
} else if (tries > 0) {
/* Otherwise if it's a random failure, just decrease the number
* of automatic retries so that the connection gets tried again
@@ -908,8 +992,13 @@ device_state_changed (NMDevice *device,
set_connection_auto_retries (connection, tries - 1);
}
- if (get_connection_auto_retries (connection) == 0)
+ if (get_connection_auto_retries (connection) == 0) {
nm_log_info (LOGD_DEVICE, "Marking connection '%s' invalid.", nm_connection_get_id (connection));
+ /* Schedule a handler to reset retries count */
+ g_object_set_data (G_OBJECT (connection), RESET_RETRIES_TIMESTAMP_TAG, GSIZE_TO_POINTER ((gsize) time (NULL)));
+ if (!policy->reset_retries_id)
+ policy->reset_retries_id = g_timeout_add_seconds (RESET_RETRIES_TIMER, reset_connections_retries, policy);
+ }
nm_connection_clear_secrets (connection);
}
schedule_activate_check (policy, device, 3);
@@ -932,6 +1021,11 @@ device_state_changed (NMDevice *device,
update_routing_and_dns (policy, FALSE);
break;
case NM_DEVICE_STATE_DISCONNECTED:
+ /* Reset RETRIES_TAG when carrier on. If cable was unplugged
+ * and plugged again, we should try to reconnect */
+ if (reason == NM_DEVICE_STATE_REASON_CARRIER && old_state == NM_DEVICE_STATE_UNAVAILABLE)
+ reset_retries_all (policy->settings, device);
+
/* Device is now available for auto-activation */
update_routing_and_dns (policy, FALSE);
schedule_activate_check (policy, device, 0);
@@ -963,6 +1057,12 @@ nsps_changed (NMDeviceWimax *device, NMWimaxNsp *nsp, gpointer user_data)
}
#endif
+static void
+modem_enabled_changed (NMDeviceModem *device, gpointer user_data)
+{
+ schedule_activate_check ((NMPolicy *) (user_data), NM_DEVICE (device), 0);
+}
+
typedef struct {
gulong id;
NMDevice *device;
@@ -997,6 +1097,8 @@ device_added (NMManager *manager, NMDevice *device, gpointer user_data)
_connect_device_signal (policy, device, "nsp-added", nsps_changed);
_connect_device_signal (policy, device, "nsp-removed", nsps_changed);
#endif
+ } else if (NM_IS_DEVICE_MODEM (device)) {
+ _connect_device_signal (policy, device, NM_DEVICE_MODEM_ENABLE_CHANGED, modem_enabled_changed);
}
}
@@ -1058,7 +1160,7 @@ connections_loaded (NMSettings *settings, gpointer user_data)
// that by calling reset_retries_all() in nm_policy_new()
/* Initialize connections' auto-retries */
- reset_retries_all (settings);
+ reset_retries_all (settings, NULL);
schedule_activate_all ((NMPolicy *) user_data);
}
@@ -1122,6 +1224,19 @@ connection_visibility_changed (NMSettings *settings,
}
static void
+secret_agent_registered (NMSettings *settings,
+ NMSecretAgent *agent,
+ gpointer user_data)
+{
+ /* The registered secret agent may provide some missing secrets. Thus we
+ * reset retries count here and schedule activation, so that the
+ * connections failed due to missing secrets may re-try auto-connection.
+ */
+ reset_retries_for_failed_secrets (settings);
+ schedule_activate_all ((NMPolicy *) user_data);
+}
+
+static void
_connect_manager_signal (NMPolicy *policy, const char *name, gpointer callback)
{
guint id;
@@ -1161,7 +1276,10 @@ nm_policy_new (NMManager *manager,
memset (hostname, 0, sizeof (hostname));
if (gethostname (&hostname[0], HOST_NAME_MAX) == 0) {
/* only cache it if it's a valid hostname */
- if (strlen (hostname) && strcmp (hostname, "localhost") && strcmp (hostname, "localhost.localdomain"))
+ if ( strlen (hostname)
+ && strcmp (hostname, "localhost")
+ && strcmp (hostname, "localhost.localdomain")
+ && strcmp (hostname, "(none)"))
policy->orig_hostname = g_strdup (hostname);
}
@@ -1186,9 +1304,10 @@ nm_policy_new (NMManager *manager,
_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_REMOVED, connection_removed);
_connect_settings_signal (policy, NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED,
connection_visibility_changed);
+ _connect_settings_signal (policy, NM_SETTINGS_SIGNAL_AGENT_REGISTERED, secret_agent_registered);
/* Initialize connections' auto-retries */
- reset_retries_all (policy->settings);
+ reset_retries_all (policy->settings, NULL);
initialized = TRUE;
return policy;
@@ -1232,6 +1351,9 @@ nm_policy_destroy (NMPolicy *policy)
}
g_slist_free (policy->dev_ids);
+ if (policy->reset_retries_id)
+ g_source_remove (policy->reset_retries_id);
+
g_free (policy->orig_hostname);
g_free (policy->cur_hostname);
diff --git a/src/nm-udev-manager.c b/src/nm-udev-manager.c
index e0795e81f..72501c280 100644
--- a/src/nm-udev-manager.c
+++ b/src/nm-udev-manager.c
@@ -384,6 +384,9 @@ is_wireless (GUdevDevice *device)
g_assert (ifname);
fd = socket (PF_INET, SOCK_DGRAM, 0);
+ if (fd == -1)
+ return FALSE;
+
strncpy (iwr.ifr_ifrn.ifrn_name, ifname, IFNAMSIZ);
path = g_udev_device_get_sysfs_path (device);
diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
index 8a5ea1068..5ccbdc672 100644
--- a/src/settings/nm-agent-manager.c
+++ b/src/settings/nm-agent-manager.c
@@ -49,6 +49,9 @@ typedef struct {
NMDBusManager *dbus_mgr;
NMSessionMonitor *session_monitor;
+ /* Auth chains for checking agent permissions */
+ GSList *chains;
+
/* Hashed by owner name, not identifier, since two agents in different
* sessions can use the same identifier.
*/
@@ -57,6 +60,14 @@ typedef struct {
GHashTable *requests;
} NMAgentManagerPrivate;
+enum {
+ AGENT_REGISTERED,
+
+ LAST_SIGNAL
+};
+static guint signals[LAST_SIGNAL] = { 0 };
+
+
typedef struct _Request Request;
static void request_add_agent (Request *req,
@@ -218,6 +229,59 @@ validate_identifier (const char *identifier, GError **error)
}
static void
+agent_register_permissions_done (NMAuthChain *chain,
+ GError *error,
+ DBusGMethodInvocation *context,
+ gpointer user_data)
+{
+ NMAgentManager *self = NM_AGENT_MANAGER (user_data);
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
+ NMSecretAgent *agent;
+ const char *sender;
+ GError *local = NULL;
+ NMAuthCallResult result;
+ GHashTableIter iter;
+ Request *req;
+
+ priv->chains = g_slist_remove (priv->chains, chain);
+
+ if (error) {
+ local = g_error_new (NM_AGENT_MANAGER_ERROR,
+ NM_AGENT_MANAGER_ERROR_PERMISSION_DENIED,
+ "Failed to request agent permissions: (%d) %s",
+ error->code, error->message);
+ dbus_g_method_return_error (context, local);
+ g_error_free (local);
+ } else {
+ agent = nm_auth_chain_steal_data (chain, "agent");
+
+ result = nm_auth_chain_get_result (chain, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED);
+ if (result == NM_AUTH_CALL_RESULT_YES)
+ nm_secret_agent_add_permission (agent, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED, TRUE);
+
+ result = nm_auth_chain_get_result (chain, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN);
+ if (result == NM_AUTH_CALL_RESULT_YES)
+ nm_secret_agent_add_permission (agent, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN, TRUE);
+
+ sender = nm_secret_agent_get_dbus_owner (agent);
+ g_hash_table_insert (priv->agents, g_strdup (sender), agent);
+ nm_log_dbg (LOGD_AGENTS, "(%s) agent registered",
+ nm_secret_agent_get_description (agent));
+ dbus_g_method_return (context);
+
+ /* Signal an agent was registered */
+ g_signal_emit (self, signals[AGENT_REGISTERED], 0, agent);
+
+ /* Add this agent to any in-progress secrets requests */
+ g_hash_table_iter_init (&iter, priv->requests);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &req))
+ request_add_agent (req, agent, priv->session_monitor);
+ }
+
+ nm_auth_chain_unref (chain);
+}
+
+static void
impl_agent_manager_register (NMAgentManager *self,
const char *identifier,
DBusGMethodInvocation *context)
@@ -227,8 +291,7 @@ impl_agent_manager_register (NMAgentManager *self,
gulong sender_uid = G_MAXULONG;
GError *error = NULL, *local = NULL;
NMSecretAgent *agent;
- GHashTableIter iter;
- gpointer data;
+ NMAuthChain *chain;
if (!nm_auth_get_caller_uid (context,
priv->dbus_mgr,
@@ -272,15 +335,16 @@ impl_agent_manager_register (NMAgentManager *self,
goto done;
}
- g_hash_table_insert (priv->agents, g_strdup (sender), agent);
- nm_log_dbg (LOGD_AGENTS, "(%s) agent registered",
+ nm_log_dbg (LOGD_AGENTS, "(%s) requesting permissions",
nm_secret_agent_get_description (agent));
- dbus_g_method_return (context);
- /* Add this agent to any in-progress secrets requests */
- g_hash_table_iter_init (&iter, priv->requests);
- while (g_hash_table_iter_next (&iter, NULL, &data))
- request_add_agent ((Request *) data, agent, priv->session_monitor);
+ /* Kick off permissions requests for this agent */
+ chain = nm_auth_chain_new (context, NULL, agent_register_permissions_done, self);
+ nm_auth_chain_set_data (chain, "agent", agent, g_object_unref);
+ nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED, FALSE);
+ nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN, FALSE);
+
+ priv->chains = g_slist_append (priv->chains, chain);
done:
if (error)
@@ -945,8 +1009,8 @@ get_start (gpointer user_data)
g_clear_error (&error);
} else {
/* Do we have everything we need? */
- /* FIXME: handle second check for VPN connections */
- if ((nm_connection_need_secrets (tmp, NULL) == NULL) && (request_new == FALSE)) {
+ if ( (req->flags & NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM)
+ || ((nm_connection_need_secrets (tmp, NULL) == NULL) && (request_new == FALSE))) {
nm_log_dbg (LOGD_AGENTS, "(%p/%s) system settings secrets sufficient",
req, req->setting_name);
@@ -1059,7 +1123,8 @@ nm_agent_manager_get_secrets (NMAgentManager *self,
g_hash_table_insert (priv->requests, GUINT_TO_POINTER (req->reqid), req);
/* Kick off the request */
- request_add_agents (self, req);
+ if (!(req->flags & NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM))
+ request_add_agents (self, req);
req->idle_id = g_idle_add (get_start, req);
return req->reqid;
@@ -1277,6 +1342,24 @@ nm_agent_manager_delete_secrets (NMAgentManager *self,
/*************************************************************/
+NMSecretAgent *
+nm_agent_manager_get_agent_by_user (NMAgentManager *self, const char *username)
+{
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
+ GHashTableIter iter;
+ NMSecretAgent *agent;
+
+ g_hash_table_iter_init (&iter, priv->agents);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &agent)) {
+ if (g_strcmp0 (nm_secret_agent_get_owner_username (agent), username) == 0)
+ return agent;
+ }
+
+ return NULL;
+}
+
+/*************************************************************/
+
static void
name_owner_changed_cb (NMDBusManager *dbus_mgr,
const char *name,
@@ -1290,6 +1373,73 @@ name_owner_changed_cb (NMDBusManager *dbus_mgr,
}
}
+static void
+agent_permissions_changed_done (NMAuthChain *chain,
+ GError *error,
+ DBusGMethodInvocation *context,
+ gpointer user_data)
+{
+ NMAgentManager *self = NM_AGENT_MANAGER (user_data);
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
+ NMSecretAgent *agent;
+ NMAuthCallResult result;
+
+ priv->chains = g_slist_remove (priv->chains, chain);
+
+ agent = nm_auth_chain_get_data (chain, "agent");
+
+ if (error) {
+ nm_log_dbg (LOGD_AGENTS, "(%s) failed to request updated agent permissions",
+ nm_secret_agent_get_description (agent));
+ nm_secret_agent_add_permission (agent, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED, FALSE);
+ nm_secret_agent_add_permission (agent, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN, FALSE);
+ } else {
+ nm_log_dbg (LOGD_AGENTS, "(%s) updated agent permissions",
+ nm_secret_agent_get_description (agent));
+
+ result = nm_auth_chain_get_result (chain, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED);
+ nm_secret_agent_add_permission (agent,
+ NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED,
+ (result == NM_AUTH_CALL_RESULT_YES));
+
+ result = nm_auth_chain_get_result (chain, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN);
+ nm_secret_agent_add_permission (agent,
+ NM_AUTH_PERMISSION_WIFI_SHARE_OPEN,
+ (result == NM_AUTH_CALL_RESULT_YES));
+ }
+
+ nm_auth_chain_unref (chain);
+}
+
+static void
+authority_changed_cb (gpointer user_data)
+{
+ NMAgentManager *self = NM_AGENT_MANAGER (user_data);
+ NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
+ GHashTableIter iter;
+ NMSecretAgent *agent;
+
+ /* Recheck the permissions of all secret agents */
+ g_hash_table_iter_init (&iter, priv->agents);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &agent)) {
+ NMAuthChain *chain;
+ const char *sender;
+
+ /* Kick off permissions requests for this agent */
+ sender = nm_secret_agent_get_dbus_owner (agent);
+ chain = nm_auth_chain_new_dbus_sender (sender, agent_permissions_changed_done, self);
+
+ /* Make sure if the agent quits while the permissions call is in progress
+ * that the object sticks around until our callback.
+ */
+ nm_auth_chain_set_data (chain, "agent", g_object_ref (agent), g_object_unref);
+ nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_WIFI_SHARE_PROTECTED, FALSE);
+ nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_WIFI_SHARE_OPEN, FALSE);
+
+ priv->chains = g_slist_append (priv->chains, chain);
+ }
+}
+
/*************************************************************/
NMAgentManager *
@@ -1319,6 +1469,8 @@ nm_agent_manager_get (void)
G_CALLBACK (name_owner_changed_cb),
singleton);
+ nm_auth_changed_func_register (authority_changed_cb, singleton);
+
return singleton;
}
@@ -1342,6 +1494,10 @@ dispose (GObject *object)
if (!priv->disposed) {
priv->disposed = TRUE;
+ nm_auth_changed_func_unregister (authority_changed_cb, NM_AGENT_MANAGER (object));
+
+ g_slist_foreach (priv->chains, (GFunc) nm_auth_chain_unref, NULL);
+
g_hash_table_destroy (priv->agents);
g_hash_table_destroy (priv->requests);
@@ -1362,6 +1518,17 @@ nm_agent_manager_class_init (NMAgentManagerClass *agent_manager_class)
/* virtual methods */
object_class->dispose = dispose;
+ /* Signals */
+ signals[AGENT_REGISTERED] =
+ g_signal_new ("agent-registered",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMAgentManagerClass, agent_registered),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+
dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (agent_manager_class),
&dbus_glib_nm_agent_manager_object_info);
diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
index 788a91758..e49f579d7 100644
--- a/src/settings/nm-agent-manager.h
+++ b/src/settings/nm-agent-manager.h
@@ -25,6 +25,7 @@
#include <glib-object.h>
#include <nm-connection.h>
#include "nm-settings-flags.h"
+#include "nm-secret-agent.h"
#define NM_TYPE_AGENT_MANAGER (nm_agent_manager_get_type ())
#define NM_AGENT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_AGENT_MANAGER, NMAgentManager))
@@ -39,6 +40,9 @@ typedef struct {
typedef struct {
GObjectClass parent;
+
+ /* Signals */
+ void (*agent_registered) (NMAgentManager *agent_mgr, NMSecretAgent *agent);
} NMAgentManagerClass;
GType nm_agent_manager_get_type (void);
@@ -85,4 +89,7 @@ guint32 nm_agent_manager_delete_secrets (NMAgentManager *manager,
gboolean filter_by_uid,
gulong uid_filter);
+NMSecretAgent *nm_agent_manager_get_agent_by_user (NMAgentManager *manager,
+ const char *username);
+
#endif /* NM_AGENT_MANAGER_H */
diff --git a/src/settings/nm-secret-agent.c b/src/settings/nm-secret-agent.c
index 2b1156cbc..94f046e57 100644
--- a/src/settings/nm-secret-agent.c
+++ b/src/settings/nm-secret-agent.c
@@ -20,6 +20,9 @@
#include <config.h>
+#include <sys/types.h>
+#include <pwd.h>
+
#include <glib.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -41,8 +44,11 @@ typedef struct {
char *owner;
char *identifier;
uid_t owner_uid;
+ char *owner_username;
guint32 hash;
+ GSList *permissions;
+
NMDBusManager *dbus_mgr;
DBusGProxy *proxy;
@@ -134,6 +140,15 @@ nm_secret_agent_get_owner_uid (NMSecretAgent *agent)
return NM_SECRET_AGENT_GET_PRIVATE (agent)->owner_uid;
}
+const char *
+nm_secret_agent_get_owner_username(NMSecretAgent *agent)
+{
+ g_return_val_if_fail (agent != NULL, NULL);
+ g_return_val_if_fail (NM_IS_SECRET_AGENT (agent), NULL);
+
+ return NM_SECRET_AGENT_GET_PRIVATE (agent)->owner_username;
+}
+
guint32
nm_secret_agent_get_hash (NMSecretAgent *agent)
{
@@ -143,6 +158,76 @@ nm_secret_agent_get_hash (NMSecretAgent *agent)
return NM_SECRET_AGENT_GET_PRIVATE (agent)->hash;
}
+/**
+ * nm_secret_agent_add_permission:
+ * @agent: A #NMSecretAgent.
+ * @permission: The name of the permission
+ *
+ * Records whether or not the agent has a given permission.
+ */
+void
+nm_secret_agent_add_permission (NMSecretAgent *agent,
+ const char *permission,
+ gboolean allowed)
+{
+ NMSecretAgentPrivate *priv;
+ GSList *iter;
+
+ g_return_if_fail (agent != NULL);
+ g_return_if_fail (permission != NULL);
+
+ priv = NM_SECRET_AGENT_GET_PRIVATE (agent);
+
+ /* Check if the permission is already in the list */
+ for (iter = priv->permissions; iter; iter = g_slist_next (iter)) {
+ if (g_strcmp0 (permission, iter->data) == 0) {
+ /* If the permission is no longer allowed, remove it from the
+ * list. If it is now allowed, do nothing since it's already
+ * in the list.
+ */
+ if (allowed == FALSE) {
+ g_free (iter->data);
+ priv->permissions = g_slist_delete_link (priv->permissions, iter);
+ }
+ return;
+ }
+ }
+
+ /* New permission that's allowed */
+ if (allowed)
+ priv->permissions = g_slist_prepend (priv->permissions, g_strdup (permission));
+}
+
+/**
+ * nm_secret_agent_has_permission:
+ * @agent: A #NMSecretAgent.
+ * @permission: The name of the permission to check for
+ *
+ * Returns whether or not the agent has the given permission.
+ *
+ * Returns: %TRUE if the agent has the given permission, %FALSE if it does not
+ * or if the permission was not previous recorded with
+ * nm_secret_agent_add_permission().
+ */
+gboolean
+nm_secret_agent_has_permission (NMSecretAgent *agent, const char *permission)
+{
+ NMSecretAgentPrivate *priv;
+ GSList *iter;
+
+ g_return_val_if_fail (agent != NULL, FALSE);
+ g_return_val_if_fail (permission != NULL, FALSE);
+
+ priv = NM_SECRET_AGENT_GET_PRIVATE (agent);
+
+ /* Check if the permission is already in the list */
+ for (iter = priv->permissions; iter; iter = g_slist_next (iter)) {
+ if (g_strcmp0 (permission, iter->data) == 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
/*************************************************************/
static void
@@ -189,6 +274,9 @@ nm_secret_agent_get_secrets (NMSecretAgent *self,
hash = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
+ /* Mask off the private ONLY_SYSTEM flag if present */
+ flags &= ~NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM;
+
r = request_new (self, nm_connection_get_path (connection), setting_name, callback, callback_data);
r->call = dbus_g_proxy_begin_call_with_timeout (priv->proxy,
"GetSecrets",
@@ -327,11 +415,17 @@ nm_secret_agent_new (NMDBusManager *dbus_mgr,
NMSecretAgent *self;
NMSecretAgentPrivate *priv;
DBusGConnection *bus;
- char *hash_str;
+ char *hash_str, *username;
+ struct passwd *pw;
g_return_val_if_fail (owner != NULL, NULL);
g_return_val_if_fail (identifier != NULL, NULL);
+ pw = getpwuid (owner_uid);
+ g_return_val_if_fail (pw != NULL, NULL);
+ g_return_val_if_fail (pw->pw_name[0] != '\0', NULL);
+ username = g_strdup (pw->pw_name);
+
self = (NMSecretAgent *) g_object_new (NM_TYPE_SECRET_AGENT, NULL);
if (self) {
priv = NM_SECRET_AGENT_GET_PRIVATE (self);
@@ -339,6 +433,7 @@ nm_secret_agent_new (NMDBusManager *dbus_mgr,
priv->owner = g_strdup (owner);
priv->identifier = g_strdup (identifier);
priv->owner_uid = owner_uid;
+ priv->owner_username = g_strdup (username);
hash_str = g_strdup_printf ("%08u%s", owner_uid, identifier);
priv->hash = g_str_hash (hash_str);
@@ -353,6 +448,7 @@ nm_secret_agent_new (NMDBusManager *dbus_mgr,
g_assert (priv->proxy);
}
+ g_free (username);
return self;
}
@@ -376,6 +472,10 @@ dispose (GObject *object)
g_free (priv->description);
g_free (priv->owner);
g_free (priv->identifier);
+ g_free (priv->owner_username);
+
+ g_slist_foreach (priv->permissions, (GFunc) g_free, NULL);
+ g_slist_free (priv->permissions);
g_hash_table_destroy (priv->requests);
g_object_unref (priv->proxy);
diff --git a/src/settings/nm-secret-agent.h b/src/settings/nm-secret-agent.h
index 597940b44..29b02be1b 100644
--- a/src/settings/nm-secret-agent.h
+++ b/src/settings/nm-secret-agent.h
@@ -60,8 +60,17 @@ const char *nm_secret_agent_get_identifier (NMSecretAgent *agent);
uid_t nm_secret_agent_get_owner_uid (NMSecretAgent *agent);
+const char *nm_secret_agent_get_owner_username (NMSecretAgent *agent);
+
guint32 nm_secret_agent_get_hash (NMSecretAgent *agent);
+void nm_secret_agent_add_permission (NMSecretAgent *agent,
+ const char *permission,
+ gboolean allowed);
+
+gboolean nm_secret_agent_has_permission (NMSecretAgent *agent,
+ const char *permission);
+
typedef void (*NMSecretAgentCallback) (NMSecretAgent *agent,
gconstpointer call,
GHashTable *new_secrets, /* NULL for save & delete */
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
index 60de6b068..4b3a56cd6 100644
--- a/src/settings/nm-settings-connection.c
+++ b/src/settings/nm-settings-connection.c
@@ -22,6 +22,7 @@
#include "config.h"
#include <string.h>
+#include <netinet/ether.h>
#include <NetworkManager.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -38,8 +39,10 @@
#include "nm-manager-auth.h"
#include "nm-marshal.h"
#include "nm-agent-manager.h"
+#include "NetworkManagerUtils.h"
#define SETTINGS_TIMESTAMPS_FILE LOCALSTATEDIR"/lib/NetworkManager/timestamps"
+#define SETTINGS_SEEN_BSSIDS_FILE LOCALSTATEDIR"/lib/NetworkManager/seen-bssids"
static void impl_settings_connection_get_settings (NMSettingsConnection *connection,
DBusGMethodInvocation *context);
@@ -91,7 +94,8 @@ typedef struct {
NMSessionMonitor *session_monitor;
guint session_changed_id;
- guint64 timestamp; /* Up-to-date timestamp of connection use */
+ guint64 timestamp; /* Up-to-date timestamp of connection use */
+ GHashTable *seen_bssids; /* Up-to-date BSSIDs that's been seen for the connection */
} NMSettingsConnectionPrivate;
/**************************************************************/
@@ -238,6 +242,58 @@ session_changed_cb (NMSessionMonitor *self, gpointer user_data)
/**************************************************************/
+/* Return TRUE if any active user in the connection's ACL has the given
+ * permission without having to authorize for it via PolicyKit. Connections
+ * visible to everyone automatically pass the check.
+ */
+gboolean
+nm_settings_connection_check_permission (NMSettingsConnection *self,
+ const char *permission)
+{
+ NMSettingsConnectionPrivate *priv;
+ NMSettingConnection *s_con;
+ guint32 num, i;
+ const char *puser;
+
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (self), FALSE);
+
+ priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (self);
+
+ if (priv->visible == FALSE)
+ return FALSE;
+
+ s_con = nm_connection_get_setting_connection (NM_CONNECTION (self));
+ g_assert (s_con);
+
+ /* Check every user in the ACL for a session */
+ num = nm_setting_connection_get_num_permissions (s_con);
+ if (num == 0) {
+ /* Visible to all so it's OK to auto-activate */
+ return TRUE;
+ }
+
+ for (i = 0; i < num; i++) {
+ /* For each user get their secret agent and check if that agent has the
+ * required permission.
+ *
+ * FIXME: what if the user isn't running an agent? PolKit needs a bus
+ * name or a PID but if the user isn't running an agent they won't have
+ * either.
+ */
+ if (nm_setting_connection_get_permission (s_con, i, NULL, &puser, NULL)) {
+ NMSecretAgent *agent = nm_agent_manager_get_agent_by_user (priv->agent_mgr, puser);
+
+ if (agent && nm_secret_agent_has_permission (agent, permission))
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+/**************************************************************/
+
static void
only_system_secrets_cb (NMSetting *setting,
const char *key,
@@ -326,25 +382,14 @@ nm_settings_connection_replace_settings (NMSettingsConnection *self,
new_settings = nm_connection_to_hash (new, NM_SETTING_HASH_FLAG_ALL);
g_assert (new_settings);
if (nm_connection_replace_settings (NM_CONNECTION (self), new_settings, error)) {
- GHashTableIter iter;
- NMSetting *setting;
- const char *setting_name;
- GHashTable *setting_hash;
-
/* Copy the connection to keep its secrets around even if NM
* calls nm_connection_clear_secrets().
*/
update_secrets_cache (self);
/* And add the transient secrets back */
- if (transient_secrets) {
- g_hash_table_iter_init (&iter, transient_secrets);
- while (g_hash_table_iter_next (&iter, (gpointer) &setting_name, (gpointer) &setting_hash)) {
- setting = nm_connection_get_setting_by_name (NM_CONNECTION (self), setting_name);
- if (setting)
- nm_setting_update_secrets (setting, setting_hash, NULL);
- }
- }
+ if (transient_secrets)
+ nm_connection_update_secrets (NM_CONNECTION (self), NULL, transient_secrets, NULL);
nm_settings_connection_recheck_visibility (self);
success = TRUE;
@@ -455,12 +500,20 @@ commit_changes (NMSettingsConnection *connection,
}
static void
-remove_timestamp_from_db (NMSettingsConnection *connection)
+remove_entry_from_db (NMSettingsConnection *connection, const char* db_name)
{
- GKeyFile *timestamps_file;
+ GKeyFile *key_file;
+ const char *db_file;
- timestamps_file = g_key_file_new ();
- if (g_key_file_load_from_file (timestamps_file, SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
+ if (strcmp (db_name, "timestamps") == 0)
+ db_file = SETTINGS_TIMESTAMPS_FILE;
+ else if (strcmp (db_name, "seen-bssids") == 0)
+ db_file = SETTINGS_SEEN_BSSIDS_FILE;
+ else
+ return;
+
+ key_file = g_key_file_new ();
+ if (g_key_file_load_from_file (key_file, db_file, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
const char *connection_uuid;
char *data;
gsize len;
@@ -468,18 +521,18 @@ remove_timestamp_from_db (NMSettingsConnection *connection)
connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
- g_key_file_remove_key (timestamps_file, "timestamps", connection_uuid, NULL);
- data = g_key_file_to_data (timestamps_file, &len, &error);
+ g_key_file_remove_key (key_file, db_name, connection_uuid, NULL);
+ data = g_key_file_to_data (key_file, &len, &error);
if (data) {
- g_file_set_contents (SETTINGS_TIMESTAMPS_FILE, data, len, &error);
+ g_file_set_contents (db_file, data, len, &error);
g_free (data);
}
if (error) {
- nm_log_warn (LOGD_SETTINGS, "error writing timestamps file '%s': %s", SETTINGS_TIMESTAMPS_FILE, error->message);
+ nm_log_warn (LOGD_SETTINGS, "error writing %s file '%s': %s", db_name, db_file, error->message);
g_error_free (error);
}
}
- g_key_file_free (timestamps_file);
+ g_key_file_free (key_file);
}
static void
@@ -499,7 +552,10 @@ do_delete (NMSettingsConnection *connection,
nm_agent_manager_delete_secrets (priv->agent_mgr, for_agents, FALSE, 0);
/* Remove timestamp from timestamps database file */
- remove_timestamp_from_db (connection);
+ remove_entry_from_db (connection, "timestamps");
+
+ /* Remove connection from seen-bssids database file */
+ remove_entry_from_db (connection, "seen-bssids");
/* Signal the connection is removed and deleted */
g_signal_emit (connection, signals[REMOVED], 0);
@@ -980,21 +1036,21 @@ check_writable (NMConnection *connection, GError **error)
static void
get_settings_auth_cb (NMSettingsConnection *self,
- DBusGMethodInvocation *context,
- gulong sender_uid,
- GError *error,
- gpointer data)
+ DBusGMethodInvocation *context,
+ gulong sender_uid,
+ GError *error,
+ gpointer data)
{
if (error)
dbus_g_method_return_error (context, error);
else {
GHashTable *settings;
- NMConnection *dupl_con;
+ NMConnection *dupl_con;
NMSettingConnection *s_con;
guint64 timestamp;
- dupl_con = nm_connection_duplicate (NM_CONNECTION (self));
- g_assert (dupl_con);
+ dupl_con = nm_connection_duplicate (NM_CONNECTION (self));
+ g_assert (dupl_con);
/* Timestamp is not updated in connection's 'timestamp' property,
* because it would force updating the connection and in turn
@@ -1004,7 +1060,7 @@ get_settings_auth_cb (NMSettingsConnection *self,
*/
timestamp = nm_settings_connection_get_timestamp (self);
if (timestamp) {
- s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (NM_CONNECTION (dupl_con), NM_TYPE_SETTING_CONNECTION));
+ s_con = nm_connection_get_setting_connection (NM_CONNECTION (dupl_con));
g_assert (s_con);
g_object_set (s_con, NM_SETTING_CONNECTION_TIMESTAMP, timestamp, NULL);
}
@@ -1017,7 +1073,7 @@ get_settings_auth_cb (NMSettingsConnection *self,
g_assert (settings);
dbus_g_method_return (context, settings);
g_hash_table_destroy (settings);
- g_object_unref (dupl_con);
+ g_object_unref (dupl_con);
}
}
@@ -1042,31 +1098,30 @@ con_update_cb (NMSettingsConnection *connection,
}
static void
-only_agent_secrets_cb (NMSetting *setting,
- const char *key,
- const GValue *value,
- GParamFlags flags,
- gpointer user_data)
+secrets_filter_cb (NMSetting *setting,
+ const char *key,
+ const GValue *value,
+ GParamFlags flags,
+ gpointer user_data)
{
- if (flags & NM_SETTING_PARAM_SECRET) {
- NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+ NMSettingSecretFlags filter_flags = GPOINTER_TO_UINT (user_data);
+ NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
+ const char *secret_name = NULL;
+ GHashTableIter iter;
- /* Clear out system-owned or always-ask secrets */
+ if (flags & NM_SETTING_PARAM_SECRET) {
if (NM_IS_SETTING_VPN (setting) && !strcmp (key, NM_SETTING_VPN_SECRETS)) {
- GHashTableIter iter;
- const char *secret_name = NULL;
-
/* VPNs are special; need to handle each secret separately */
g_hash_table_iter_init (&iter, (GHashTable *) g_value_get_boxed (value));
- while (g_hash_table_iter_next (&iter, (gpointer *) &secret_name, NULL)) {
+ while (g_hash_table_iter_next (&iter, (gpointer) &secret_name, NULL)) {
secret_flags = NM_SETTING_SECRET_FLAG_NONE;
nm_setting_get_secret_flags (setting, secret_name, &secret_flags, NULL);
- if (secret_flags != NM_SETTING_SECRET_FLAG_AGENT_OWNED)
+ if (!(secret_flags & filter_flags))
nm_setting_vpn_remove_secret (NM_SETTING_VPN (setting), secret_name);
}
} else {
nm_setting_get_secret_flags (setting, key, &secret_flags, NULL);
- if (secret_flags != NM_SETTING_SECRET_FLAG_AGENT_OWNED)
+ if (!(secret_flags & filter_flags))
g_object_set (G_OBJECT (setting), key, NULL, NULL);
}
}
@@ -1081,23 +1136,52 @@ update_auth_cb (NMSettingsConnection *self,
{
NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (self);
NMConnection *new_settings = data;
- NMConnection *for_agent;
+ NMConnection *for_agent, *dup;
+ NMSettingSecretFlags filter_flags;
+ GHashTable *hash;
+ GError *local = NULL;
if (error)
dbus_g_method_return_error (context, error);
else {
+ /* Cache the new secrets since they may get overwritten by the replace
+ * when transient secrets are copied back.
+ */
+ dup = nm_connection_duplicate (new_settings);
+
/* Update and commit our settings. */
nm_settings_connection_replace_and_commit (self,
new_settings,
con_update_cb,
context);
+ /* Copy new agent secrets back to the connection */
+ filter_flags = NM_SETTING_SECRET_FLAG_AGENT_OWNED | NM_SETTING_SECRET_FLAG_NOT_SAVED;
+ nm_connection_for_each_setting_value (dup,
+ secrets_filter_cb,
+ GUINT_TO_POINTER (filter_flags));
+ hash = nm_connection_to_hash (dup, NM_SETTING_HASH_FLAG_ONLY_SECRETS);
+ g_object_unref (dup);
+
+ if (hash) {
+ if (!nm_connection_update_secrets (NM_CONNECTION (self), NULL, hash, &local)) {
+ nm_log_warn (LOGD_SETTINGS, "Failed to update connection secrets: (%d) %s",
+ local ? local->code : -1,
+ local && local->message ? local->message : "(unknown)");
+ g_clear_error (&local);
+ }
+ g_hash_table_destroy (hash);
+ }
+
/* Dupe the connection and clear out non-agent-owned secrets so we can
* send the agent-owned ones to agents to be saved. Only send them to
* agents of the same UID as the Update() request sender.
*/
for_agent = nm_connection_duplicate (NM_CONNECTION (self));
- nm_connection_for_each_setting_value (for_agent, only_agent_secrets_cb, NULL);
+ filter_flags = NM_SETTING_SECRET_FLAG_AGENT_OWNED;
+ nm_connection_for_each_setting_value (for_agent,
+ secrets_filter_cb,
+ GUINT_TO_POINTER (filter_flags));
nm_agent_manager_save_secrets (priv->agent_mgr, for_agent, TRUE, sender_uid);
g_object_unref (for_agent);
}
@@ -1272,6 +1356,8 @@ dbus_get_agent_secrets_cb (NMSettingsConnection *self,
update_secrets_cache (self);
hash = nm_connection_to_hash (NM_CONNECTION (self), NM_SETTING_HASH_FLAG_ONLY_SECRETS);
+ if (!hash)
+ hash = g_hash_table_new (NULL, NULL);
dbus_g_method_return (context, hash);
g_hash_table_destroy (hash);
}
@@ -1440,6 +1526,181 @@ nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection
g_key_file_free (timestamps_file);
}
+static guint
+mac_hash (gconstpointer v)
+{
+ const guint8 *p = v;
+ guint32 i, h = 5381;
+
+ for (i = 0; i < ETH_ALEN; i++)
+ h = (h << 5) + h + p[i];
+ return h;
+}
+
+static gboolean
+mac_equal (gconstpointer a, gconstpointer b)
+{
+ return memcmp (a, b, ETH_ALEN) == 0;
+}
+
+static guint8 *
+mac_dup (const struct ether_addr *old)
+{
+ guint8 *new;
+
+ g_return_val_if_fail (old != NULL, NULL);
+
+ new = g_malloc0 (ETH_ALEN);
+ memcpy (new, old, ETH_ALEN);
+ return new;
+}
+
+/**
+ * nm_settings_connection_has_seen_bssid:
+ * @connection: the #NMSettingsConnection
+ * @bssid: the BSSID to check the seen BSSID list for
+ *
+ * Returns: TRUE if the given @bssid is in the seen BSSIDs list
+ **/
+gboolean
+nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
+ const struct ether_addr *bssid)
+{
+ g_return_val_if_fail (connection != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (connection), FALSE);
+ g_return_val_if_fail (bssid != NULL, FALSE);
+
+ return !!g_hash_table_lookup (NM_SETTINGS_CONNECTION_GET_PRIVATE (connection)->seen_bssids, bssid);
+}
+
+/**
+ * nm_settings_connection_add_seen_bssid:
+ * @connection: the #NMSettingsConnection
+ * @seen_bssid: BSSID to set into the connection and to store into
+ * the seen-bssids database
+ *
+ * Updates the connection and seen-bssids database with the provided BSSID.
+ **/
+void
+nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
+ const struct ether_addr *seen_bssid)
+{
+ NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
+ const char *connection_uuid;
+ GKeyFile *seen_bssids_file;
+ char *data, *bssid_str;
+ const char **list;
+ gsize len;
+ GError *error = NULL;
+ GHashTableIter iter;
+ guint n;
+
+ g_return_if_fail (seen_bssid != NULL);
+
+ if (g_hash_table_lookup (priv->seen_bssids, seen_bssid))
+ return; /* Already in the list */
+
+ /* Add the new BSSID; let the hash take ownership of the allocated BSSID string */
+ bssid_str = nm_ether_ntop (seen_bssid);
+ g_return_if_fail (bssid_str != NULL);
+ g_hash_table_insert (priv->seen_bssids, mac_dup (seen_bssid), bssid_str);
+
+ /* Build up a list of all the BSSIDs in string form */
+ n = 0;
+ list = g_malloc0 (g_hash_table_size (priv->seen_bssids) * sizeof (char *));
+ g_hash_table_iter_init (&iter, priv->seen_bssids);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &bssid_str))
+ list[n++] = bssid_str;
+
+ /* Save BSSID to seen-bssids file */
+ seen_bssids_file = g_key_file_new ();
+ g_key_file_set_list_separator (seen_bssids_file, ',');
+ if (!g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
+ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
+ nm_log_warn (LOGD_SETTINGS, "error parsing seen-bssids file '%s': %s",
+ SETTINGS_SEEN_BSSIDS_FILE, error->message);
+ }
+ g_clear_error (&error);
+ }
+
+ connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
+ g_key_file_set_string_list (seen_bssids_file, "seen-bssids", connection_uuid, list, n);
+ g_free (list);
+
+ data = g_key_file_to_data (seen_bssids_file, &len, &error);
+ if (data) {
+ g_file_set_contents (SETTINGS_SEEN_BSSIDS_FILE, data, len, &error);
+ g_free (data);
+ }
+ g_key_file_free (seen_bssids_file);
+
+ if (error) {
+ nm_log_warn (LOGD_SETTINGS, "error saving seen-bssids to file '%s': %s",
+ SETTINGS_SEEN_BSSIDS_FILE, error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+add_seen_bssid_string (NMSettingsConnection *self, const char *bssid)
+{
+ struct ether_addr mac;
+
+ g_return_if_fail (bssid != NULL);
+ if (ether_aton_r (bssid, &mac)) {
+ g_hash_table_insert (NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->seen_bssids,
+ mac_dup (&mac),
+ g_strdup (bssid));
+ }
+}
+
+/**
+ * nm_settings_connection_read_and_fill_seen_bssids:
+ * @connection: the #NMSettingsConnection
+ *
+ * Retrieves seen BSSIDs of the connection from database file and stores then into the
+ * connection private data.
+ **/
+void
+nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection)
+{
+ NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection);
+ const char *connection_uuid;
+ GKeyFile *seen_bssids_file;
+ char **tmp_strv = NULL;
+ gsize i, len = 0;
+ NMSettingWireless *s_wifi;
+
+ /* Get seen BSSIDs from database file */
+ seen_bssids_file = g_key_file_new ();
+ g_key_file_set_list_separator (seen_bssids_file, ',');
+ if (g_key_file_load_from_file (seen_bssids_file, SETTINGS_SEEN_BSSIDS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
+ connection_uuid = nm_connection_get_uuid (NM_CONNECTION (connection));
+ tmp_strv = g_key_file_get_string_list (seen_bssids_file, "seen-bssids", connection_uuid, &len, NULL);
+ }
+ g_key_file_free (seen_bssids_file);
+
+ /* Update connection's seen-bssids */
+ if (tmp_strv) {
+ g_hash_table_remove_all (priv->seen_bssids);
+ for (i = 0; i < len; i++)
+ add_seen_bssid_string (connection, tmp_strv[i]);
+ g_strfreev (tmp_strv);
+ } else {
+ /* If this connection didn't have an entry in the seen-bssids database,
+ * maybe this is the first time we've read it in, so populate the
+ * seen-bssids list from the deprecated seen-bssids property of the
+ * wifi setting.
+ */
+ s_wifi = nm_connection_get_setting_wireless (NM_CONNECTION (connection));
+ if (s_wifi) {
+ len = nm_setting_wireless_get_num_seen_bssids (s_wifi);
+ for (i = 0; i < len; i++)
+ add_seen_bssid_string (connection, nm_setting_wireless_get_seen_bssid (s_wifi, i));
+ }
+ }
+}
+
/**************************************************************/
static void
@@ -1463,6 +1724,8 @@ nm_settings_connection_init (NMSettingsConnection *self)
self);
priv->agent_mgr = nm_agent_manager_get ();
+
+ priv->seen_bssids = g_hash_table_new_full (mac_hash, mac_equal, g_free, g_free);
}
static void
@@ -1490,6 +1753,8 @@ dispose (GObject *object)
nm_agent_manager_cancel_secrets (priv->agent_mgr, GPOINTER_TO_UINT (iter->data));
g_slist_free (priv->reqs);
+ g_hash_table_destroy (priv->seen_bssids);
+
set_visible (self, FALSE);
if (priv->session_changed_id)
diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
index 116bfdcc9..bc9e3c471 100644
--- a/src/settings/nm-settings-connection.h
+++ b/src/settings/nm-settings-connection.h
@@ -24,6 +24,7 @@
#include <nm-connection.h>
#include "nm-settings-flags.h"
+#include <net/ethernet.h>
G_BEGIN_DECLS
@@ -116,6 +117,9 @@ gboolean nm_settings_connection_is_visible (NMSettingsConnection *self);
void nm_settings_connection_recheck_visibility (NMSettingsConnection *self);
+gboolean nm_settings_connection_check_permission (NMSettingsConnection *self,
+ const char *permission);
+
void nm_settings_connection_signal_remove (NMSettingsConnection *self);
guint64 nm_settings_connection_get_timestamp (NMSettingsConnection *connection);
@@ -124,6 +128,14 @@ void nm_settings_connection_update_timestamp (NMSettingsConnection *connection,
void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *connection);
+gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection,
+ const struct ether_addr *bssid);
+
+void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection,
+ const struct ether_addr *seen_bssid);
+
+void nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection);
+
G_END_DECLS
#endif /* NM_SETTINGS_CONNECTION_H */
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index e23e8d133..733e9145b 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -135,6 +135,7 @@ enum {
CONNECTION_REMOVED,
CONNECTION_VISIBILITY_CHANGED,
CONNECTIONS_LOADED,
+ AGENT_REGISTERED,
NEW_CONNECTION, /* exported, not used internally */
LAST_SIGNAL
@@ -699,6 +700,18 @@ connection_visibility_changed (NMSettingsConnection *connection,
connection);
}
+static void
+secret_agent_registered (NMAgentManager *agent_mgr,
+ NMSecretAgent *agent,
+ gpointer user_data)
+{
+ /* Re-emit for listeners like NMPolicy */
+ g_signal_emit (NM_SETTINGS (user_data),
+ signals[AGENT_REGISTERED],
+ 0,
+ agent);
+}
+
#define NM_DBUS_SERVICE_OPENCONNECT "org.freedesktop.NetworkManager.openconnect"
#define NM_OPENCONNECT_KEY_GATEWAY "gateway"
#define NM_OPENCONNECT_KEY_COOKIE "cookie"
@@ -773,6 +786,9 @@ claim_connection (NMSettings *self,
/* Read timestamp from look-aside file and put it into the connection's data */
nm_settings_connection_read_and_fill_timestamp (connection);
+ /* Read seen-bssids from look-aside file and put it into the connection's data */
+ nm_settings_connection_read_and_fill_seen_bssids (connection);
+
/* Ensure it's initial visibility is up-to-date */
nm_settings_connection_recheck_visibility (connection);
@@ -1527,6 +1543,8 @@ nm_settings_init (NMSettings *self)
* recreated often.
*/
priv->agent_mgr = nm_agent_manager_get ();
+
+ g_signal_connect (priv->agent_mgr, "agent-registered", G_CALLBACK (secret_agent_registered), self);
}
static void
@@ -1690,6 +1708,16 @@ nm_settings_class_init (NMSettingsClass *class)
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[AGENT_REGISTERED] =
+ g_signal_new (NM_SETTINGS_SIGNAL_AGENT_REGISTERED,
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMSettingsClass, agent_registered),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
+
signals[NEW_CONNECTION] =
g_signal_new ("new-connection",
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
index a5cb4d7c8..66d41cce8 100644
--- a/src/settings/nm-settings.h
+++ b/src/settings/nm-settings.h
@@ -19,7 +19,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2010 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2008 Novell, Inc.
*/
@@ -31,6 +31,7 @@
#include "nm-settings-connection.h"
#include "nm-system-config-interface.h"
#include "nm-device.h"
+#include "nm-secret-agent.h"
#define NM_TYPE_SETTINGS (nm_settings_get_type ())
#define NM_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SETTINGS, NMSettings))
@@ -48,6 +49,7 @@
#define NM_SETTINGS_SIGNAL_CONNECTION_REMOVED "connection-removed"
#define NM_SETTINGS_SIGNAL_CONNECTION_VISIBILITY_CHANGED "connection-visibility-changed"
#define NM_SETTINGS_SIGNAL_CONNECTIONS_LOADED "connections-loaded"
+#define NM_SETTINGS_SIGNAL_AGENT_REGISTERED "agent-registered"
typedef struct {
GObject parent_instance;
@@ -68,6 +70,8 @@ typedef struct {
void (*connection_visibility_changed) (NMSettings *self, NMSettingsConnection *connection);
void (*connections_loaded) (NMSettings *self);
+
+ void (*agent_registered) (NMSettings *self, NMSecretAgent *agent);
} NMSettingsClass;
GType nm_settings_get_type (void);
diff --git a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
index 433f933bb..04d3d3e45 100644
--- a/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
+++ b/src/settings/plugins/ifcfg-rh/nm-ifcfg-connection.c
@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2008 - 2010 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*/
#include <string.h>
@@ -181,12 +181,13 @@ nm_ifcfg_connection_get_unmanaged_spec (NMIfcfgConnection *self)
static void
commit_changes (NMSettingsConnection *connection,
NMSettingsConnectionCommitFunc callback,
- gpointer user_data)
+ gpointer user_data)
{
NMIfcfgConnectionPrivate *priv = NM_IFCFG_CONNECTION_GET_PRIVATE (connection);
GError *error = NULL;
NMConnection *reread;
char *unmanaged = NULL, *keyfile = NULL, *routefile = NULL, *route6file = NULL;
+ gboolean same = FALSE;
/* To ensure we don't rewrite files that are only changed from other
* processes on-disk, read the existing connection back in and only rewrite
@@ -200,28 +201,36 @@ commit_changes (NMSettingsConnection *connection,
g_free (routefile);
g_free (route6file);
- if (reread && nm_connection_compare (NM_CONNECTION (connection),
- reread,
- NM_SETTING_COMPARE_FLAG_EXACT))
- goto out;
+ if (reread) {
+ same = nm_connection_compare (NM_CONNECTION (connection),
+ reread,
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS |
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS);
+ g_object_unref (reread);
- if (!writer_update_connection (NM_CONNECTION (connection),
- IFCFG_DIR,
- priv->path,
- priv->keyfile,
- &error)) {
+ /* Don't bother writing anything out if in-memory and on-disk data are the same */
+ if (same) {
+ /* But chain up to parent to handle success - emits updated signal */
+ NM_SETTINGS_CONNECTION_CLASS (nm_ifcfg_connection_parent_class)->commit_changes (connection, callback, user_data);
+ return;
+ }
+ }
+
+ if (writer_update_connection (NM_CONNECTION (connection),
+ IFCFG_DIR,
+ priv->path,
+ priv->keyfile,
+ &error)) {
+ /* Chain up to parent to handle success */
+ NM_SETTINGS_CONNECTION_CLASS (nm_ifcfg_connection_parent_class)->commit_changes (connection, callback, user_data);
+ } else {
+ /* Otherwise immediate error */
callback (connection, error, user_data);
g_error_free (error);
- return;
}
-
-out:
- if (reread)
- g_object_unref (reread);
- NM_SETTINGS_CONNECTION_CLASS (nm_ifcfg_connection_parent_class)->commit_changes (connection, callback, user_data);
}
-static void
+static void
do_delete (NMSettingsConnection *connection,
NMSettingsConnectionDeleteFunc callback,
gpointer user_data)
diff --git a/src/settings/plugins/ifcfg-rh/plugin.c b/src/settings/plugins/ifcfg-rh/plugin.c
index 7915c4672..ed0dceca3 100644
--- a/src/settings/plugins/ifcfg-rh/plugin.c
+++ b/src/settings/plugins/ifcfg-rh/plugin.c
@@ -269,19 +269,24 @@ connection_new_or_changed (SCPluginIfcfg *self,
/* Successfully read connection changes */
- /* When the connections are the same, nothing is done */
- if (nm_connection_compare (NM_CONNECTION (existing),
- NM_CONNECTION (new),
- NM_SETTING_COMPARE_FLAG_EXACT)) {
+ old_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (existing));
+ new_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (new));
+
+ /* When interface is unmanaged or the connections and unmanaged specs are the same
+ * there's nothing to do */
+ if ( (g_strcmp0 (old_unmanaged, new_unmanaged) == 0 && new_unmanaged != NULL)
+ || ( nm_connection_compare (NM_CONNECTION (existing),
+ NM_CONNECTION (new),
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS |
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)
+ && g_strcmp0 (old_unmanaged, new_unmanaged) == 0)) {
+
g_object_unref (new);
return;
}
PLUGIN_PRINT (IFCFG_PLUGIN_NAME, "updating %s", path);
- old_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (existing));
- new_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (new));
-
if (new_unmanaged) {
if (!old_unmanaged) {
/* Unexport the connection by telling the settings service it's
@@ -289,6 +294,11 @@ connection_new_or_changed (SCPluginIfcfg *self,
* unmanaged specs have changed.
*/
nm_settings_connection_signal_remove (NM_SETTINGS_CONNECTION (existing));
+ /* Remove the path so that claim_connection() doesn't complain later when
+ * interface gets managed and connection is re-added. */
+ nm_connection_set_path (NM_CONNECTION (existing), NULL);
+
+ g_object_set (existing, NM_IFCFG_CONNECTION_UNMANAGED, new_unmanaged, NULL);
g_signal_emit_by_name (self, NM_SYSTEM_CONFIG_INTERFACE_UNMANAGED_SPECS_CHANGED);
}
} else {
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c
index a6f9ca85b..cdf5889e5 100644
--- a/src/settings/plugins/ifcfg-rh/reader.c
+++ b/src/settings/plugins/ifcfg-rh/reader.c
@@ -176,9 +176,9 @@ read_mac_address (shvarFile *ifcfg, const char *key, GByteArray **array, GError
mac = ether_aton (value);
if (!mac) {
- g_free (value);
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
"%s: the MAC address '%s' was invalid.", key, value);
+ g_free (value);
return FALSE;
}
@@ -574,7 +574,8 @@ read_full_ip4_address (shvarFile *ifcfg,
if (!nm_ip4_address_get_prefix (addr)) {
if (!read_ip4_address (ifcfg, netmask_tag, &tmp, error))
goto error;
- nm_ip4_address_set_prefix (addr, nm_utils_ip4_netmask_to_prefix (tmp));
+ if (tmp)
+ nm_ip4_address_set_prefix (addr, nm_utils_ip4_netmask_to_prefix (tmp));
}
/* Try to autodetermine the prefix for the address' class */
@@ -661,7 +662,8 @@ read_one_ip4_route (shvarFile *ifcfg,
/* Prefix */
if (!read_ip4_address (ifcfg, netmask_tag, &tmp, error))
goto out;
- nm_ip4_route_set_prefix (route, nm_utils_ip4_netmask_to_prefix (tmp));
+ if (tmp)
+ nm_ip4_route_set_prefix (route, nm_utils_ip4_netmask_to_prefix (tmp));
/* Validate the prefix */
if ( !nm_ip4_route_get_prefix (route)
@@ -788,7 +790,7 @@ read_route_file_legacy (const char *filename, NMSettingIP4Config *s_ip4, GError
if (prefix) {
errno = 0;
prefix_int = strtol (prefix, NULL, 10);
- if (errno || prefix_int < 0 || prefix_int > 32) {
+ if (errno || prefix_int <= 0 || prefix_int > 32) {
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
"Invalid IP4 route destination prefix '%s'", prefix);
g_free (prefix);
@@ -973,9 +975,9 @@ read_route6_file (const char *filename, NMSettingIP6Config *s_ip6, GError **erro
const char *pattern_empty = "^\\s*(\\#.*)?$";
const char *pattern_to1 = "^\\s*(" IPV6_ADDR_REGEX "|default)" /* IPv6 or 'default' keyword */
- "(?:/(\\d{1,2}))?"; /* optional prefix */
+ "(?:/(\\d{1,3}))?"; /* optional prefix */
const char *pattern_to2 = "to\\s+(" IPV6_ADDR_REGEX "|default)" /* IPv6 or 'default' keyword */
- "(?:/(\\d{1,2}))?"; /* optional prefix */
+ "(?:/(\\d{1,3}))?"; /* optional prefix */
const char *pattern_via = "via\\s+(" IPV6_ADDR_REGEX ")"; /* IPv6 of gateway */
const char *pattern_metric = "metric\\s+(\\d+)"; /* metric */
@@ -1041,7 +1043,7 @@ read_route6_file (const char *filename, NMSettingIP6Config *s_ip6, GError **erro
if (prefix) {
errno = 0;
prefix_int = strtol (prefix, NULL, 10);
- if (errno || prefix_int < 0 || prefix_int > 128) {
+ if (errno || prefix_int <= 0 || prefix_int > 128) {
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
"Invalid IP6 route destination prefix '%s'", prefix);
g_free (prefix);
@@ -1228,15 +1230,11 @@ make_ip4_setting (shvarFile *ifcfg,
&& !tmp_ip4_0 && !tmp_prefix_0 && !tmp_netmask_0
&& !tmp_ip4_1 && !tmp_prefix_1 && !tmp_netmask_1
&& !tmp_ip4_2 && !tmp_prefix_2 && !tmp_netmask_2) {
- if (valid_ip6_config) {
+ if (valid_ip6_config)
/* Nope, no IPv4 */
- g_object_set (s_ip4,
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_DISABLED,
- NULL);
- return NM_SETTING (s_ip4);
- }
-
- method = NM_SETTING_IP4_CONFIG_METHOD_AUTO;
+ method = NM_SETTING_IP4_CONFIG_METHOD_DISABLED;
+ else
+ method = NM_SETTING_IP4_CONFIG_METHOD_AUTO;
}
g_free (tmp_ip4);
g_free (tmp_prefix);
@@ -1260,6 +1258,9 @@ make_ip4_setting (shvarFile *ifcfg,
NM_SETTING_IP4_CONFIG_MAY_FAIL, !svTrueValue (ifcfg, "IPV4_FAILURE_FATAL", TRUE),
NULL);
+ if (strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_DISABLED) == 0)
+ return NM_SETTING (s_ip4);
+
/* Handle manual settings */
if (!strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL)) {
NMIP4Address *addr;
@@ -1418,7 +1419,7 @@ make_ip6_setting (shvarFile *ifcfg,
char *value = NULL;
char *str_value;
char *route6_path = NULL;
- gboolean bool_value, ipv6forwarding, ipv6_autoconf, dhcp6 = FALSE;
+ gboolean ipv6init, ipv6forwarding, ipv6_autoconf, dhcp6 = FALSE;
char *method = NM_SETTING_IP6_CONFIG_METHOD_MANUAL;
guint32 i;
shvarFile *network_ifcfg;
@@ -1431,26 +1432,6 @@ make_ip6_setting (shvarFile *ifcfg,
return NULL;
}
- /* Is IPV6 enabled? Set method to "ignored", when not enabled */
- str_value = svGetValue (ifcfg, "IPV6INIT", FALSE);
- bool_value = svTrueValue (ifcfg, "IPV6INIT", FALSE);
- if (!str_value) {
- network_ifcfg = svNewFile (network_file);
- if (network_ifcfg) {
- bool_value = svTrueValue (network_ifcfg, "IPV6INIT", FALSE);
- svCloseFile (network_ifcfg);
- }
- }
- g_free (str_value);
-
- if (!bool_value) {
- /* IPv6 is disabled */
- g_object_set (s_ip6,
- NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
- NULL);
- return NM_SETTING (s_ip6);
- }
-
/* First check if IPV6_DEFROUTE is set for this device; IPV6_DEFROUTE has the
* opposite meaning from never-default. The default if IPV6_DEFROUTE is not
* specified is IPV6_DEFROUTE=yes which means that this connection can be used
@@ -1493,23 +1474,39 @@ make_ip6_setting (shvarFile *ifcfg,
}
/* Find out method property */
- ipv6forwarding = svTrueValue (ifcfg, "IPV6FORWARDING", FALSE);
- ipv6_autoconf = svTrueValue (ifcfg, "IPV6_AUTOCONF", !ipv6forwarding);
- dhcp6 = svTrueValue (ifcfg, "DHCPV6C", FALSE);
-
- if (ipv6_autoconf)
- method = NM_SETTING_IP6_CONFIG_METHOD_AUTO;
- else if (dhcp6)
- method = NM_SETTING_IP6_CONFIG_METHOD_DHCP;
+ /* Is IPV6 enabled? Set method to "ignored", when not enabled */
+ str_value = svGetValue (ifcfg, "IPV6INIT", FALSE);
+ ipv6init = svTrueValue (ifcfg, "IPV6INIT", FALSE);
+ if (!str_value) {
+ network_ifcfg = svNewFile (network_file);
+ if (network_ifcfg) {
+ ipv6init = svTrueValue (network_ifcfg, "IPV6INIT", FALSE);
+ svCloseFile (network_ifcfg);
+ }
+ }
+ g_free (str_value);
+
+ if (!ipv6init)
+ method = NM_SETTING_IP6_CONFIG_METHOD_IGNORE; /* IPv6 is disabled */
else {
- /* IPV6_AUTOCONF=no and no IPv6 address -> method 'link-local' */
- str_value = svGetValue (ifcfg, "IPV6ADDR", FALSE);
- if (!str_value)
- str_value = svGetValue (ifcfg, "IPV6ADDR_SECONDARIES", FALSE);
+ ipv6forwarding = svTrueValue (ifcfg, "IPV6FORWARDING", FALSE);
+ ipv6_autoconf = svTrueValue (ifcfg, "IPV6_AUTOCONF", !ipv6forwarding);
+ dhcp6 = svTrueValue (ifcfg, "DHCPV6C", FALSE);
+
+ if (ipv6_autoconf)
+ method = NM_SETTING_IP6_CONFIG_METHOD_AUTO;
+ else if (dhcp6)
+ method = NM_SETTING_IP6_CONFIG_METHOD_DHCP;
+ else {
+ /* IPV6_AUTOCONF=no and no IPv6 address -> method 'link-local' */
+ str_value = svGetValue (ifcfg, "IPV6ADDR", FALSE);
+ if (!str_value)
+ str_value = svGetValue (ifcfg, "IPV6ADDR_SECONDARIES", FALSE);
- if (!str_value)
- method = NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL;
- g_free (str_value);
+ if (!str_value)
+ method = NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL;
+ g_free (str_value);
+ }
}
/* TODO - handle other methods */
@@ -1521,6 +1518,10 @@ make_ip6_setting (shvarFile *ifcfg,
NM_SETTING_IP6_CONFIG_MAY_FAIL, !svTrueValue (ifcfg, "IPV6_FAILURE_FATAL", FALSE),
NULL);
+ /* Don't bother to read IP, DNS and routes when IPv6 is disabled */
+ if (strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_IGNORE) == 0)
+ return NM_SETTING (s_ip6);
+
if (!strcmp (method, NM_SETTING_IP6_CONFIG_METHOD_MANUAL)) {
NMIP6Address *addr;
char *val;
@@ -2234,6 +2235,7 @@ eap_peap_reader (const char *eap_method,
gboolean phase2,
GError **error)
{
+ char *anon_ident = NULL;
char *ca_cert = NULL;
char *real_cert_path = NULL;
char *inner_auth = NULL;
@@ -2275,6 +2277,10 @@ eap_peap_reader (const char *eap_method,
if (svTrueValue (ifcfg, "IEEE_8021X_PEAP_FORCE_NEW_LABEL", FALSE))
g_object_set (s_8021x, NM_SETTING_802_1X_PHASE1_PEAPLABEL, "1", NULL);
+ anon_ident = svGetValue (ifcfg, "IEEE_8021X_ANON_IDENTITY", FALSE);
+ if (anon_ident && strlen (anon_ident))
+ g_object_set (s_8021x, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, anon_ident, NULL);
+
inner_auth = svGetValue (ifcfg, "IEEE_8021X_INNER_AUTH_METHODS", FALSE);
if (!inner_auth) {
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
@@ -2324,6 +2330,7 @@ done:
g_free (peapver);
g_free (real_cert_path);
g_free (ca_cert);
+ g_free (anon_ident);
return success;
}
@@ -2737,6 +2744,7 @@ make_wireless_setting (shvarFile *ifcfg,
{
NMSettingWireless *s_wireless;
GByteArray *array = NULL;
+ GSList *macaddr_blacklist = NULL;
char *value;
s_wireless = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
@@ -2770,6 +2778,33 @@ make_wireless_setting (shvarFile *ifcfg,
g_object_set (s_wireless, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, array, NULL);
g_byte_array_free (array, TRUE);
}
+ } else {
+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: %s", (*error)->message);
+ g_clear_error (error);
+ }
+
+ value = svGetValue (ifcfg, "HWADDR_BLACKLIST", FALSE);
+ if (value) {
+ char **list = NULL, **iter;
+ struct ether_addr addr;
+
+ list = g_strsplit_set (value, " \t", 0);
+ for (iter = list; iter && *iter; iter++) {
+ if (**iter == '\0')
+ continue;
+ if (!ether_aton_r (*iter, &addr)) {
+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: invalid MAC in HWADDR_BLACKLIST '%s'", *iter);
+ continue;
+ }
+ macaddr_blacklist = g_slist_prepend (macaddr_blacklist, *iter);
+ }
+ if (macaddr_blacklist) {
+ macaddr_blacklist = g_slist_reverse (macaddr_blacklist);
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, macaddr_blacklist, NULL);
+ g_slist_free (macaddr_blacklist);
+ }
+ g_free (value);
+ g_strfreev (list);
}
value = svGetValue (ifcfg, "ESSID", TRUE);
@@ -3030,6 +3065,7 @@ make_wired_setting (shvarFile *ifcfg,
char *value = NULL;
int mtu;
GByteArray *mac = NULL;
+ GSList *macaddr_blacklist = NULL;
char *nettype;
s_wired = NM_SETTING_WIRED (nm_setting_wired_new ());
@@ -3162,6 +3198,33 @@ make_wired_setting (shvarFile *ifcfg,
g_object_set (s_wired, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, mac, NULL);
g_byte_array_free (mac, TRUE);
}
+ } else {
+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: %s", (*error)->message);
+ g_clear_error (error);
+ }
+
+ value = svGetValue (ifcfg, "HWADDR_BLACKLIST", FALSE);
+ if (value) {
+ char **list = NULL, **iter;
+ struct ether_addr addr;
+
+ list = g_strsplit_set (value, " \t", 0);
+ for (iter = list; iter && *iter; iter++) {
+ if (**iter == '\0')
+ continue;
+ if (!ether_aton_r (*iter, &addr)) {
+ PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: invalid MAC in HWADDR_BLACKLIST '%s'", *iter);
+ continue;
+ }
+ macaddr_blacklist = g_slist_prepend (macaddr_blacklist, *iter);
+ }
+ if (macaddr_blacklist) {
+ macaddr_blacklist = g_slist_reverse (macaddr_blacklist);
+ g_object_set (s_wired, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, macaddr_blacklist, NULL);
+ g_slist_free (macaddr_blacklist);
+ }
+ g_free (value);
+ g_strfreev (list);
}
value = svGetValue (ifcfg, "KEY_MGMT", FALSE);
@@ -3246,7 +3309,7 @@ is_wireless_device (const char *iface)
g_return_val_if_fail (iface != NULL, FALSE);
fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (!fd)
+ if (fd == -1)
return FALSE;
memset (&wrq, 0, sizeof (struct iwreq));
diff --git a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2 b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2
index 6d68eca13..27bcbbf9a 100644
--- a/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2
+++ b/src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-wired-8021x-peap-mschapv2
@@ -12,4 +12,4 @@ IEEE_8021X_CA_CERT=test_ca_cert.pem
IEEE_8021X_PEAP_VERSION=1
IEEE_8021X_PEAP_FORCE_NEW_LABEL=yes
IEEE_8021X_INNER_AUTH_METHODS=MSCHAPV2
-
+IEEE_8021X_ANON_IDENTITY=somebody
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 e6013f8d9..d1f08aa98 100644
--- a/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
+++ b/src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
@@ -2707,6 +2707,7 @@ test_read_wired_8021x_peap_mschapv2 (void)
GError *error = NULL;
const char *tmp;
const char *expected_identity = "David Smith";
+ const char *expected_anon_identity = "somebody";
const char *expected_password = "foobar baz";
gboolean success = FALSE;
const char *expected_ca_cert_path;
@@ -2793,6 +2794,19 @@ test_read_wired_8021x_peap_mschapv2 (void)
NM_SETTING_802_1X_SETTING_NAME,
NM_SETTING_802_1X_IDENTITY);
+ /* Anonymous Identity */
+ tmp = nm_setting_802_1x_get_anonymous_identity (s_8021x);
+ ASSERT (tmp != NULL,
+ "wired-8021x-peap-mschapv2-verify-8021x", "failed to verify %s: missing %s / %s key",
+ TEST_IFCFG_WIRED_8021x_PEAP_MSCHAPV2,
+ NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_ANONYMOUS_IDENTITY);
+ ASSERT (strcmp (tmp, expected_anon_identity) == 0,
+ "wired-8021x-peap-mschapv2-verify-8021x", "failed to verify %s: unexpected %s / %s key value",
+ TEST_IFCFG_WIRED_8021x_PEAP_MSCHAPV2,
+ NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_ANONYMOUS_IDENTITY);
+
/* Password */
tmp = nm_setting_802_1x_get_password (s_8021x);
ASSERT (tmp != NULL,
@@ -6491,7 +6505,7 @@ test_write_wired_static (void)
struct in6_addr ip6, ip6_1, ip6_2;
struct in6_addr route1_dest, route2_dest, route1_nexthop, route2_nexthop;
struct in6_addr dns6_1, dns6_2;
- const guint32 route1_prefix = 64, route2_prefix = 0;
+ const guint32 route1_prefix = 64, route2_prefix = 128;
const guint32 route1_metric = 99, route2_metric = 1;
NMIP4Address *addr;
NMIP6Address *addr6;
@@ -6774,6 +6788,7 @@ test_write_wired_dhcp (void)
g_object_set (s_ip6,
NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
NULL);
/* Save the ifcfg */
@@ -7234,7 +7249,10 @@ test_write_wired_static_routes (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wired-static-routes-write", "failed to verify connection: %s",
@@ -7350,7 +7368,10 @@ test_write_wired_dhcp_8021x_peap_mschapv2 (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
/* 802.1x setting */
s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
@@ -7361,6 +7382,7 @@ test_write_wired_dhcp_8021x_peap_mschapv2 (void)
g_object_set (s_8021x,
NM_SETTING_802_1X_IDENTITY, "Bob Saget",
+ NM_SETTING_802_1X_ANONYMOUS_IDENTITY, "barney",
NM_SETTING_802_1X_PASSWORD, "Kids, it was back in October 2008...",
NM_SETTING_802_1X_PHASE1_PEAPVER, "1",
NM_SETTING_802_1X_PHASE1_PEAPLABEL, "1",
@@ -7508,7 +7530,10 @@ test_write_wired_8021x_tls (NMSetting8021xCKScheme scheme,
/* IP6 setting */
s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
g_assert (s_ip6);
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
/* 802.1x setting */
@@ -7753,7 +7778,10 @@ test_write_wifi_open (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-open-write", "failed to verify connection: %s",
@@ -7892,7 +7920,10 @@ test_write_wifi_open_hex_ssid (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-open-hex-ssid-write", "failed to verify connection: %s",
@@ -8035,7 +8066,10 @@ test_write_wifi_wep (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wep-write", "failed to verify connection: %s",
@@ -8198,7 +8232,10 @@ test_write_wifi_wep_adhoc (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wep-adhoc-write", "failed to verify connection: %s",
@@ -8351,7 +8388,10 @@ test_write_wifi_wep_passphrase (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wep-passphrase-write", "failed to verify connection: %s",
@@ -8506,7 +8546,10 @@ test_write_wifi_wep_40_ascii (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wep-40-ascii-write", "failed to verify connection: %s",
@@ -8661,7 +8704,10 @@ test_write_wifi_wep_104_ascii (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wep-104-ascii-write", "failed to verify connection: %s",
@@ -8813,7 +8859,10 @@ test_write_wifi_leap (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-leap-write", "failed to verify connection: %s",
@@ -8949,7 +8998,11 @@ test_write_wifi_leap_secret_flags (NMSettingSecretFlags flags)
s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
g_assert (s_ip6);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
success = nm_connection_verify (connection, &error);
g_assert_no_error (error);
@@ -9114,7 +9167,10 @@ test_write_wifi_wpa_psk (const char *name,
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
test_name, "failed to verify connection: %s",
@@ -9277,7 +9333,10 @@ test_write_wifi_wpa_psk_adhoc (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wpa-psk-adhoc-write", "failed to verify connection: %s",
@@ -9458,7 +9517,10 @@ test_write_wifi_wpa_eap_tls (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wpa-eap-tls-write", "failed to verify connection: %s",
@@ -9657,7 +9719,10 @@ test_write_wifi_wpa_eap_ttls_tls (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wpa-eap-ttls-tls-write", "failed to verify connection: %s",
@@ -9828,7 +9893,10 @@ test_write_wifi_wpa_eap_ttls_mschapv2 (void)
NM_SETTING_IP6_CONFIG_SETTING_NAME);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
ASSERT (nm_connection_verify (connection, &error) == TRUE,
"wifi-wpa-eap-ttls-mschapv2-write", "failed to verify connection: %s",
@@ -9970,7 +10038,10 @@ test_write_wifi_wpa_then_open (void)
g_assert (s_ip6);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
success = nm_connection_verify (connection, &error);
g_assert_no_error (error);
@@ -10154,9 +10225,13 @@ test_write_wifi_dynamic_wep_leap (void)
/* IP6 setting */
s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
g_assert (s_ip6);
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
+
success = nm_connection_verify (connection, &error);
g_assert_no_error (error);
g_assert (success);
@@ -10688,6 +10763,7 @@ test_write_wired_qeth_dhcp (void)
g_object_set (s_ip6,
NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
NULL);
/* Verify */
@@ -10804,7 +10880,11 @@ test_write_wired_ctc_dhcp (void)
s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
g_assert (s_ip6);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
/* Verify */
success = nm_connection_verify (connection, &error);
@@ -10939,6 +11019,7 @@ test_write_permissions (void)
g_object_set (s_ip6,
NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
NULL);
/* Verify */
@@ -11040,7 +11121,11 @@ test_write_wifi_wep_agent_keys (void)
s_ip6 = (NMSettingIP6Config *) nm_setting_ip6_config_new ();
g_assert (s_ip6);
nm_connection_add_setting (connection, NM_SETTING (s_ip6));
- g_object_set (s_ip6, NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE, NULL);
+
+ g_object_set (s_ip6,
+ NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_IGNORE,
+ NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NULL);
/* Wifi setting */
s_wifi = (NMSettingWireless *) nm_setting_wireless_new ();
diff --git a/src/settings/plugins/ifcfg-rh/writer.c b/src/settings/plugins/ifcfg-rh/writer.c
index 6b66b2325..192226acb 100644
--- a/src/settings/plugins/ifcfg-rh/writer.c
+++ b/src/settings/plugins/ifcfg-rh/writer.c
@@ -758,6 +758,7 @@ write_wireless_setting (NMConnection *connection,
char buf[33];
guint32 mtu, chan, i;
gboolean adhoc = FALSE, hex_ssid = FALSE;
+ const GSList *macaddr_blacklist;
s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
if (!s_wireless) {
@@ -786,6 +787,23 @@ write_wireless_setting (NMConnection *connection,
g_free (tmp);
}
+ svSetValue (ifcfg, "HWADDR_BLACKLIST", NULL, FALSE);
+ macaddr_blacklist = nm_setting_wireless_get_mac_address_blacklist (s_wireless);
+ if (macaddr_blacklist) {
+ const GSList *iter;
+ GString *blacklist_str = g_string_new (NULL);
+
+ for (iter = macaddr_blacklist; iter; iter = g_slist_next (iter)) {
+ g_string_append (blacklist_str, iter->data);
+ g_string_append_c (blacklist_str, ' ');
+
+ }
+ if (blacklist_str->len > 0)
+ g_string_truncate (blacklist_str, blacklist_str->len - 1);
+ svSetValue (ifcfg, "HWADDR_BLACKLIST", blacklist_str->str, FALSE);
+ g_string_free (blacklist_str, TRUE);
+ }
+
svSetValue (ifcfg, "MTU", NULL, FALSE);
mtu = nm_setting_wireless_get_mtu (s_wireless);
if (mtu) {
@@ -934,6 +952,7 @@ write_wired_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
guint32 mtu, num_opts, i;
const GPtrArray *s390_subchannels;
GString *str;
+ const GSList *macaddr_blacklist;
s_wired = (NMSettingWired *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRED);
if (!s_wired) {
@@ -961,6 +980,23 @@ write_wired_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
g_free (tmp);
}
+ svSetValue (ifcfg, "HWADDR_BLACKLIST", NULL, FALSE);
+ macaddr_blacklist = nm_setting_wired_get_mac_address_blacklist (s_wired);
+ if (macaddr_blacklist) {
+ const GSList *iter;
+ GString *blacklist_str = g_string_new (NULL);
+
+ for (iter = macaddr_blacklist; iter; iter = g_slist_next (iter)) {
+ g_string_append (blacklist_str, iter->data);
+ g_string_append_c (blacklist_str, ' ');
+
+ }
+ if (blacklist_str->len > 0)
+ g_string_truncate (blacklist_str, blacklist_str->len - 1);
+ svSetValue (ifcfg, "HWADDR_BLACKLIST", blacklist_str->str, FALSE);
+ g_string_free (blacklist_str, TRUE);
+ }
+
svSetValue (ifcfg, "MTU", NULL, FALSE);
mtu = nm_setting_wired_get_mtu (s_wired);
if (mtu) {
@@ -1316,13 +1352,14 @@ write_ip4_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
if (utils_has_route_file_new_syntax (route_path)) {
shvarFile *routefile;
- g_free (route_path);
routefile = utils_get_route_ifcfg (ifcfg->fileName, TRUE);
if (!routefile) {
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
- "Could not create route file '%s'", routefile->fileName);
+ "Could not create route file '%s'", route_path);
+ g_free (route_path);
goto out;
}
+ g_free (route_path);
num = nm_setting_ip4_config_get_num_routes (s_ip4);
for (i = 0; i < 256; i++) {
diff --git a/src/settings/plugins/ifnet/plugin.c b/src/settings/plugins/ifnet/plugin.c
index 69b7bc803..590836884 100644
--- a/src/settings/plugins/ifnet/plugin.c
+++ b/src/settings/plugins/ifnet/plugin.c
@@ -278,7 +278,8 @@ reload_connections (gpointer config)
if (auto_refresh && is_true (auto_refresh)) {
if (!nm_connection_compare (NM_CONNECTION (old),
NM_CONNECTION (new),
- NM_SETTING_COMPARE_FLAG_EXACT)) {
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS |
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)) {
PLUGIN_PRINT (IFNET_PLUGIN_NAME, "Auto refreshing %s", conn_name);
/* Remove and re-add to disconnect and reconnect with new settings */
diff --git a/src/settings/plugins/keyfile/common.h b/src/settings/plugins/keyfile/common.h
index 6c8f9cebb..7d94a7053 100644
--- a/src/settings/plugins/keyfile/common.h
+++ b/src/settings/plugins/keyfile/common.h
@@ -23,9 +23,6 @@
#include <glib.h>
-#define SWP_TAG ".swp"
-#define SWPX_TAG ".swpx"
-
#define KEYFILE_PLUGIN_NAME "keyfile"
#define KEYFILE_PLUGIN_INFO "(c) 2007 - 2010 Red Hat, Inc. To report bugs please use the NetworkManager mailing list."
diff --git a/src/settings/plugins/keyfile/plugin.c b/src/settings/plugins/keyfile/plugin.c
index ffc614bc5..af69c2001 100644
--- a/src/settings/plugins/keyfile/plugin.c
+++ b/src/settings/plugins/keyfile/plugin.c
@@ -231,7 +231,8 @@ dir_changed (GFileMonitor *monitor,
if (tmp) {
if (!nm_connection_compare (NM_CONNECTION (connection),
NM_CONNECTION (tmp),
- NM_SETTING_COMPARE_FLAG_EXACT)) {
+ NM_SETTING_COMPARE_FLAG_IGNORE_AGENT_OWNED_SECRETS |
+ NM_SETTING_COMPARE_FLAG_IGNORE_NOT_SAVED_SECRETS)) {
PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", full_path);
update_connection_settings (connection, tmp);
}
diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c
index a8eaaa8e2..c4136e05c 100644
--- a/src/settings/plugins/keyfile/reader.c
+++ b/src/settings/plugins/keyfile/reader.c
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2008 - 2009 Novell, Inc.
- * Copyright (C) 2008 - 2010 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*/
#include <errno.h>
@@ -40,6 +40,7 @@
#include <ctype.h>
#include "nm-dbus-glib-types.h"
+#include "nm-system-config-interface.h"
#include "reader.h"
#include "common.h"
@@ -735,29 +736,27 @@ get_uchar_array (GKeyFile *keyfile,
const char *key)
{
GByteArray *array = NULL;
- char *p, *tmp_string;
+ char *tmp_string;
gint *tmp_list;
gsize length;
int i;
- /* New format: just a string. We try parsing the new format if there are
- * no ';' in the string or it's not just numbers.
+ /* New format: just a string
+ * Old format: integer list; e.g. 11;25;38
*/
- p = tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
+ tmp_string = g_key_file_get_string (keyfile, setting_name, key, NULL);
if (tmp_string) {
gboolean new_format = FALSE;
+ GRegex *regex;
+ GMatchInfo *match_info;
+ const char *pattern = "^[[:space:]]*[[:digit:]]{1,3}[[:space:]]*(;[[:space:]]*[[:digit:]]{1,3}[[:space:]]*)*(;[[:space:]]*)?$";
- if (strchr (p, ';') == NULL)
- new_format = TRUE;
- else {
+ regex = g_regex_new (pattern, 0, 0, NULL);
+ g_regex_match (regex, tmp_string, 0, &match_info);
+ if (!g_match_info_matches (match_info))
new_format = TRUE;
- while (p && *p) {
- if (!isdigit (*p++)) {
- new_format = FALSE;
- break;
- }
- }
- }
+ g_match_info_free (match_info);
+ g_regex_unref (regex);
if (new_format) {
array = g_byte_array_sized_new (strlen (tmp_string));
@@ -835,6 +834,24 @@ get_cert_path (const char *keyfile_path, GByteArray *cert_path)
#define SCHEME_PATH "file://"
+static const char *certext[] = { ".pem", ".cert", ".crt", ".cer", ".p12", ".der", ".key" };
+
+static gboolean
+has_cert_ext (GByteArray *array)
+{
+ int i;
+
+ for (i = 0; i < G_N_ELEMENTS (certext); i++) {
+ guint32 extlen = strlen (certext[i]);
+
+ if (array->len <= extlen)
+ continue;
+ if (memcmp (&array->data[array->len - extlen], certext[i], extlen) == 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
static void
cert_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
@@ -859,17 +876,31 @@ cert_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char
&& g_utf8_validate ((const char *) array->data, array->len, NULL)) {
GByteArray *val;
char *path;
+ gboolean exists;
+
+ /* Might be a bare path without the file:// prefix; in that case
+ * if it's an absolute path, use that, otherwise treat it as a
+ * relative path to the current directory.
+ */
path = get_cert_path (keyfile_path, array);
- if (g_file_test (path, G_FILE_TEST_EXISTS)) {
+ exists = g_file_test (path, G_FILE_TEST_EXISTS);
+ if ( exists
+ || memchr (array->data, '/', array->len)
+ || has_cert_ext (array)) {
/* Construct the proper value as required for the PATH scheme */
val = g_byte_array_sized_new (strlen (SCHEME_PATH) + array->len + 1);
g_byte_array_append (val, (const guint8 *) SCHEME_PATH, strlen (SCHEME_PATH));
- g_byte_array_append (val, array->data, array->len);
+ g_byte_array_append (val, (const guint8 *) path, strlen (path));
g_byte_array_append (val, (const guint8 *) "\0", 1);
g_object_set (setting, key, val, NULL);
g_byte_array_free (val, TRUE);
success = TRUE;
+
+ /* Warn if the certificate didn't exist */
+ if (exists == FALSE) {
+ PLUGIN_WARN (KEYFILE_PLUGIN_NAME, " certificate or key %s does not exist", path);
+ }
}
g_free (path);
}
@@ -881,7 +912,7 @@ cert_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char
g_byte_array_free (array, TRUE);
} else {
- g_warning ("%s: ignoring invalid SSID for %s / %s",
+ g_warning ("%s: ignoring invalid key/cert value for %s / %s",
__func__, setting_name, key);
}
}
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
index 0ce032096..302db8666 100644
--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.am
@@ -7,8 +7,11 @@ KEYFILES = \
ATT_Data_Connect_BT \
ATT_Data_Connect_Plain \
Test_String_SSID \
+ Test_Intlist_SSID \
Test_Wired_TLS_Old \
- Test_Wired_TLS_New
+ Test_Wired_TLS_New \
+ Test_Wired_TLS_Blob \
+ Test_Wired_TLS_Path_Missing
CERTS = \
test-ca-cert.pem \
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
index 2c3c16306..083615b01 100644
--- a/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Makefile.in
@@ -277,8 +277,11 @@ KEYFILES = \
ATT_Data_Connect_BT \
ATT_Data_Connect_Plain \
Test_String_SSID \
+ Test_Intlist_SSID \
Test_Wired_TLS_Old \
- Test_Wired_TLS_New
+ Test_Wired_TLS_New \
+ Test_Wired_TLS_Blob \
+ Test_Wired_TLS_Path_Missing
CERTS = \
test-ca-cert.pem \
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
new file mode 100644
index 000000000..6d2bc0fad
--- /dev/null
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Intlist_SSID
@@ -0,0 +1,11 @@
+[connection]
+id=Test
+uuid=2f962388-e5f3-45af-a62c-ac220b8f7baa
+type=802-11-wireless
+
+[802-11-wireless]
+ssid=98;108;97;104;49;50;51;52;
+
+[ipv4]
+method=auto
+
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Blob b/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Blob
new file mode 100644
index 000000000..9f4ef62fd
--- /dev/null
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Blob
@@ -0,0 +1,22 @@
+
+[connection]
+id=Wired TLS
+uuid=5ee46013-9469-4c6a-a60a-0c7a1e1c7488
+type=802-3-ethernet
+
+[802-1x]
+eap=tls;
+identity=Bill Smith
+ca-cert=48;130;2;52;48;130;1;161;2;16;2;173;102;126;78;69;254;94;87;111;60;152;25;94;221;192;48;13;6;9;42;134;72;134;247;13;1;1;2;5;0;48;95;49;11;48;9;6;3;85;4;6;19;2;85;83;49;32;48;30;6;3;85;4;10;19;23;82;83;65;32;68;97;116;97;32;83;101;99;117;114;105;116;121;44;32;73;110;99;46;49;46;48;44;6;3;85;4;11;19;37;83;101;99;117;114;101;32;83;101;114;118;101;114;32;67;101;114;116;105;102;105;99;97;116;105;111;110;32;65;117;116;104;111;114;105;116;121;48;30;23;13;57;52;49;49;48;57;48;48;48;48;48;48;90;23;13;49;48;48;49;48;55;50;51;53;57;53;57;90;48;95;49;11;48;9;6;3;85;4;6;19;2;85;83;49;32;48;30;6;3;85;4;10;19;23;82;83;65;32;68;97;116;97;32;83;101;99;117;114;105;116;121;44;32;73;110;99;46;49;46;48;44;6;3;85;4;11;19;37;83;101;99;117;114;101;32;83;101;114;118;101;114;32;67;101;114;116;105;102;105;99;97;116;105;111;110;32;65;117;116;104;111;114;105;116;121;48;129;155;48;13;6;9;42;134;72;134;247;13;1;1;1;5;0;3;129;137;0;48;129;133;2;126;0;146;206;122;193;174;131;62;90;170;137;131;87;172;37;1;118;12;173;174;142;44;55;206;235;53;120;100;84;3;229;132;64;81;201;191;143;8;226;138;130;8;210;22;134;55;85;233;177;33;2;173;118;104;129;154;5;162;75;201;75;37;102;34;86;108;136;7;143;247;129;89;109;132;7;101;112;19;113;118;62;155;119;76;227;80;137;86;152;72;185;29;167;41;26;19;46;74;17;89;156;30;21;213;73;84;44;115;58;105;130;177;151;57;156;109;112;103;72;229;221;45;214;200;30;123;2;3;1;0;1;48;13;6;9;42;134;72;134;247;13;1;1;2;5;0;3;126;0;101;221;126;225;178;236;176;226;58;224;236;113;70;154;25;17;184;211;199;160;180;3;64;38;2;62;9;156;225;18;179;209;90;246;55;165;183;97;3;182;91;22;105;59;198;68;8;12;136;83;12;107;151;73;199;62;53;220;108;185;187;170;223;92;187;58;47;147;96;182;169;75;77;242;32;247;205;95;127;100;123;142;220;0;92;215;250;119;202;57;22;89;111;14;234;211;181;131;127;77;77;66;86;118;180;201;95;4;248;56;248;235;210;95;117;95;205;123;252;229;142;128;124;252;80;
+client-cert=102;105;108;101;58;47;47;47;104;111;109;101;47;100;99;98;119;47;68;101;115;107;116;111;112;47;99;101;114;116;105;110;102;114;97;47;99;108;105;101;110;116;46;112;101;109;0;
+private-key=102;105;108;101;58;47;47;47;104;111;109;101;47;100;99;98;119;47;68;101;115;107;116;111;112;47;99;101;114;116;105;110;102;114;97;47;99;108;105;101;110;116;46;112;101;109;0;
+private-key-password=12345testing
+
+[ipv4]
+method=auto
+
+[802-3-ethernet]
+duplex=full
+
+[ipv6]
+method=ignore
diff --git a/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Path_Missing b/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Path_Missing
new file mode 100644
index 000000000..2b39538ea
--- /dev/null
+++ b/src/settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Path_Missing
@@ -0,0 +1,22 @@
+
+[connection]
+id=Wired TLS
+uuid=5ee46013-9469-4c6a-a60a-0c7a1e1c7488
+type=802-3-ethernet
+
+[802-1x]
+eap=tls;
+identity=Bill Smith
+ca-cert=/some/random/cert/path.pem
+client-cert=test-key-and-cert.pem
+private-key=test-key-and-cert.pem
+private-key-password=12345testing
+
+[ipv4]
+method=auto
+
+[802-3-ethernet]
+duplex=full
+
+[ipv6]
+method=ignore
diff --git a/src/settings/plugins/keyfile/tests/test-keyfile.c b/src/settings/plugins/keyfile/tests/test-keyfile.c
index bfe5aa43d..3bbaaaec9 100644
--- a/src/settings/plugins/keyfile/tests/test-keyfile.c
+++ b/src/settings/plugins/keyfile/tests/test-keyfile.c
@@ -1438,6 +1438,131 @@ test_write_string_ssid (void)
g_object_unref (connection);
}
+#define TEST_INTLIST_SSID_FILE TEST_KEYFILES_DIR"/Test_Intlist_SSID"
+
+static void
+test_read_intlist_ssid (void)
+{
+ NMConnection *connection;
+ NMSettingWireless *s_wifi;
+ GError *error = NULL;
+ gboolean success;
+ const GByteArray *array;
+ const char *expected_ssid = "blah1234";
+
+ connection = nm_keyfile_plugin_connection_from_file (TEST_INTLIST_SSID_FILE, &error);
+ g_assert_no_error (error);
+ g_assert (connection);
+
+ success = nm_connection_verify (connection, &error);
+ g_assert_no_error (error);
+ g_assert (success);
+
+ /* SSID */
+ s_wifi = nm_connection_get_setting_wireless (connection);
+ g_assert (s_wifi);
+
+ array = nm_setting_wireless_get_ssid (s_wifi);
+ g_assert (array != NULL);
+ g_assert_cmpint (array->len, ==, strlen (expected_ssid));
+ g_assert_cmpint (memcmp (array->data, expected_ssid, strlen (expected_ssid)), ==, 0);
+
+ g_object_unref (connection);
+}
+
+static void
+test_write_intlist_ssid (void)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSettingWireless *s_wifi;
+ NMSettingIP4Config *s_ip4;
+ char *uuid, *testfile = NULL;
+ GByteArray *ssid;
+ unsigned char tmpssid[] = { 65, 49, 50, 51, 0, 50, 50 };
+ gboolean success;
+ NMConnection *reread;
+ GError *error = NULL;
+ pid_t owner_grp;
+ uid_t owner_uid;
+ GKeyFile *keyfile;
+ gint *intlist;
+ gsize len = 0, i;
+
+ connection = nm_connection_new ();
+ g_assert (connection);
+
+ /* Connection setting */
+
+ s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ());
+ g_assert (s_con);
+ nm_connection_add_setting (connection, NM_SETTING (s_con));
+
+ uuid = nm_utils_uuid_generate ();
+ g_object_set (s_con,
+ NM_SETTING_CONNECTION_ID, "Intlist SSID Test",
+ NM_SETTING_CONNECTION_UUID, uuid,
+ NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
+ NULL);
+ g_free (uuid);
+
+ /* Wireless setting */
+ s_wifi = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
+ g_assert (s_wifi);
+ nm_connection_add_setting (connection, NM_SETTING (s_wifi));
+
+ ssid = g_byte_array_sized_new (sizeof (tmpssid));
+ g_byte_array_append (ssid, &tmpssid[0], sizeof (tmpssid));
+ g_object_set (s_wifi, NM_SETTING_WIRELESS_SSID, ssid, NULL);
+ g_byte_array_free (ssid, TRUE);
+
+ /* IP4 setting */
+ s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
+ g_assert (s_ip4);
+ nm_connection_add_setting (connection, NM_SETTING (s_ip4));
+ g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
+
+ /* Write out the connection */
+ owner_uid = geteuid ();
+ owner_grp = getegid ();
+ success = nm_keyfile_plugin_write_test_connection (connection, TEST_SCRATCH_DIR, owner_uid, owner_grp, &testfile, &error);
+ g_assert_no_error (error);
+ g_assert (success);
+ g_assert (testfile != NULL);
+
+ /* Ensure the SSID was written out as an int list */
+ keyfile = g_key_file_new ();
+ success = g_key_file_load_from_file (keyfile, testfile, 0, &error);
+ g_assert_no_error (error);
+ g_assert (success);
+
+ intlist = g_key_file_get_integer_list (keyfile, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, &len, &error);
+ g_assert_no_error (error);
+ g_assert (intlist);
+ g_assert_cmpint (len, ==, sizeof (tmpssid));
+
+ for (i = 0; i < len; i++)
+ g_assert_cmpint (intlist[i], ==, tmpssid[i]);
+ g_free (intlist);
+
+ g_key_file_free (keyfile);
+
+ /* Read the connection back in and compare it to the one we just wrote out */
+ reread = nm_keyfile_plugin_connection_from_file (testfile, &error);
+ g_assert_no_error (error);
+ g_assert (reread);
+
+ success = nm_connection_compare (connection, reread, NM_SETTING_COMPARE_FLAG_EXACT);
+ g_assert (success);
+
+ g_clear_error (&error);
+ unlink (testfile);
+ g_free (testfile);
+
+ g_object_unref (reread);
+ g_object_unref (connection);
+}
+
#define TEST_BT_DUN_FILE TEST_KEYFILES_DIR"/ATT_Data_Connect_BT"
static void
@@ -1953,6 +2078,133 @@ test_write_gsm_connection (void)
g_object_unref (connection);
}
+#define TEST_WIRED_TLS_BLOB_FILE TEST_KEYFILES_DIR"/Test_Wired_TLS_Blob"
+
+static void
+test_read_wired_8021x_tls_blob_connection (void)
+{
+ NMConnection *connection;
+ NMSetting *s_wired;
+ NMSetting8021x *s_8021x;
+ GError *error = NULL;
+ const char *tmp;
+ gboolean success;
+ const GByteArray *array;
+
+ connection = nm_keyfile_plugin_connection_from_file (TEST_WIRED_TLS_BLOB_FILE, &error);
+ if (connection == NULL) {
+ g_assert (error);
+ g_warning ("Failed to read %s: %s", TEST_WIRED_TLS_BLOB_FILE, error->message);
+ g_assert (connection);
+ }
+
+ success = nm_connection_verify (connection, &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to verify %s: %s", TEST_WIRED_TLS_BLOB_FILE, error->message);
+ g_assert (success);
+ }
+
+ /* ===== Wired Setting ===== */
+ s_wired = nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRED);
+ g_assert (s_wired != NULL);
+
+ /* ===== 802.1x Setting ===== */
+ s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+ g_assert (s_8021x != NULL);
+
+ g_assert (nm_setting_802_1x_get_num_eap_methods (s_8021x) == 1);
+ tmp = nm_setting_802_1x_get_eap_method (s_8021x, 0);
+ g_assert (g_strcmp0 (tmp, "tls") == 0);
+
+ tmp = nm_setting_802_1x_get_identity (s_8021x);
+ g_assert (g_strcmp0 (tmp, "Bill Smith") == 0);
+
+ tmp = nm_setting_802_1x_get_private_key_password (s_8021x);
+ g_assert (g_strcmp0 (tmp, "12345testing") == 0);
+
+ g_assert_cmpint (nm_setting_802_1x_get_ca_cert_scheme (s_8021x), ==, NM_SETTING_802_1X_CK_SCHEME_BLOB);
+
+ /* Make sure it's not a path, since it's a blob */
+ tmp = nm_setting_802_1x_get_ca_cert_path (s_8021x);
+ g_assert (tmp == NULL);
+
+ /* Validate the path */
+ array = nm_setting_802_1x_get_ca_cert_blob (s_8021x);
+ g_assert (array != NULL);
+ g_assert_cmpint (array->len, ==, 568);
+
+ tmp = nm_setting_802_1x_get_client_cert_path (s_8021x);
+ g_assert_cmpstr (tmp, ==, "/home/dcbw/Desktop/certinfra/client.pem");
+
+ tmp = nm_setting_802_1x_get_private_key_path (s_8021x);
+ g_assert_cmpstr (tmp, ==, "/home/dcbw/Desktop/certinfra/client.pem");
+
+ g_object_unref (connection);
+}
+
+#define TEST_WIRED_TLS_PATH_MISSING_FILE TEST_KEYFILES_DIR"/Test_Wired_TLS_Path_Missing"
+
+static void
+test_read_wired_8021x_tls_bad_path_connection (void)
+{
+ NMConnection *connection;
+ NMSetting *s_wired;
+ NMSetting8021x *s_8021x;
+ GError *error = NULL;
+ const char *tmp;
+ char *tmp2;
+ gboolean success;
+
+ connection = nm_keyfile_plugin_connection_from_file (TEST_WIRED_TLS_PATH_MISSING_FILE, &error);
+ if (connection == NULL) {
+ g_assert (error);
+ g_warning ("Failed to read %s: %s", TEST_WIRED_TLS_PATH_MISSING_FILE, error->message);
+ g_assert (connection);
+ }
+
+ success = nm_connection_verify (connection, &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to verify %s: %s", TEST_WIRED_TLS_BLOB_FILE, error->message);
+ g_assert (success);
+ }
+
+ /* ===== Wired Setting ===== */
+ s_wired = nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRED);
+ g_assert (s_wired != NULL);
+
+ /* ===== 802.1x Setting ===== */
+ s_8021x = (NMSetting8021x *) nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X);
+ g_assert (s_8021x != NULL);
+
+ g_assert (nm_setting_802_1x_get_num_eap_methods (s_8021x) == 1);
+ tmp = nm_setting_802_1x_get_eap_method (s_8021x, 0);
+ g_assert (g_strcmp0 (tmp, "tls") == 0);
+
+ tmp = nm_setting_802_1x_get_identity (s_8021x);
+ g_assert (g_strcmp0 (tmp, "Bill Smith") == 0);
+
+ tmp = nm_setting_802_1x_get_private_key_password (s_8021x);
+ g_assert (g_strcmp0 (tmp, "12345testing") == 0);
+
+ g_assert_cmpint (nm_setting_802_1x_get_ca_cert_scheme (s_8021x), ==, NM_SETTING_802_1X_CK_SCHEME_PATH);
+
+ tmp = nm_setting_802_1x_get_ca_cert_path (s_8021x);
+ g_assert_cmpstr (tmp, ==, "/some/random/cert/path.pem");
+
+ tmp2 = g_strdup_printf (TEST_KEYFILES_DIR "/test-key-and-cert.pem");
+
+ tmp = nm_setting_802_1x_get_client_cert_path (s_8021x);
+ g_assert_cmpstr (tmp, ==, tmp2);
+
+ tmp = nm_setting_802_1x_get_private_key_path (s_8021x);
+ g_assert_cmpstr (tmp, ==, tmp2);
+
+ g_free (tmp2);
+ g_object_unref (connection);
+}
+
#define TEST_WIRED_TLS_OLD_FILE TEST_KEYFILES_DIR"/Test_Wired_TLS_Old"
static void
@@ -2019,6 +2271,7 @@ test_read_wired_8021x_tls_new_connection (void)
NMSetting8021x *s_8021x;
GError *error = NULL;
const char *tmp;
+ char *tmp2;
gboolean success;
connection = nm_keyfile_plugin_connection_from_file (TEST_WIRED_TLS_NEW_FILE, &error);
@@ -2053,15 +2306,20 @@ test_read_wired_8021x_tls_new_connection (void)
tmp = nm_setting_802_1x_get_private_key_password (s_8021x);
g_assert (g_strcmp0 (tmp, "12345testing") == 0);
+ tmp2 = g_strdup_printf (TEST_KEYFILES_DIR "/test-ca-cert.pem");
tmp = nm_setting_802_1x_get_ca_cert_path (s_8021x);
- g_assert (g_strcmp0 (tmp, "test-ca-cert.pem") == 0);
+ g_assert_cmpstr (tmp, ==, tmp2);
+ g_free (tmp2);
+
+ tmp2 = g_strdup_printf (TEST_KEYFILES_DIR "/test-key-and-cert.pem");
tmp = nm_setting_802_1x_get_client_cert_path (s_8021x);
- g_assert (g_strcmp0 (tmp, "test-key-and-cert.pem") == 0);
+ g_assert_cmpstr (tmp, ==, tmp2);
tmp = nm_setting_802_1x_get_private_key_path (s_8021x);
- g_assert (g_strcmp0 (tmp, "test-key-and-cert.pem") == 0);
+ g_assert_cmpstr (tmp, ==, tmp2);
+ g_free (tmp2);
g_object_unref (connection);
}
@@ -2153,16 +2411,23 @@ create_wired_tls_connection (NMSetting8021xCKScheme scheme)
return connection;
}
+static char *
+get_path (const char *file, gboolean relative)
+{
+ return relative ? g_path_get_basename (file) : g_strdup (file);
+}
+
static void
test_write_wired_8021x_tls_connection_path (void)
{
NMConnection *connection;
- char *tmp;
+ char *tmp, *tmp2;
gboolean success;
NMConnection *reread;
char *testfile = NULL;
GError *error = NULL;
GKeyFile *keyfile;
+ gboolean relative = FALSE;
connection = create_wired_tls_connection (NM_SETTING_802_1X_CK_SCHEME_PATH);
g_assert (connection != NULL);
@@ -2200,12 +2465,22 @@ test_write_wired_8021x_tls_connection_path (void)
g_assert (success);
}
+ /* Depending on whether this test is being run from 'make check' or
+ * 'make distcheck' we might be using relative paths (check) or
+ * absolute ones (distcheck).
+ */
+ tmp2 = g_path_get_dirname (testfile);
+ if (g_strcmp0 (tmp2, TEST_KEYFILES_DIR) == 0)
+ relative = TRUE;
+
/* CA cert */
tmp = g_key_file_get_string (keyfile,
NM_SETTING_802_1X_SETTING_NAME,
NM_SETTING_802_1X_CA_CERT,
NULL);
- g_assert (g_strcmp0 (tmp, TEST_WIRED_TLS_CA_CERT) == 0);
+ tmp2 = get_path (TEST_WIRED_TLS_CA_CERT, relative);
+ g_assert_cmpstr (tmp, ==, tmp2);
+ g_free (tmp2);
g_free (tmp);
/* Client cert */
@@ -2213,7 +2488,9 @@ test_write_wired_8021x_tls_connection_path (void)
NM_SETTING_802_1X_SETTING_NAME,
NM_SETTING_802_1X_CLIENT_CERT,
NULL);
- g_assert (g_strcmp0 (tmp, TEST_WIRED_TLS_CLIENT_CERT) == 0);
+ tmp2 = get_path (TEST_WIRED_TLS_CLIENT_CERT, relative);
+ g_assert_cmpstr (tmp, ==, tmp2);
+ g_free (tmp2);
g_free (tmp);
/* Private key */
@@ -2221,7 +2498,9 @@ test_write_wired_8021x_tls_connection_path (void)
NM_SETTING_802_1X_SETTING_NAME,
NM_SETTING_802_1X_PRIVATE_KEY,
NULL);
- g_assert (g_strcmp0 (tmp, TEST_WIRED_TLS_PRIVKEY) == 0);
+ tmp2 = get_path (TEST_WIRED_TLS_PRIVKEY, relative);
+ g_assert_cmpstr (tmp, ==, tmp2);
+ g_free (tmp2);
g_free (tmp);
g_key_file_free (keyfile);
@@ -2334,12 +2613,18 @@ int main (int argc, char **argv)
test_read_string_ssid ();
test_write_string_ssid ();
+ test_read_intlist_ssid ();
+ test_write_intlist_ssid ();
+
test_read_bt_dun_connection ();
test_write_bt_dun_connection ();
test_read_gsm_connection ();
test_write_gsm_connection ();
+ test_read_wired_8021x_tls_blob_connection ();
+ test_read_wired_8021x_tls_bad_path_connection ();
+
test_read_wired_8021x_tls_old_connection ();
test_read_wired_8021x_tls_new_connection ();
test_write_wired_8021x_tls_connection_path ();
diff --git a/src/settings/plugins/keyfile/utils.c b/src/settings/plugins/keyfile/utils.c
index 7b93a245d..f35311722 100644
--- a/src/settings/plugins/keyfile/utils.c
+++ b/src/settings/plugins/keyfile/utils.c
@@ -74,6 +74,11 @@ check_suffix (const char *base, const char *tag)
return FALSE;
}
+#define SWP_TAG ".swp"
+#define SWPX_TAG ".swpx"
+#define PEM_TAG ".pem"
+#define DER_TAG ".der"
+
gboolean
nm_keyfile_plugin_utils_should_ignore_file (const char *filename)
{
@@ -88,6 +93,8 @@ nm_keyfile_plugin_utils_should_ignore_file (const char *filename)
/* Ignore files with certain patterns */
if ( (check_prefix (base, ".") && check_suffix (base, SWP_TAG)) /* vim temporary files: .filename.swp */
|| (check_prefix (base, ".") && check_suffix (base, SWPX_TAG)) /* vim temporary files: .filename.swpx */
+ || check_suffix (base, PEM_TAG) /* 802.1x certificates and keys */
+ || check_suffix (base, DER_TAG) /* 802.1x certificates and keys */
|| check_mkstemp_suffix (base) /* temporary files created by mkstemp() */
|| base[strlen (base) - 1] == '~')
ignore = TRUE;
diff --git a/src/settings/plugins/keyfile/writer.c b/src/settings/plugins/keyfile/writer.c
index eeb145560..060093ce6 100644
--- a/src/settings/plugins/keyfile/writer.c
+++ b/src/settings/plugins/keyfile/writer.c
@@ -668,6 +668,16 @@ cert_writer (GKeyFile *file,
if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH) {
path = objtype->path_func (NM_SETTING_802_1X (setting));
g_assert (path);
+
+ /* If the path is rooted in the keyfile directory, just use a
+ * relative path instead of an absolute one.
+ */
+ if (g_str_has_prefix (path, keyfile_dir)) {
+ path += strlen (keyfile_dir);
+ while (*path == '/')
+ path++;
+ }
+
g_key_file_set_string (file, setting_name, key, path);
} else if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB) {
const GByteArray *blob;
diff --git a/src/supplicant-manager/nm-supplicant-config.c b/src/supplicant-manager/nm-supplicant-config.c
index 81d68bb3a..c651e0fa5 100644
--- a/src/supplicant-manager/nm-supplicant-config.c
+++ b/src/supplicant-manager/nm-supplicant-config.c
@@ -451,7 +451,7 @@ add_string_val (NMSupplicantConfig *self,
return success;
}
-#define ADD_STRING_LIST_VAL(setting, setting_name, field, field_plural, name, ucase, secret) \
+#define ADD_STRING_LIST_VAL(setting, setting_name, field, field_plural, name, separator, ucase, secret) \
if (nm_setting_##setting_name##_get_num_##field_plural (setting)) { \
guint32 k; \
GString *str = g_string_new (NULL); \
@@ -460,7 +460,7 @@ add_string_val (NMSupplicantConfig *self,
if (!str->len) { \
g_string_append (str, item); \
} else { \
- g_string_append_c (str, ' '); \
+ g_string_append_c (str, separator); \
g_string_append (str, item); \
} \
} \
@@ -636,9 +636,9 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
if ( !strcmp (key_mgmt, "wpa-none")
|| !strcmp (key_mgmt, "wpa-psk")
|| !strcmp (key_mgmt, "wpa-eap")) {
- ADD_STRING_LIST_VAL (setting, wireless_security, proto, protos, "proto", TRUE, FALSE);
- ADD_STRING_LIST_VAL (setting, wireless_security, pairwise, pairwise, "pairwise", TRUE, FALSE);
- ADD_STRING_LIST_VAL (setting, wireless_security, group, groups, "group", TRUE, FALSE);
+ ADD_STRING_LIST_VAL (setting, wireless_security, proto, protos, "proto", ' ', TRUE, FALSE);
+ ADD_STRING_LIST_VAL (setting, wireless_security, pairwise, pairwise, "pairwise", ' ', TRUE, FALSE);
+ ADD_STRING_LIST_VAL (setting, wireless_security, group, groups, "group", ' ', TRUE, FALSE);
}
/* WEP keys if required */
@@ -742,7 +742,7 @@ nm_supplicant_config_add_setting_8021x (NMSupplicantConfig *self,
nm_supplicant_config_set_ap_scan (self, 0);
}
- ADD_STRING_LIST_VAL (setting, 802_1x, eap_method, eap_methods, "eap", TRUE, FALSE);
+ ADD_STRING_LIST_VAL (setting, 802_1x, eap_method, eap_methods, "eap", ' ', TRUE, FALSE);
/* Check for PEAP + GTC */
num_eap = nm_setting_802_1x_get_num_eap_methods (setting);
@@ -864,6 +864,18 @@ nm_supplicant_config_add_setting_8021x (NMSupplicantConfig *self,
break;
}
+ /* Subject match */
+ value = nm_setting_802_1x_get_subject_match (setting);
+ if (!add_string_val (self, value, "subject_match", FALSE, FALSE))
+ return FALSE;
+ value = nm_setting_802_1x_get_phase2_subject_match (setting);
+ if (!add_string_val (self, value, "subject_match2", FALSE, FALSE))
+ return FALSE;
+
+ /* altSubjectName match */
+ ADD_STRING_LIST_VAL (setting, 802_1x, altsubject_match, altsubject_matches, "altsubject_match", ';', FALSE, FALSE);
+ ADD_STRING_LIST_VAL (setting, 802_1x, phase2_altsubject_match, phase2_altsubject_matches, "altsubject_match2", ';', FALSE, FALSE);
+
/* Private key */
added = FALSE;
switch (nm_setting_802_1x_get_private_key_scheme (setting)) {
diff --git a/src/supplicant-manager/nm-supplicant-interface.c b/src/supplicant-manager/nm-supplicant-interface.c
index e9e58f39f..857cde51c 100644
--- a/src/supplicant-manager/nm-supplicant-interface.c
+++ b/src/supplicant-manager/nm-supplicant-interface.c
@@ -467,7 +467,8 @@ interface_add_done (NMSupplicantInterface *self, char *path)
G_CALLBACK (wpas_iface_properties_changed),
self, NULL);
- dbus_g_proxy_add_signal (priv->iface_proxy, "ScanDone", G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (priv->iface_proxy, "ScanDone",
+ G_TYPE_BOOLEAN, G_TYPE_INVALID);
dbus_g_proxy_connect_signal (priv->iface_proxy, "ScanDone",
G_CALLBACK (wpas_iface_scan_done),
self,
@@ -475,9 +476,11 @@ interface_add_done (NMSupplicantInterface *self, char *path)
dbus_g_object_register_marshaller (_nm_marshal_VOID__STRING_BOXED,
G_TYPE_NONE,
- G_TYPE_STRING, DBUS_TYPE_G_MAP_OF_VARIANT,
+ DBUS_TYPE_G_OBJECT_PATH, DBUS_TYPE_G_MAP_OF_VARIANT,
G_TYPE_INVALID);
- dbus_g_proxy_add_signal (priv->iface_proxy, "BSSAdded", G_TYPE_INVALID);
+ dbus_g_proxy_add_signal (priv->iface_proxy, "BSSAdded",
+ DBUS_TYPE_G_OBJECT_PATH, DBUS_TYPE_G_MAP_OF_VARIANT,
+ G_TYPE_INVALID);
dbus_g_proxy_connect_signal (priv->iface_proxy, "BSSAdded",
G_CALLBACK (wpas_iface_bss_added),
self,
@@ -551,6 +554,9 @@ interface_add_cb (DBusGProxy *proxy,
/* Interface already added, just get its object path */
interface_get (info->interface);
} else if ( g_error_matches (error, DBUS_GERROR, DBUS_GERROR_SERVICE_UNKNOWN)
+ || g_error_matches (error, DBUS_GERROR, DBUS_GERROR_SPAWN_EXEC_FAILED)
+ || g_error_matches (error, DBUS_GERROR, DBUS_GERROR_SPAWN_FORK_FAILED)
+ || g_error_matches (error, DBUS_GERROR, DBUS_GERROR_SPAWN_FAILED)
|| dbus_g_error_has_name (error, DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND)) {
/* Supplicant wasn't running and could be launched via service
* activation. Wait for it to start by moving back to the INIT
@@ -682,12 +688,13 @@ nm_supplicant_interface_disconnect (NMSupplicantInterface * self)
if (!priv->iface_proxy)
return;
- /* Don't try to disconnect if the supplicant interface is already disconnected */
- if ( priv->state == NM_SUPPLICANT_INTERFACE_STATE_DISCONNECTED
- || priv->state == NM_SUPPLICANT_INTERFACE_STATE_INACTIVE) {
- g_free (priv->net_path);
- priv->net_path = NULL;
- return;
+ /* Disconnect from the current AP */
+ if ( (priv->state >= NM_SUPPLICANT_INTERFACE_STATE_SCANNING)
+ && (priv->state <= NM_SUPPLICANT_INTERFACE_STATE_COMPLETED)) {
+ dbus_g_proxy_begin_call (priv->iface_proxy, "Disconnect",
+ disconnect_cb,
+ NULL, NULL,
+ G_TYPE_INVALID);
}
/* Remove any network that was added by NetworkManager */
@@ -700,11 +707,6 @@ nm_supplicant_interface_disconnect (NMSupplicantInterface * self)
g_free (priv->net_path);
priv->net_path = NULL;
}
-
- dbus_g_proxy_begin_call (priv->iface_proxy, "Disconnect",
- disconnect_cb,
- NULL, NULL,
- G_TYPE_INVALID);
}
static void
diff --git a/src/supplicant-manager/nm-supplicant-settings-verify.c b/src/supplicant-manager/nm-supplicant-settings-verify.c
index 0372fd93e..aea5bfece 100644
--- a/src/supplicant-manager/nm-supplicant-settings-verify.c
+++ b/src/supplicant-manager/nm-supplicant-settings-verify.c
@@ -102,6 +102,8 @@ static const struct Opt opt_table[] = {
{ "identity", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "password", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "ca_path", TYPE_BYTES, 0, 0, FALSE, NULL },
+ { "subject_match", TYPE_BYTES, 0, 0, FALSE, NULL },
+ { "altsubject_match", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "ca_cert", TYPE_BYTES, 0, 65536, FALSE, NULL },
{ "client_cert", TYPE_BYTES, 0, 65536, FALSE, NULL },
{ "private_key", TYPE_BYTES, 0, 65536, FALSE, NULL },
@@ -110,6 +112,8 @@ static const struct Opt opt_table[] = {
{ "phase2", TYPE_KEYWORD, 0, 0, TRUE, phase2_allowed },
{ "anonymous_identity", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "ca_path2", TYPE_BYTES, 0, 0, FALSE, NULL },
+ { "subject_match2", TYPE_BYTES, 0, 0, FALSE, NULL },
+ { "altsubject_match2", TYPE_BYTES, 0, 0, FALSE, NULL },
{ "ca_cert2", TYPE_BYTES, 0, 65536, FALSE, NULL },
{ "client_cert2", TYPE_BYTES, 0, 65536, FALSE, NULL },
{ "private_key2", TYPE_BYTES, 0, 65536, FALSE, NULL },
diff --git a/src/supplicant-manager/tests/test-supplicant-config.c b/src/supplicant-manager/tests/test-supplicant-config.c
index d0868b5ff..d92fb0d17 100644
--- a/src/supplicant-manager/tests/test-supplicant-config.c
+++ b/src/supplicant-manager/tests/test-supplicant-config.c
@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2008 - 2009 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*/
#include <stdio.h>
@@ -496,11 +496,9 @@ test_wifi_wpa_psk_types (void)
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
diff --git a/src/tests/test-dhcp-options.c b/src/tests/test-dhcp-options.c
index aa85f87e7..9463ed5be 100644
--- a/src/tests/test-dhcp-options.c
+++ b/src/tests/test-dhcp-options.c
@@ -15,7 +15,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2008 - 2010 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*
*/
@@ -779,13 +779,11 @@ test_ip4_prefix_classless (const char *client)
int main (int argc, char **argv)
{
GError *error = NULL;
- DBusGConnection *bus;
char *base;
const char *clients[2][2] = { {DHCLIENT_PATH, "dhclient"}, {DHCPCD_PATH, "dhcpcd"} };
guint32 i;
g_type_init ();
- bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
if (!nm_utils_init (&error))
FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c
index cf6135a68..067b2dce3 100644
--- a/src/vpn-manager/nm-vpn-connection.c
+++ b/src/vpn-manager/nm-vpn-connection.c
@@ -53,6 +53,17 @@
G_DEFINE_TYPE (NMVPNConnection, nm_vpn_connection, NM_TYPE_VPN_CONNECTION_BASE)
+typedef enum {
+ /* Only system secrets */
+ SECRETS_REQ_SYSTEM = 0,
+ /* All existing secrets including agent secrets */
+ SECRETS_REQ_EXISTING = 1,
+ /* New secrets required; ask an agent */
+ SECRETS_REQ_NEW = 2,
+ /* Placeholder for bounds checking */
+ SECRETS_REQ_LAST
+} SecretsReq;
+
typedef struct {
gboolean disposed;
@@ -61,6 +72,7 @@ typedef struct {
gboolean user_requested;
gulong user_uid;
guint32 secrets_id;
+ SecretsReq secrets_idx;
char *username;
NMDevice *parent_dev;
@@ -98,6 +110,8 @@ enum {
LAST_PROP
};
+static void get_secrets (NMVPNConnection *self, SecretsReq secrets_idx);
+
static void
nm_vpn_connection_set_vpn_state (NMVPNConnection *connection,
NMVPNConnectionState vpn_state,
@@ -792,84 +806,50 @@ nm_vpn_connection_disconnect (NMVPNConnection *connection,
/******************************************************************************/
static void
-vpn_secrets_cb (NMSettingsConnection *connection,
- guint32 call_id,
- const char *agent_username,
- const char *setting_name,
- GError *error,
- gpointer user_data)
-{
- NMVPNConnection *self = NM_VPN_CONNECTION (user_data);
- NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
-
- g_return_if_fail (NM_CONNECTION (connection) == priv->connection);
- g_return_if_fail (call_id == priv->secrets_id);
-
- priv->secrets_id = 0;
-
- if (error)
- nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS);
- else
- really_activate (self, agent_username);
-}
-
-static void
-connection_need_secrets_cb (DBusGProxy *proxy,
- char *setting_name,
- GError *error,
- gpointer user_data)
+plugin_need_secrets_cb (DBusGProxy *proxy,
+ char *setting_name,
+ GError *error,
+ gpointer user_data)
{
NMVPNConnection *self = NM_VPN_CONNECTION (user_data);
NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
- GError *local = NULL;
if (error) {
- nm_log_err (LOGD_VPN, "NeedSecrets failed: %s %s",
+ nm_log_err (LOGD_VPN, "(%s/%s) plugin NeedSecrets request #%d failed: %s %s",
+ nm_connection_get_uuid (priv->connection),
+ nm_connection_get_id (priv->connection),
+ priv->secrets_idx + 1,
g_quark_to_string (error->domain),
error->message);
nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS);
return;
}
- if (!setting_name || !strlen (setting_name)) {
- nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated no additional secrets required",
- nm_connection_get_uuid (priv->connection),
- nm_connection_get_id (priv->connection));
+ if (setting_name && strlen (setting_name)) {
+ /* More secrets required */
+ nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated additional secrets required",
+ nm_connection_get_uuid (priv->connection),
+ nm_connection_get_id (priv->connection));
- /* No secrets required */
- really_activate (self, priv->username);
+ get_secrets (self, priv->secrets_idx + 1);
return;
}
- nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated additional '%s' secrets required",
- nm_connection_get_uuid (priv->connection),
- nm_connection_get_id (priv->connection),
- setting_name);
+ nm_log_dbg (LOGD_VPN, "(%s/%s) service indicated no additional secrets required",
+ nm_connection_get_uuid (priv->connection),
+ nm_connection_get_id (priv->connection));
- priv->secrets_id = nm_settings_connection_get_secrets (NM_SETTINGS_CONNECTION (priv->connection),
- priv->user_requested,
- priv->user_uid,
- setting_name,
- NM_SETTINGS_GET_SECRETS_FLAG_ALLOW_INTERACTION,
- NULL,
- vpn_secrets_cb,
- self,
- &local);
- if (!priv->secrets_id) {
- if (local)
- nm_log_err (LOGD_VPN, "failed to get secrets: (%d) %s", local->code, local->message);
- nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS);
- g_clear_error (&local);
- }
+ /* No secrets required; we can start the VPN */
+ really_activate (self, priv->username);
}
static void
-existing_secrets_cb (NMSettingsConnection *connection,
- guint32 call_id,
- const char *agent_username,
- const char *setting_name,
- GError *error,
- gpointer user_data)
+get_secrets_cb (NMSettingsConnection *connection,
+ guint32 call_id,
+ const char *agent_username,
+ const char *setting_name,
+ GError *error,
+ gpointer user_data)
{
NMVPNConnection *self = NM_VPN_CONNECTION (user_data);
NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
@@ -881,57 +861,77 @@ existing_secrets_cb (NMSettingsConnection *connection,
priv->secrets_id = 0;
if (error) {
- nm_log_err (LOGD_VPN, "Failed to request existing VPN secrets #2: (%s) %s",
- g_quark_to_string (error->domain),
- error->message);
+ nm_log_err (LOGD_VPN, "Failed to request VPN secrets #%d: (%d) %s",
+ priv->secrets_idx + 1, error->code, error->message);
nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS);
} else {
nm_log_dbg (LOGD_VPN, "(%s/%s) asking service if additional secrets are required",
- nm_connection_get_uuid (priv->connection),
- nm_connection_get_id (priv->connection));
+ nm_connection_get_uuid (priv->connection),
+ nm_connection_get_id (priv->connection));
/* Cache the username for later */
- g_free (priv->username);
- priv->username = g_strdup (agent_username);
+ if (agent_username) {
+ g_free (priv->username);
+ priv->username = g_strdup (agent_username);
+ }
/* Ask the VPN service if more secrets are required */
hash = _hash_with_username (priv->connection, priv->username);
org_freedesktop_NetworkManager_VPN_Plugin_need_secrets_async (priv->proxy,
hash,
- connection_need_secrets_cb,
+ plugin_need_secrets_cb,
self);
g_hash_table_destroy (hash);
}
}
static void
-get_existing_secrets (NMVPNConnection *self)
+get_secrets (NMVPNConnection *self, SecretsReq secrets_idx)
{
NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
+ NMSettingsGetSecretsFlags flags = NM_SETTINGS_GET_SECRETS_FLAG_NONE;
GError *error = NULL;
+ gboolean filter_by_uid = priv->user_requested;
+
+ g_return_if_fail (secrets_idx < SECRETS_REQ_LAST);
+ priv->secrets_idx = secrets_idx;
- nm_log_dbg (LOGD_VPN, "(%s/%s) requesting existing VPN secrets",
+ nm_log_dbg (LOGD_VPN, "(%s/%s) requesting VPN secrets pass #%d",
nm_connection_get_uuid (priv->connection),
- nm_connection_get_id (priv->connection));
+ nm_connection_get_id (priv->connection),
+ priv->secrets_idx + 1);
+
+ switch (priv->secrets_idx) {
+ case SECRETS_REQ_SYSTEM:
+ flags = NM_SETTINGS_GET_SECRETS_FLAG_ONLY_SYSTEM;
+ filter_by_uid = FALSE;
+ break;
+ case SECRETS_REQ_EXISTING:
+ flags = NM_SETTINGS_GET_SECRETS_FLAG_NONE;
+ break;
+ case SECRETS_REQ_NEW:
+ flags = NM_SETTINGS_GET_SECRETS_FLAG_ALLOW_INTERACTION;
+ break;
+ default:
+ g_assert_not_reached ();
+ }
- /* Just get existing secrets if any so we can ask the VPN service if
- * any more are required.
- */
priv->secrets_id = nm_settings_connection_get_secrets (NM_SETTINGS_CONNECTION (priv->connection),
- priv->user_requested,
+ filter_by_uid,
priv->user_uid,
NM_SETTING_VPN_SETTING_NAME,
- NM_SETTINGS_GET_SECRETS_FLAG_NONE,
+ flags,
NULL,
- existing_secrets_cb,
+ get_secrets_cb,
self,
&error);
- if (priv->secrets_id == 0) {
- nm_log_err (LOGD_VPN, "Failed to request existing VPN secrets #1: (%s) %s",
- g_quark_to_string (error->domain),
- error->message);
- g_error_free (error);
+ if (!priv->secrets_id) {
+ if (error) {
+ nm_log_err (LOGD_VPN, "failed to request VPN secrets #%d: (%d) %s",
+ priv->secrets_idx + 1, error->code, error->message);
+ }
nm_vpn_connection_fail (self, NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS);
+ g_clear_error (&error);
}
}
@@ -1002,10 +1002,16 @@ connection_state_changed (NMVPNConnection *self,
nm_settings_connection_cancel_secrets (NM_SETTINGS_CONNECTION (priv->connection), priv->secrets_id);
priv->secrets_id = 0;
}
+ priv->secrets_idx = SECRETS_REQ_SYSTEM;
switch (state) {
case NM_VPN_CONNECTION_STATE_NEED_AUTH:
- get_existing_secrets (self);
+ /* Kick off the secrets requests; first we get existing system secrets
+ * and ask the plugin if these are sufficient, next we get all existing
+ * secrets from system and from user agents and ask the plugin again,
+ * and last we ask the user for new secrets if required.
+ */
+ get_secrets (self, SECRETS_REQ_SYSTEM);
break;
case NM_VPN_CONNECTION_STATE_ACTIVATED:
/* Secrets no longer needed now that we're connected */
diff --git a/test/nm-tool.c b/test/nm-tool.c
index ffe70af9f..9ce44f88a 100644
--- a/test/nm-tool.c
+++ b/test/nm-tool.c
@@ -39,9 +39,7 @@
#include <nm-device-wifi.h>
#include <nm-device-modem.h>
#include <nm-device-bt.h>
-#if WITH_WIMAX
#include <nm-device-wimax.h>
-#endif
#include <nm-utils.h>
#include <nm-setting-ip4-config.h>
#include <nm-setting-ip6-config.h>
@@ -198,7 +196,6 @@ detail_access_point (gpointer data, gpointer user_data)
g_free (tmp);
}
-#if WITH_WIMAX
static const char *
wimax_network_type_to_str (NMWimaxNspNetworkType type)
{
@@ -238,7 +235,6 @@ detail_nsp (gpointer data, gpointer user_data)
g_free (label);
g_free (data_str);
}
-#endif
static gchar *
ip4_address_as_string (guint32 ip)
@@ -370,10 +366,8 @@ detail_device (gpointer data, gpointer user_data)
print_string ("Type", "Mobile Broadband (unknown)");
} else if (NM_IS_DEVICE_BT (device))
print_string ("Type", "Bluetooth");
-#if WITH_WIMAX
else if (NM_IS_DEVICE_WIMAX (device))
print_string ("Type", "WiMAX");
-#endif
print_string ("Driver", nm_device_get_driver (device) ? nm_device_get_driver (device) : "(unknown)");
@@ -390,10 +384,8 @@ detail_device (gpointer data, gpointer user_data)
tmp = g_strdup (nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (device)));
else if (NM_IS_DEVICE_WIFI (device))
tmp = g_strdup (nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (device)));
-#if WITH_WIMAX
else if (NM_IS_DEVICE_WIMAX (device))
tmp = g_strdup (nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)));
-#endif
if (tmp) {
print_string ("HW Address", tmp);
@@ -459,7 +451,6 @@ detail_device (gpointer data, gpointer user_data)
print_string (" Carrier", "on");
else
print_string (" Carrier", "off");
-#if WITH_WIMAX
} else if (NM_IS_DEVICE_WIMAX (device)) {
NMDeviceWimax *wimax = NM_DEVICE_WIMAX (device);
NMWimaxNsp *active_nsp = NULL;
@@ -520,7 +511,6 @@ detail_device (gpointer data, gpointer user_data)
nsps = nm_device_wimax_get_nsps (NM_DEVICE_WIMAX (device));
if (nsps && nsps->len)
g_ptr_array_foreach ((GPtrArray *) nsps, detail_nsp, (gpointer) active_name);
-#endif
}
/* IP Setup info */