summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-03-18 20:17:47 +0100
committerMichael Biebl <biebl@debian.org>2011-03-18 20:17:47 +0100
commite22c6e05e9ebc6cce941762020c5710b8014677b (patch)
tree7e9fd7f8ae24a94b03f683e0cef9a346968e1e8b
parenta6b89d35fabd9f5934b84d7cde22e9268f92c3d3 (diff)
Imported Upstream version 0.8.3.998upstream/0.8.3.998
-rw-r--r--Makefile.in5
-rw-r--r--NEWS22
-rw-r--r--callouts/Makefile.in5
-rw-r--r--cli/Makefile.in5
-rw-r--r--cli/src/Makefile.in5
-rw-r--r--cli/src/connections.c114
-rw-r--r--cli/src/devices.c82
-rw-r--r--cli/src/network-manager.c53
-rw-r--r--cli/src/nmcli.c8
-rw-r--r--cli/src/nmcli.h7
-rw-r--r--cli/src/utils.c57
-rw-r--r--cli/src/utils.h3
-rw-r--r--config.h.in6
-rwxr-xr-xconfigure203
-rw-r--r--configure.ac72
-rw-r--r--data/Makefile.in5
-rw-r--r--docs/Makefile.in5
-rw-r--r--docs/libnm-glib/Makefile.am10
-rw-r--r--docs/libnm-glib/Makefile.in12
-rw-r--r--docs/libnm-glib/html/NMAccessPoint.html6
-rw-r--r--docs/libnm-glib/html/NMActiveConnection.html11
-rw-r--r--docs/libnm-glib/html/NMCdmaDevice.html6
-rw-r--r--docs/libnm-glib/html/NMClient.html4
-rw-r--r--docs/libnm-glib/html/NMDHCP4Config.html2
-rw-r--r--docs/libnm-glib/html/NMDHCP6Config.html24
-rw-r--r--docs/libnm-glib/html/NMDevice.html14
-rw-r--r--docs/libnm-glib/html/NMDeviceBt.html (renamed from docs/libnm-glib/html/libnm-glib-NMDeviceBt.html)109
-rw-r--r--docs/libnm-glib/html/NMDeviceEthernet.html2
-rw-r--r--docs/libnm-glib/html/NMDeviceWifi.html2
-rw-r--r--docs/libnm-glib/html/NMExportedConnection.html (renamed from docs/libnm-glib/html/libnm-glib-NMExportedConnection.html)49
-rw-r--r--docs/libnm-glib/html/NMGsmDevice.html2
-rw-r--r--docs/libnm-glib/html/NMIP4Config.html2
-rw-r--r--docs/libnm-glib/html/NMIP6Config.html6
-rw-r--r--docs/libnm-glib/html/NMObject.html12
-rw-r--r--docs/libnm-glib/html/NMRemoteConnection.html163
-rw-r--r--docs/libnm-glib/html/NMRemoteSettings.html189
-rw-r--r--docs/libnm-glib/html/NMSerialDevice.html4
-rw-r--r--docs/libnm-glib/html/NMVPNConnection.html265
-rw-r--r--docs/libnm-glib/html/ch01.html22
-rw-r--r--docs/libnm-glib/html/index.html20
-rw-r--r--docs/libnm-glib/html/index.sgml141
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMRemoteConnection.html123
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMRemoteSettings.html142
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMRemoteSettingsSystem.html8
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMSettings.html100
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMSettingsConnection.html119
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMSettingsService.html14
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMSettingsSystem.html10
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVPNConnection.html183
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html8
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html38
-rw-r--r--docs/libnm-glib/html/libnm-glib-nm-types.html8
-rw-r--r--docs/libnm-glib/html/libnm-glib.devhelp91
-rw-r--r--docs/libnm-glib/html/libnm-glib.devhelp291
-rw-r--r--docs/libnm-glib/libnm-glib-sections.txt868
-rw-r--r--docs/libnm-glib/libnm-glib.types21
-rw-r--r--docs/libnm-glib/tmpl/libnm-glib-unused.sgml666
-rw-r--r--docs/libnm-glib/tmpl/libnm_glib.sgml22
-rw-r--r--docs/libnm-glib/tmpl/nm-access-point.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-active-connection.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-cdma-device.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-client.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-dbus-connection.sgml19
-rw-r--r--docs/libnm-glib/tmpl/nm-dbus-settings-system.sgml19
-rw-r--r--docs/libnm-glib/tmpl/nm-dbus-settings.sgml19
-rw-r--r--docs/libnm-glib/tmpl/nm-device-bt-bindings.sgml26
-rw-r--r--docs/libnm-glib/tmpl/nm-device-bt.sgml18
-rw-r--r--docs/libnm-glib/tmpl/nm-device-ethernet.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-device-wifi.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-device.sgml7
-rw-r--r--docs/libnm-glib/tmpl/nm-dhcp4-config.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-dhcp6-config-bindings.sgml26
-rw-r--r--docs/libnm-glib/tmpl/nm-dhcp6-config.sgml7
-rw-r--r--docs/libnm-glib/tmpl/nm-exported-connection.sgml3
-rw-r--r--docs/libnm-glib/tmpl/nm-gsm-device.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-ip4-config.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-ip6-config-bindings.sgml26
-rw-r--r--docs/libnm-glib/tmpl/nm-ip6-config.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-object.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-remote-connection-private.sgml35
-rw-r--r--docs/libnm-glib/tmpl/nm-remote-connection.sgml13
-rw-r--r--docs/libnm-glib/tmpl/nm-remote-settings-system.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-remote-settings.sgml18
-rw-r--r--docs/libnm-glib/tmpl/nm-serial-device.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-settings-connection-interface.sgml17
-rw-r--r--docs/libnm-glib/tmpl/nm-settings-interface.sgml16
-rw-r--r--docs/libnm-glib/tmpl/nm-settings-service.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-settings-system-interface.sgml4
-rw-r--r--docs/libnm-glib/tmpl/nm-settings.sgml35
-rw-r--r--docs/libnm-glib/tmpl/nm-sysconfig-connection-bindings.sgml173
-rw-r--r--docs/libnm-glib/tmpl/nm-types.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-vpn-connection.sgml22
-rw-r--r--docs/libnm-glib/tmpl/nm-vpn-plugin-ui-interface.sgml4
-rw-r--r--docs/libnm-glib/tmpl/nm-vpn-plugin.sgml2
-rw-r--r--docs/libnm-glib/tmpl/nm-wimax-device-bindings.sgml69
-rw-r--r--docs/libnm-util/Makefile.am11
-rw-r--r--docs/libnm-util/Makefile.in12
-rw-r--r--docs/libnm-util/html/NMConnection.html59
-rw-r--r--docs/libnm-util/html/NMSetting.html96
-rw-r--r--docs/libnm-util/html/NMSetting8021x.html2
-rw-r--r--docs/libnm-util/html/NMSettingBluetooth.html2
-rw-r--r--docs/libnm-util/html/NMSettingCdma.html2
-rw-r--r--docs/libnm-util/html/NMSettingConnection.html2
-rw-r--r--docs/libnm-util/html/NMSettingGsm.html6
-rw-r--r--docs/libnm-util/html/NMSettingIP4Config.html4
-rw-r--r--docs/libnm-util/html/NMSettingIP6Config.html2
-rw-r--r--docs/libnm-util/html/NMSettingOlpcMesh.html2
-rw-r--r--docs/libnm-util/html/NMSettingPPP.html2
-rw-r--r--docs/libnm-util/html/NMSettingPPPOE.html2
-rw-r--r--docs/libnm-util/html/NMSettingSerial.html2
-rw-r--r--docs/libnm-util/html/NMSettingVPN.html2
-rw-r--r--docs/libnm-util/html/NMSettingWired.html2
-rw-r--r--docs/libnm-util/html/NMSettingWireless.html2
-rw-r--r--docs/libnm-util/html/NMSettingWirelessSecurity.html2
-rw-r--r--docs/libnm-util/html/annotation-glossary.html36
-rw-r--r--docs/libnm-util/html/api-index-full.html17
-rw-r--r--docs/libnm-util/html/ch01.html4
-rw-r--r--docs/libnm-util/html/index.html3
-rw-r--r--docs/libnm-util/html/index.sgml7
-rw-r--r--docs/libnm-util/html/libnm-util-nm-utils.html2
-rw-r--r--docs/libnm-util/html/libnm-util.devhelp4
-rw-r--r--docs/libnm-util/html/libnm-util.devhelp27
-rw-r--r--docs/libnm-util/html/object-tree.html2
-rw-r--r--docs/libnm-util/libnm-util-sections.txt985
-rw-r--r--docs/libnm-util/tmpl/libnm-util-unused.sgml564
-rw-r--r--docs/libnm-util/tmpl/nm-connection.sgml16
-rw-r--r--docs/libnm-util/tmpl/nm-setting-8021x.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-bluetooth.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-bridge.sgml160
-rw-r--r--docs/libnm-util/tmpl/nm-setting-cdma.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-connection.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-gsm.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-ip4-config.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-ip6-config.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-olpc-mesh.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-ppp.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-pppoe.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-serial.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-vpn.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-wimax.sgml136
-rw-r--r--docs/libnm-util/tmpl/nm-setting-wired.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-wireless-security.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting-wireless.sgml2
-rw-r--r--docs/libnm-util/tmpl/nm-setting.sgml24
-rw-r--r--docs/libnm-util/tmpl/nm-utils.sgml2
-rw-r--r--docs/settings-spec.html6
-rw-r--r--docs/spec.html81
-rw-r--r--examples/Makefile.in5
-rw-r--r--examples/python/Makefile.am1
-rw-r--r--examples/python/Makefile.in14
-rwxr-xr-xexamples/python/add-system-wifi-connection.py64
-rwxr-xr-xexamples/python/disconnect-device.py62
-rw-r--r--examples/python/list-connections.py112
-rw-r--r--examples/python/nm-state.py6
-rw-r--r--examples/python/show-bssids.py78
-rw-r--r--examples/python/vpn.py152
-rw-r--r--include/Makefile.am6
-rw-r--r--include/Makefile.in17
-rw-r--r--include/NetworkManager.h2
-rw-r--r--include/nm-version.h63
-rw-r--r--include/nm-version.h.in63
-rw-r--r--initscript/Arch/Makefile.in5
-rw-r--r--initscript/Arch/networkmanager1
-rw-r--r--initscript/Arch/networkmanager.in1
-rw-r--r--initscript/Debian/Makefile.in5
-rw-r--r--initscript/Gentoo/Makefile.in5
-rw-r--r--initscript/Makefile.in5
-rw-r--r--initscript/Mandriva/Makefile.in5
-rw-r--r--initscript/RedHat/Makefile.in5
-rw-r--r--initscript/SUSE/Makefile.in5
-rw-r--r--initscript/Slackware/Makefile.in5
-rw-r--r--initscript/Slackware/rc.networkmanager6
-rw-r--r--initscript/Slackware/rc.networkmanager.in6
-rw-r--r--initscript/linexa/Makefile.in5
-rw-r--r--initscript/paldo/Makefile.in5
-rw-r--r--introspection/Makefile.in5
-rw-r--r--introspection/all.xml1
-rw-r--r--introspection/nm-device.xml7
-rw-r--r--introspection/nm-vpn-connection.xml42
-rw-r--r--libnm-glib/Makefile.am4
-rw-r--r--libnm-glib/Makefile.in9
-rw-r--r--libnm-glib/libnm-glib-test.c5
-rw-r--r--libnm-glib/libnm-glib.ver5
-rw-r--r--libnm-glib/nm-client.c4
-rw-r--r--libnm-glib/nm-device.c14
-rw-r--r--libnm-glib/nm-exported-connection.c21
-rw-r--r--libnm-util/Makefile.am2
-rw-r--r--libnm-util/Makefile.in7
-rw-r--r--libnm-util/libnm-util.ver2
-rw-r--r--libnm-util/nm-connection.c98
-rw-r--r--libnm-util/nm-connection.h7
-rw-r--r--libnm-util/nm-setting-bluetooth.c4
-rw-r--r--libnm-util/nm-setting-cdma.c22
-rw-r--r--libnm-util/nm-setting-gsm.c22
-rw-r--r--libnm-util/nm-setting-ip4-config.c2
-rw-r--r--libnm-util/nm-setting-serial.c24
-rw-r--r--libnm-util/nm-setting.c202
-rw-r--r--libnm-util/nm-setting.h20
-rw-r--r--libnm-util/nm-utils.c38
-rw-r--r--libnm-util/tests/Makefile.am14
-rw-r--r--libnm-util/tests/Makefile.in61
-rw-r--r--libnm-util/tests/certs/Makefile.in5
-rw-r--r--libnm-util/tests/test-general.c241
-rw-r--r--libnm-util/tests/test-secrets.c (renamed from libnm-util/tests/test-need-secrets.c)108
-rw-r--r--m4/compiler_warnings.m42
-rw-r--r--man/Makefile.in5
-rw-r--r--man/NetworkManager.82
-rw-r--r--man/NetworkManager.8.in2
-rw-r--r--man/NetworkManager.conf.512
-rw-r--r--man/NetworkManager.conf.5.in12
-rw-r--r--marshallers/Makefile.in5
-rw-r--r--po/LINGUAS1
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/bg.po1694
-rw-r--r--po/ca.po2499
-rw-r--r--po/da.po2303
-rw-r--r--po/eo.po1766
-rw-r--r--po/fr.po156
-rw-r--r--po/sv.po412
-rw-r--r--policy/Makefile.in5
-rw-r--r--policy/org.freedesktop.NetworkManager.policy36
-rw-r--r--policy/org.freedesktop.network-manager-settings.system.policy24
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in7
-rw-r--r--src/NetworkManagerUtils.c32
-rw-r--r--src/backends/Makefile.am4
-rw-r--r--src/backends/Makefile.in25
-rw-r--r--src/backends/NetworkManagerExherbo.c64
-rw-r--r--src/backends/NetworkManagerGentoo.c34
-rw-r--r--src/bluez-manager/Makefile.in5
-rw-r--r--src/dhcp-manager/Makefile.am38
-rw-r--r--src/dhcp-manager/Makefile.in308
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c12
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient-utils.c217
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient-utils.h35
-rw-r--r--src/dhcp-manager/nm-dhcp-dhclient.c97
-rw-r--r--src/dhcp-manager/nm-dhcp-dhcpcd.c2
-rw-r--r--src/dhcp-manager/nm-dhcp-manager.c15
-rw-r--r--src/dhcp-manager/tests/Makefile.am28
-rw-r--r--src/dhcp-manager/tests/Makefile.in610
-rw-r--r--src/dhcp-manager/tests/test-dhcp-dhclient.c249
-rw-r--r--src/dns-manager/Makefile.am4
-rw-r--r--src/dns-manager/Makefile.in21
-rw-r--r--src/dns-manager/nm-dns-dnsmasq.c22
-rw-r--r--src/dns-manager/nm-dns-manager.c9
-rw-r--r--src/dns-manager/nm-dns-utils.c99
-rw-r--r--src/dns-manager/nm-dns-utils.h28
-rw-r--r--src/dnsmasq-manager/Makefile.in5
-rw-r--r--src/dnsmasq-manager/nm-dnsmasq-manager.c12
-rw-r--r--src/ip6-manager/Makefile.in5
-rw-r--r--src/ip6-manager/nm-ip6-manager.c415
-rw-r--r--src/ip6-manager/nm-ip6-manager.h2
-rw-r--r--src/logging/Makefile.in5
-rw-r--r--src/logging/nm-logging.c8
-rw-r--r--src/main.c6
-rw-r--r--src/modem-manager/Makefile.in5
-rw-r--r--src/modem-manager/nm-modem.c6
-rw-r--r--src/nm-activation-request.c73
-rw-r--r--src/nm-active-connection.c78
-rw-r--r--src/nm-active-connection.h12
-rw-r--r--src/nm-device-ethernet.c39
-rw-r--r--src/nm-device-wifi.c9
-rw-r--r--src/nm-device.c32
-rw-r--r--src/nm-manager.c100
-rw-r--r--src/nm-policy-hostname.c56
-rw-r--r--src/nm-policy-hostname.h5
-rw-r--r--src/nm-policy-hosts.c520
-rw-r--r--src/nm-policy-hosts.h20
-rw-r--r--src/nm-policy.c51
-rw-r--r--src/nm-system.c11
-rw-r--r--src/nm-system.h2
-rw-r--r--src/ppp-manager/Makefile.am4
-rw-r--r--src/ppp-manager/Makefile.in49
-rw-r--r--src/ppp-manager/nm-ppp-manager.c14
-rw-r--r--src/supplicant-manager/Makefile.in5
-rw-r--r--src/supplicant-manager/tests/Makefile.in5
-rw-r--r--src/system-settings/Makefile.in5
-rw-r--r--src/system-settings/nm-default-wired-connection.c2
-rw-r--r--src/system-settings/nm-sysconfig-settings.c62
-rw-r--r--src/system-settings/nm-sysconfig-settings.h2
-rw-r--r--src/system-settings/nm-system-config-interface.c3
-rw-r--r--src/system-settings/nm-system-config-interface.h15
-rw-r--r--src/tests/Makefile.in5
-rw-r--r--src/tests/test-policy-hosts.c761
-rw-r--r--src/vpn-manager/Makefile.am18
-rw-r--r--src/vpn-manager/Makefile.in31
-rw-r--r--src/vpn-manager/nm-vpn-connection-base.c199
-rw-r--r--src/vpn-manager/nm-vpn-connection-base.h54
-rw-r--r--src/vpn-manager/nm-vpn-connection.c185
-rw-r--r--src/vpn-manager/nm-vpn-connection.h5
-rw-r--r--system-settings/Makefile.in5
-rw-r--r--system-settings/plugins/Makefile.in5
-rw-r--r--system-settings/plugins/ifcfg-rh/Makefile.in5
-rw-r--r--system-settings/plugins/ifcfg-rh/plugin.c18
-rw-r--r--system-settings/plugins/ifcfg-rh/reader.c85
-rw-r--r--system-settings/plugins/ifcfg-rh/tests/Makefile.in5
-rw-r--r--system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in5
-rw-r--r--system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c10
-rw-r--r--system-settings/plugins/ifcfg-rh/writer.c21
-rw-r--r--system-settings/plugins/ifcfg-suse/Makefile.in5
-rw-r--r--system-settings/plugins/ifnet/Makefile.am10
-rw-r--r--system-settings/plugins/ifnet/Makefile.in11
-rw-r--r--system-settings/plugins/ifnet/net_utils.c60
-rw-r--r--system-settings/plugins/ifnet/plugin.c2
-rw-r--r--system-settings/plugins/ifnet/tests/Makefile.am3
-rw-r--r--system-settings/plugins/ifnet/tests/Makefile.in13
-rw-r--r--system-settings/plugins/ifnet/tests/test_all.c77
-rw-r--r--system-settings/plugins/ifupdown/Makefile.in5
-rw-r--r--system-settings/plugins/ifupdown/interface_parser.c6
-rw-r--r--system-settings/plugins/ifupdown/plugin.c51
-rw-r--r--system-settings/plugins/ifupdown/tests/Makefile.in5
-rw-r--r--system-settings/plugins/keyfile/Makefile.am4
-rw-r--r--system-settings/plugins/keyfile/Makefile.in20
-rw-r--r--system-settings/plugins/keyfile/common.h3
-rw-r--r--system-settings/plugins/keyfile/plugin.c40
-rw-r--r--system-settings/plugins/keyfile/reader.c257
-rw-r--r--system-settings/plugins/keyfile/tests/Makefile.in5
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/Makefile.am14
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/Makefile.in18
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_New22
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Old22
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem27
-rw-r--r--system-settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem118
-rw-r--r--system-settings/plugins/keyfile/tests/test-keyfile.c401
-rw-r--r--system-settings/plugins/keyfile/utils.c97
-rw-r--r--system-settings/plugins/keyfile/utils.h30
-rw-r--r--system-settings/plugins/keyfile/writer.c308
-rw-r--r--test/Makefile.am4
-rw-r--r--test/Makefile.in9
-rw-r--r--tools/Makefile.in5
330 files changed, 14769 insertions, 9706 deletions
diff --git a/Makefile.in b/Makefile.in
index 41eff2d97..6820d9a22 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -229,6 +229,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -243,6 +247,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/NEWS b/NEWS
index 9eb102bf6..951482e44 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,26 @@
==============================================
+NetworkManager-0.8.4
+Overview of changes since NetworkManager-0.8.2
+==============================================
+
+This is a new stable release of NetworkManager. Notable changes include:
+
+* Preliminary support for Exherbo Linux
+* Logging fixes to suppress unnecessary messages
+* Ensure removed devices are cleaned up
+* Fix potential 64-bit crash updating timestamps
+* IPv6 setup, routing, and compliance fixes
+* Handle reverse DNS lookups with local caching nameserver configurations
+* No longer updates /etc/hosts when hostname changes
+* Request WPAD option from DHCP servers
+* Shutdown crash fixes
+* nmcli support for WWAN connections
+* Persistent hostname sent to DHCP servers by default
+* Allow disabing PPP support at build time
+* Memory leak fixes
+* and much more...
+
+==============================================
NetworkManager-0.8.2
Overview of changes since NetworkManager-0.8.1
==============================================
diff --git a/callouts/Makefile.in b/callouts/Makefile.in
index bd594a463..5b8c11519 100644
--- a/callouts/Makefile.in
+++ b/callouts/Makefile.in
@@ -227,6 +227,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -241,6 +245,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/cli/Makefile.in b/cli/Makefile.in
index 5fdb04bb3..b2356ac16 100644
--- a/cli/Makefile.in
+++ b/cli/Makefile.in
@@ -189,6 +189,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -203,6 +207,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/cli/src/Makefile.in b/cli/src/Makefile.in
index 47421660b..bdf4128ec 100644
--- a/cli/src/Makefile.in
+++ b/cli/src/Makefile.in
@@ -187,6 +187,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -201,6 +205,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/cli/src/connections.c b/cli/src/connections.c
index e0b94ceb8..88a5df49c 100644
--- a/cli/src/connections.c
+++ b/cli/src/connections.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#include <glib.h>
@@ -634,12 +634,6 @@ do_connections_status (NmCli *nmc, int argc, char **argv)
nmc->should_wait = FALSE;
- /* create NMClient */
- if (!nmc->get_client (nmc))
- return nmc->return_value;
-
- active_cons = nm_client_get_active_connections (nmc->client);
-
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0)
@@ -660,10 +654,25 @@ do_connections_status (NmCli *nmc, int argc, char **argv)
goto error;
}
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
+ goto error;
+ }
+
+ /* Print headers */
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("Active connections");
print_fields (nmc->print_fields, nmc->allowed_fields);
+ nmc->get_client (nmc);
+ active_cons = nm_client_get_active_connections (nmc->client);
if (active_cons && active_cons->len) {
info = g_malloc0 (sizeof (StatusInfo));
info->nmc = nmc;
@@ -675,7 +684,6 @@ do_connections_status (NmCli *nmc, int argc, char **argv)
}
error:
-
return nmc->return_value;
}
@@ -886,6 +894,60 @@ check_olpc_mesh_compatible (NMDeviceOlpcMesh *device, NMConnection *connection,
#endif
static gboolean
+check_gsm_compatible (NMGsmDevice *device, NMConnection *connection, GError **error)
+{
+ NMSettingConnection *s_con;
+ NMSettingGsm *s_gsm;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+
+ if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_GSM_SETTING_NAME)) {
+ g_set_error (error, 0, 0,
+ "The connection was not a GSM connection.");
+ return FALSE;
+ }
+
+ s_gsm = NM_SETTING_GSM (nm_connection_get_setting (connection, NM_TYPE_SETTING_GSM));
+ if (!s_gsm) {
+ g_set_error (error, 0, 0,
+ "The connection was not a valid GSM connection.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
+check_cdma_compatible (NMCdmaDevice *device, NMConnection *connection, GError **error)
+{
+ NMSettingConnection *s_con;
+ NMSettingCdma *s_cdma;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+
+ if (strcmp (nm_setting_connection_get_connection_type (s_con), NM_SETTING_CDMA_SETTING_NAME)) {
+ g_set_error (error, 0, 0,
+ "The connection was not a CDMA connection.");
+ return FALSE;
+ }
+
+ s_cdma = NM_SETTING_CDMA (nm_connection_get_setting (connection, NM_TYPE_SETTING_CDMA));
+ if (!s_cdma) {
+ g_set_error (error, 0, 0,
+ "The connection was not a valid CDMA connection.");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
nm_device_is_connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
{
g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
@@ -899,6 +961,10 @@ nm_device_is_connection_compatible (NMDevice *device, NMConnection *connection,
return check_bt_compatible (NM_DEVICE_BT (device), connection, error);
// else if (NM_IS_DEVICE_OLPC_MESH (device))
// return check_olpc_mesh_compatible (NM_DEVICE_OLPC_MESH (device), connection, error);
+ else if (NM_IS_GSM_DEVICE (device))
+ return check_gsm_compatible (NM_GSM_DEVICE (device), connection, error);
+ else if (NM_IS_CDMA_DEVICE (device))
+ return check_cdma_compatible (NM_CDMA_DEVICE (device), connection, error);
g_set_error (error, 0, 0, "unhandled device type '%s'", G_OBJECT_TYPE_NAME (device));
return FALSE;
@@ -1401,9 +1467,20 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
goto error;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
goto error;
+ }
+
+ /* create NMClient */
+ nmc->get_client (nmc);
is_system = (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_SYSTEM) ? TRUE : FALSE;
con_path = nm_connection_get_path (connection);
@@ -1420,6 +1497,7 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
else
g_string_printf (nmc->return_text, _("Error: No suitable device found."));
nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION;
+ g_clear_error (&error);
goto error;
}
@@ -1446,6 +1524,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
{
NMConnection *connection = NULL;
NMActiveConnection *active = NULL;
+ GError *error = NULL;
const GPtrArray *active_cons;
const char *con_path;
const char *active_path;
@@ -1491,9 +1570,20 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
goto error;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
goto error;
+ }
+
+ /* create NMClient */
+ nmc->get_client (nmc);
con_path = nm_connection_get_path (connection);
con_scope = nm_connection_get_scope (connection);
diff --git a/cli/src/devices.c b/cli/src/devices.c
index 436b4b6eb..d314928a8 100644
--- a/cli/src/devices.c
+++ b/cli/src/devices.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#include <stdio.h>
@@ -28,8 +28,6 @@
#include <glib.h>
#include <glib/gi18n.h>
-#include <nm-client.h>
-#include <nm-device-wifi.h>
#include <nm-client.h>
#include <nm-device.h>
@@ -184,9 +182,10 @@ static NmcOutputField nmc_fields_dev_wifi_list[] = {
{"RSN-FLAGS", N_("RSN-FLAGS"), 25, NULL, 0}, /* 9 */
{"DEVICE", N_("DEVICE"), 10, NULL, 0}, /* 10 */
{"ACTIVE", N_("ACTIVE"), 8, NULL, 0}, /* 11 */
+ {"DBUS-PATH", N_("DBUS-PATH"), 46, NULL, 0}, /* 12 */
{NULL, NULL, 0, NULL, 0}
};
-#define NMC_FIELDS_DEV_WIFI_LIST_ALL "SSID,BSSID,MODE,FREQ,RATE,SIGNAL,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE"
+#define NMC_FIELDS_DEV_WIFI_LIST_ALL "SSID,BSSID,MODE,FREQ,RATE,SIGNAL,SECURITY,WPA-FLAGS,RSN-FLAGS,DEVICE,ACTIVE,DBUS-PATH"
#define NMC_FIELDS_DEV_WIFI_LIST_COMMON "SSID,BSSID,MODE,FREQ,RATE,SIGNAL,SECURITY,ACTIVE"
#define NMC_FIELDS_DEV_WIFI_LIST_FOR_DEV_LIST "NAME,"NMC_FIELDS_DEV_WIFI_LIST_COMMON
@@ -431,6 +430,7 @@ detail_access_point (gpointer data, gpointer user_data)
info->nmc->allowed_fields[9].value = rsn_flags_str;
info->nmc->allowed_fields[10].value = info->device;
info->nmc->allowed_fields[11].value = active ? _("yes") : _("no");
+ info->nmc->allowed_fields[12].value = nm_object_get_path (NM_OBJECT (ap));
info->nmc->print_fields.flags &= ~NMC_PF_FLAG_MAIN_HEADER_ADD & ~NMC_PF_FLAG_MAIN_HEADER_ONLY & ~NMC_PF_FLAG_FIELD_NAMES; /* Clear header flags */
print_fields (info->nmc->print_fields, info->nmc->allowed_fields);
@@ -789,12 +789,6 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
argv++;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
- goto error;
-
- devices = nm_client_get_devices (nmc->client);
-
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0)
@@ -815,10 +809,25 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
goto error;
}
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
+ goto error;
+ }
+
+ /* Print headers */
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("Status of devices");
print_fields (nmc->print_fields, nmc->allowed_fields);
+ nmc->get_client (nmc);
+ devices = nm_client_get_devices (nmc->client);
for (i = 0; devices && (i < devices->len); i++) {
NMDevice *device = g_ptr_array_index (devices, i);
show_device_status (device, nmc);
@@ -834,6 +843,7 @@ static NMCResultCode
do_devices_list (NmCli *nmc, int argc, char **argv)
{
const GPtrArray *devices;
+ GError *error = NULL;
NMDevice *device = NULL;
const char *iface = NULL;
gboolean iface_specified = FALSE;
@@ -858,10 +868,19 @@ do_devices_list (NmCli *nmc, int argc, char **argv)
argv++;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
goto error;
+ }
+ nmc->get_client (nmc);
devices = nm_client_get_devices (nmc->client);
if (iface_specified) {
@@ -947,6 +966,7 @@ static NMCResultCode
do_device_disconnect (NmCli *nmc, int argc, char **argv)
{
const GPtrArray *devices;
+ GError *error = NULL;
NMDevice *device = NULL;
const char *iface = NULL;
gboolean iface_specified = FALSE;
@@ -998,10 +1018,19 @@ do_device_disconnect (NmCli *nmc, int argc, char **argv)
goto error;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
goto error;
+ }
+ nmc->get_client (nmc);
devices = nm_client_get_devices (nmc->client);
for (i = 0; devices && (i < devices->len); i++) {
NMDevice *candidate = g_ptr_array_index (devices, i);
@@ -1093,11 +1122,6 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
argv++;
}
- /* create NMClient */
- if (!nmc->get_client (nmc))
- goto error;
-
- devices = nm_client_get_devices (nmc->client);
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
@@ -1119,9 +1143,24 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
goto error;
}
+ if (!nmc_is_nm_running (nmc, &error)) {
+ if (error) {
+ g_string_printf (nmc->return_text, _("Error: Can't find out if NetworkManager is running: %s."), error->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_error_free (error);
+ } else {
+ g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
+ nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
+ }
+ goto error;
+ }
+
+ /* Print headers */
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("WiFi scan list");
+ nmc->get_client (nmc);
+ devices = nm_client_get_devices (nmc->client);
if (iface) {
/* Device specified - list only APs of this interface */
for (i = 0; devices && (i < devices->len); i++) {
@@ -1250,10 +1289,6 @@ do_devices (NmCli *nmc, int argc, char **argv)
{
GError *error = NULL;
- /* create NMClient */
- if (!nmc->get_client (nmc))
- goto end;
-
if (argc == 0) {
if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
goto opt_error;
@@ -1288,7 +1323,6 @@ do_devices (NmCli *nmc, int argc, char **argv)
}
}
-end:
return nmc->return_value;
opt_error:
diff --git a/cli/src/network-manager.c b/cli/src/network-manager.c
index 23a2ef11e..e695c0e42 100644
--- a/cli/src/network-manager.c
+++ b/cli/src/network-manager.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#include <stdio.h>
@@ -99,8 +99,8 @@ static NMCResultCode
show_nm_status (NmCli *nmc)
{
gboolean nm_running;
- gboolean net_enabled;
- NMState state;
+ NMState state = NM_STATE_UNKNOWN;
+ const char *net_enabled_str;
const char *wireless_hw_enabled_str, *wireless_enabled_str;
const char *wwan_hw_enabled_str, *wwan_enabled_str;
GError *error = NULL;
@@ -111,8 +111,6 @@ show_nm_status (NmCli *nmc)
guint32 multiline_flag = nmc->multiline_output ? NMC_PF_FLAG_MULTILINE : 0;
guint32 escape_flag = nmc->escape_values ? NMC_PF_FLAG_ESCAPE : 0;
- g_return_val_if_fail (nmc->client != NULL, NMC_RESULT_ERROR_UNKNOWN);
-
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
fields_str = fields_common;
else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0)
@@ -137,21 +135,22 @@ show_nm_status (NmCli *nmc)
nmc->print_fields.header_name = _("NetworkManager status");
print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
- nm_running = nm_client_get_manager_running (nmc->client);
- state = nm_client_get_state (nmc->client);
- net_enabled = nm_client_networking_get_enabled (nmc->client);
+ nm_running = nmc_is_nm_running (nmc, NULL);
if (nm_running) {
+ nmc->get_client (nmc); /* create NMClient */
+ state = nm_client_get_state (nmc->client);
+ net_enabled_str = nm_client_networking_get_enabled (nmc->client) ? _("enabled") : _("disabled");
wireless_hw_enabled_str = nm_client_wireless_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
wireless_enabled_str = nm_client_wireless_get_enabled (nmc->client) ? _("enabled") : _("disabled");
wwan_hw_enabled_str = nm_client_wwan_hardware_get_enabled (nmc->client) ? _("enabled") : _("disabled");
wwan_enabled_str = nm_client_wwan_get_enabled (nmc->client) ? _("enabled") : _("disabled");
} else {
- wireless_hw_enabled_str = wireless_enabled_str = wwan_hw_enabled_str = wwan_enabled_str = _("unknown");
+ net_enabled_str = wireless_hw_enabled_str = wireless_enabled_str = wwan_hw_enabled_str = wwan_enabled_str = _("unknown");
}
nmc->allowed_fields[0].value = nm_running ? _("running") : _("not running");
nmc->allowed_fields[1].value = nm_state_to_string (state);
- nmc->allowed_fields[2].value = net_enabled ? _("enabled") : _("disabled");
+ nmc->allowed_fields[2].value = net_enabled_str;
nmc->allowed_fields[3].value = wireless_hw_enabled_str;
nmc->allowed_fields[4].value = wireless_enabled_str;
nmc->allowed_fields[5].value = wwan_hw_enabled_str;
@@ -212,10 +211,6 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
guint32 multiline_flag = nmc->multiline_output ? NMC_PF_FLAG_MULTILINE : 0;
guint32 escape_flag = nmc->escape_values ? NMC_PF_FLAG_ESCAPE : 0;
- /* create NMClient */
- if (!nmc->get_client (nmc))
- goto end;
-
if (argc == 0) {
if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
goto opt_error;
@@ -244,9 +239,14 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("Networking enabled");
print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
- nmc->allowed_fields[2].value = nm_client_networking_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+
+ if (nmc_is_nm_running (nmc, NULL)) {
+ nmc->get_client (nmc); /* create NMClient */
+ nmc->allowed_fields[2].value = nm_client_networking_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ } else
+ nmc->allowed_fields[2].value = _("unknown");
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag;
- print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
+ print_fields (nmc->print_fields, nmc->allowed_fields); /* Print values */
} else {
if (!strcmp (*argv, "true"))
enable_net = TRUE;
@@ -257,6 +257,7 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto end;
}
+ nmc->get_client (nmc); /* create NMClient */
nm_client_networking_set_enabled (nmc->client, enable_net);
}
}
@@ -293,9 +294,14 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("WiFi enabled");
print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
- nmc->allowed_fields[4].value = nm_client_wireless_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+
+ if (nmc_is_nm_running (nmc, NULL)) {
+ nmc->get_client (nmc); /* create NMClient */
+ nmc->allowed_fields[4].value = nm_client_wireless_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ } else
+ nmc->allowed_fields[4].value = _("unknown");
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag;
- print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
+ print_fields (nmc->print_fields, nmc->allowed_fields); /* Print values */
} else {
if (!strcmp (*argv, "on"))
enable_wifi = TRUE;
@@ -306,6 +312,7 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto end;
}
+ nmc->get_client (nmc); /* create NMClient */
nm_client_wireless_set_enabled (nmc->client, enable_wifi);
}
}
@@ -325,9 +332,14 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag | NMC_PF_FLAG_MAIN_HEADER_ADD | NMC_PF_FLAG_FIELD_NAMES;
nmc->print_fields.header_name = _("WWAN enabled");
print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
- nmc->allowed_fields[6].value = nm_client_wwan_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+
+ if (nmc_is_nm_running (nmc, NULL)) {
+ nmc->get_client (nmc); /* create NMClient */
+ nmc->allowed_fields[6].value = nm_client_wwan_get_enabled (nmc->client) ? _("enabled") : _("disabled");
+ } else
+ nmc->allowed_fields[6].value = _("unknown");
nmc->print_fields.flags = multiline_flag | mode_flag | escape_flag;
- print_fields (nmc->print_fields, nmc->allowed_fields); /* Print header */
+ print_fields (nmc->print_fields, nmc->allowed_fields); /* Print values */
} else {
if (!strcmp (*argv, "on"))
enable_wwan = TRUE;
@@ -338,6 +350,7 @@ do_network_manager (NmCli *nmc, int argc, char **argv)
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto end;
}
+ nmc->get_client (nmc); /* create NMClient */
nm_client_wwan_set_enabled (nmc->client, enable_wwan);
}
}
diff --git a/cli/src/nmcli.c b/cli/src/nmcli.c
index d416952c6..4a5480244 100644
--- a/cli/src/nmcli.c
+++ b/cli/src/nmcli.c
@@ -16,7 +16,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
/* Generated configuration file */
@@ -30,8 +30,6 @@
#include <glib.h>
#include <glib/gi18n.h>
-#include <dbus/dbus.h>
-#include <dbus/dbus-glib.h>
#include <nm-client.h>
#include <nm-setting-connection.h>
#include <nm-remote-settings.h>
@@ -256,8 +254,8 @@ nmc_get_client (NmCli *nmc)
if (!nmc->client) {
nmc->client = nm_client_new ();
if (!nmc->client) {
- g_string_printf (nmc->return_text, _("Error: Could not connect to NetworkManager."));
- nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_critical (_("Error: Could not create NMClient object."));
+ exit (NMC_RESULT_ERROR_UNKNOWN);
}
}
diff --git a/cli/src/nmcli.h b/cli/src/nmcli.h
index 9788ef086..a208e79e7 100644
--- a/cli/src/nmcli.h
+++ b/cli/src/nmcli.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#ifndef NMC_NMCLI_H
@@ -47,7 +47,10 @@ typedef enum {
NMC_RESULT_ERROR_CON_DEACTIVATION = 5,
/* Error in device disconnect */
- NMC_RESULT_ERROR_DEV_DISCONNECT = 6
+ NMC_RESULT_ERROR_DEV_DISCONNECT = 6,
+
+ /* NetworkManager is not running */
+ NMC_RESULT_ERROR_NM_NOT_RUNNING = 7
} NMCResultCode;
typedef enum {
diff --git a/cli/src/utils.c b/cli/src/utils.c
index 0096a0aed..bcc51bbd8 100644
--- a/cli/src/utils.c
+++ b/cli/src/utils.c
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#include <stdio.h>
@@ -22,6 +22,7 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include <dbus/dbus-glib-bindings.h>
#include "utils.h"
@@ -296,3 +297,57 @@ print_fields (const NmcPrintFields fields, const NmcOutputField field_values[])
g_string_free (str, TRUE);
}
+/*
+ * Find out whether NetworkManager is running (via D-Bus NameHasOwner), assuring
+ * NetworkManager won't be autostart (by D-Bus) if not running.
+ * We can't use NMClient (nm_client_get_manager_running()) because NMClient
+ * constructor calls GetPermissions of NM_DBUS_SERVICE, which would autostart
+ * NetworkManger if it is configured as D-Bus launchable service.
+ */
+gboolean
+nmc_is_nm_running (NmCli *nmc, GError **error)
+{
+ DBusGConnection *connection = NULL;
+ DBusGProxy *proxy = NULL;
+ GError *err = NULL;
+ gboolean has_owner = FALSE;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &err);
+ if (!connection) {
+ g_string_printf (nmc->return_text, _("Error: Couldn't connect to system bus: %s"), err->message);
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_propagate_error (error, err);
+ goto done;
+ }
+
+ proxy = dbus_g_proxy_new_for_name (connection,
+ "org.freedesktop.DBus",
+ "/org/freedesktop/DBus",
+ "org.freedesktop.DBus");
+ if (!proxy) {
+ g_string_printf (nmc->return_text, _("Error: Couldn't create D-Bus object proxy for org.freedesktop.DBus"));
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ if (error)
+ g_set_error (error, 0, 0, "%s", nmc->return_text->str);
+ goto done;
+ }
+
+ if (!org_freedesktop_DBus_name_has_owner (proxy, NM_DBUS_SERVICE, &has_owner, &err)) {
+ g_string_printf (nmc->return_text, _("Error: NameHasOwner request failed: %s"),
+ (err && err->message) ? err->message : _("(unknown)"));
+ nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
+ g_propagate_error (error, err);
+ goto done;
+ }
+
+done:
+ if (connection)
+ dbus_g_connection_unref (connection);
+ if (proxy)
+ g_object_unref (proxy);
+
+ return has_owner;
+}
+
diff --git a/cli/src/utils.h b/cli/src/utils.h
index 308f6401b..da058f279 100644
--- a/cli/src/utils.h
+++ b/cli/src/utils.h
@@ -14,7 +14,7 @@
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2010 Red Hat, Inc.
+ * (C) Copyright 2010 - 2011 Red Hat, Inc.
*/
#ifndef NMC_UTILS_H
@@ -32,5 +32,6 @@ int nmc_string_screen_width (const char *start, const char *end);
GArray *parse_output_fields (const char *fields_str, const NmcOutputField fields_array[], GError **error);
gboolean nmc_terse_option_check (NMCPrintOutput print_output, const char *fields, GError **error);
void print_fields (const NmcPrintFields fields, const NmcOutputField field_values[]);
+gboolean nmc_is_nm_running (NmCli *nmc, GError **error);
#endif /* NMC_UTILS_H */
diff --git a/config.h.in b/config.h.in
index 206f64a60..a8f786461 100644
--- a/config.h.in
+++ b/config.h.in
@@ -149,6 +149,9 @@
/* Define if you have Debian */
#undef TARGET_DEBIAN
+/* Define if you have Exherbo */
+#undef TARGET_EXHERBO
+
/* Define if you have Frugalware */
#undef TARGET_FRUGALWARE
@@ -204,6 +207,9 @@
/* Version number of package */
#undef VERSION
+/* Define if you have PPP support */
+#undef WITH_PPP
+
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
diff --git a/configure b/configure
index b9b10217c..b62f55e41 100755
--- a/configure
+++ b/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for NetworkManager 0.8.2.
+# Generated by GNU Autoconf 2.66 for NetworkManager 0.8.3.998.
#
-# Report bugs to <dcbw@redhat.com>.
+# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -238,7 +238,8 @@ fi
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and dcbw@redhat.com
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager
$0: about your system, including any error possibly output
$0: before this message. Then install a modern shell, or
$0: manually run the script under such a shell if you do
@@ -562,9 +563,9 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='NetworkManager'
PACKAGE_TARNAME='NetworkManager'
-PACKAGE_VERSION='0.8.2'
-PACKAGE_STRING='NetworkManager 0.8.2'
-PACKAGE_BUGREPORT='dcbw@redhat.com'
+PACKAGE_VERSION='0.8.3.998'
+PACKAGE_STRING='NetworkManager 0.8.3.998'
+PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager'
PACKAGE_URL=''
# Factoring default headers for most tests.
@@ -630,6 +631,8 @@ DHCPCD_PATH
DHCLIENT_VERSION
DHCLIENT_PATH
PPPD_PLUGIN_DIR
+WITH_PPP_FALSE
+WITH_PPP_TRUE
DBUS_SYS_DIR
GLIB_GENMARSHAL
WITH_GNUTLS_FALSE
@@ -641,6 +644,7 @@ LIBGCRYPT_CFLAGS
LIBGCRYPT_CONFIG
GNUTLS_LIBS
GNUTLS_CFLAGS
+PKGCONFIG_PATH
NSS_LIBS
NSS_CFLAGS
POLKIT_LIBS
@@ -668,6 +672,8 @@ PKG_CONFIG_PATH
PKG_CONFIG
LIBDL
LIBM
+TARGET_EXHERBO_FALSE
+TARGET_EXHERBO_TRUE
TARGET_LINEXA_FALSE
TARGET_LINEXA_TRUE
TARGET_PARDUS_FALSE
@@ -735,6 +741,10 @@ INTLTOOL_UPDATE
USE_NLS
GETTEXT_PACKAGE
LIBOBJS
+NM_VERSION
+NM_MICRO_VERSION
+NM_MINOR_VERSION
+NM_MAJOR_VERSION
DISABLE_DEPRECATED
ACLOCAL_AMFLAGS
OTOOL64
@@ -866,6 +876,7 @@ with_udev_dir
with_systemdsystemunitdir
with_crypto
with_dbus_sys_dir
+enable_ppp
with_pppd_plugin_dir
with_dhclient
with_dhcpcd
@@ -889,11 +900,6 @@ LDFLAGS
LIBS
CPPFLAGS
CPP
-CPPFLAGS
-CC
-LDFLAGS
-LIBS
-CPPFLAGS
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
@@ -1458,7 +1464,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.2 to adapt to many kinds of systems.
+\`configure' configures NetworkManager 0.8.3.998 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1528,7 +1534,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of NetworkManager 0.8.2:";;
+ short | recursive ) echo "Configuration of NetworkManager 0.8.3.998:";;
esac
cat <<\_ACEOF
@@ -1548,6 +1554,7 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-nls do not use Native Language Support
+ --enable-ppp enable PPP/PPPoE support
--enable-more-warnings Maximum compiler warnings
--enable-gtk-doc use gtk-doc to build documentation [[default=no]]
--enable-gtk-doc-html build documentation in html format [[default=yes]]
@@ -1562,7 +1569,7 @@ Optional Packages:
--with-docs Build NetworkManager documentation
--with-distro=DISTRO Specify the Linux distribution to target: One of
redhat, suse, gentoo, debian, arch, slackware,
- paldo, mandriva, pardus or linexa
+ paldo, mandriva, pardus, linexa or exherbo
--with-dist-version=<NM-distribution-version>
Define the NM's distribution version string
--with-udev-dir=DIR where the udev base directory is
@@ -1634,7 +1641,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <dcbw@redhat.com>.
+Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>.
_ACEOF
ac_status=$?
fi
@@ -1697,7 +1704,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-NetworkManager configure 0.8.2
+NetworkManager configure 0.8.3.998
generated by GNU Autoconf 2.66
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1856,9 +1863,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ------------------------------ ##
-## Report this to dcbw@redhat.com ##
-## ------------------------------ ##"
+( $as_echo "## ----------------------------------------------------------------------------- ##
+## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager ##
+## ----------------------------------------------------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
@@ -2120,7 +2127,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.2, which was
+It was created by NetworkManager $as_me 0.8.3.998, which was
generated by GNU Autoconf 2.66. Invocation command line was
$ $0 $@
@@ -2935,7 +2942,7 @@ fi
# Define the identity of the package.
PACKAGE='NetworkManager'
- VERSION='0.8.2'
+ VERSION='0.8.3.998'
cat >>confdefs.h <<_ACEOF
@@ -11828,12 +11835,21 @@ fi
if test $USE_MAINTAINER_MODE = yes; then
- DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED"
+ DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED"
else
DISABLE_DEPRECATED=""
fi
+NM_MAJOR_VERSION=0
+NM_MINOR_VERSION=8
+NM_MICRO_VERSION=3
+NM_VERSION=0.8.3.998
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if test "${ac_cv_header_stdc+set}" = set; then :
@@ -13869,6 +13885,25 @@ if test "x$ac_cv_file__etc_linexa_release" = x""yes; then :
with_distro="linexa"
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/exherbo-release" >&5
+$as_echo_n "checking for /etc/exherbo-release... " >&6; }
+if test "${ac_cv_file__etc_exherbo_release+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ test "$cross_compiling" = yes &&
+ as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
+if test -r "/etc/exherbo-release"; then
+ ac_cv_file__etc_exherbo_release=yes
+else
+ ac_cv_file__etc_exherbo_release=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_exherbo_release" >&5
+$as_echo "$ac_cv_file__etc_exherbo_release" >&6; }
+if test "x$ac_cv_file__etc_exherbo_release" = x""yes; then :
+ with_distro="exherbo"
+fi
+
if test "z$with_distro" = "z"; then
with_distro=`lsb_release -is`
fi
@@ -13880,7 +13915,7 @@ if test "z$with_distro" = "z"; then
exit 1
else
case $with_distro in
- redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa) ;;
+ redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa|exherbo) ;;
*)
echo "Your distribution (${with_distro}) is not yet supported! (patches welcome)"
exit 1
@@ -14042,6 +14077,20 @@ $as_echo "#define TARGET_LINEXA 1" >>confdefs.h
fi
+ if test x"$with_distro" = xexherbo; then
+ TARGET_EXHERBO_TRUE=
+ TARGET_EXHERBO_FALSE='#'
+else
+ TARGET_EXHERBO_TRUE='#'
+ TARGET_EXHERBO_FALSE=
+fi
+
+if test x"$with_distro" = xexherbo; then
+
+$as_echo "#define TARGET_EXHERBO 1" >>confdefs.h
+
+fi
+
# Check whether --with-dist-version was given.
if test "${with_dist_version+set}" = set; then :
@@ -15463,6 +15512,60 @@ $as_echo "yes" >&6; }
fi
+ # Work around a pkg-config bug (fdo #29801) where exists != usable
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PKGCONFIG_PATH+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PKGCONFIG_PATH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKGCONFIG_PATH="$PKGCONFIG_PATH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKGCONFIG_PATH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_PKGCONFIG_PATH" && ac_cv_path_PKGCONFIG_PATH="no"
+ ;;
+esac
+fi
+PKGCONFIG_PATH=$ac_cv_path_PKGCONFIG_PATH
+if test -n "$PKGCONFIG_PATH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG_PATH" >&5
+$as_echo "$PKGCONFIG_PATH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test x"$PKGCONFIG_PATH" = xno; then
+ as_fn_error $? "pkgconfig required but not found" "$LINENO" 5
+ else
+ FOO=`$PKGCONFIG_PATH --cflags --libs nss`
+ if test x"$?" != "x0"; then
+ as_fn_error $? "No usable NSS found" "$LINENO" 5
+ fi
+ fi
+
+
+
+
$as_echo "#define HAVE_NSS 1" >>confdefs.h
with_nss=yes
@@ -15612,7 +15715,7 @@ $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h
with_gnutls=yes
fi
else
- as_fn_error $? "Please choose either 'nss' or 'gnutls' for certificate and key operations" "$LINENO" 5
+ as_fn_error $? "Please choose either 'nss' or 'gnutls' for certificate and crypto operations" "$LINENO" 5
fi
if test x"$with_nss" != xno; then
WITH_NSS_TRUE=
@@ -15653,8 +15756,16 @@ else
fi
-# PPPD
-for ac_header in pppd/pppd.h
+# pppd
+# Check whether --enable-ppp was given.
+if test "${enable_ppp+set}" = set; then :
+ enableval=$enable_ppp; enable_ppp=${enableval}
+else
+ enable_ppp=yes
+fi
+
+if (test "${enable_ppp}" = "yes"); then
+ for ac_header in pppd/pppd.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "pppd/pppd.h" "ac_cv_header_pppd_pppd_h" "$ac_includes_default"
if test "x$ac_cv_header_pppd_pppd_h" = x""yes; then :
@@ -15670,6 +15781,19 @@ done
+$as_echo "#define WITH_PPP 1" >>confdefs.h
+
+fi
+ if test "${enable_ppp}" = "yes"; then
+ WITH_PPP_TRUE=
+ WITH_PPP_FALSE='#'
+else
+ WITH_PPP_TRUE='#'
+ WITH_PPP_FALSE=
+fi
+
+
+
# Check whether --with-pppd-plugin-dir was given.
if test "${with_pppd_plugin_dir+set}" = set; then :
withval=$with_pppd_plugin_dir;
@@ -15683,6 +15807,7 @@ else
fi
+
# dhclient support
# Check whether --with-dhclient was given.
@@ -15946,7 +16071,7 @@ $as_echo "yes" >&6; }
for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \
-Wdeclaration-after-statement -Wstrict-prototypes \
-Wfloat-equal -Wno-unused-parameter -Wno-sign-compare \
- -fno-strict-aliasing; do
+ -fno-strict-aliasing -Wno-unused-but-set-variable; do
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $option"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5
@@ -16235,7 +16360,7 @@ case $with_tests in
esac
-ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile marshallers/Makefile src/logging/Makefile src/dns-manager/Makefile src/vpn-manager/Makefile src/dhcp-manager/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/system-settings/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 callouts/Makefile tools/Makefile system-settings/Makefile system-settings/plugins/Makefile system-settings/plugins/ifupdown/Makefile system-settings/plugins/ifupdown/tests/Makefile system-settings/plugins/ifnet/Makefile system-settings/plugins/ifnet/tests/Makefile system-settings/plugins/ifcfg-rh/Makefile system-settings/plugins/ifcfg-rh/tests/Makefile system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile system-settings/plugins/ifcfg-suse/Makefile system-settings/plugins/keyfile/Makefile system-settings/plugins/keyfile/tests/Makefile system-settings/plugins/keyfile/tests/keyfiles/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/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/python/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/system-settings/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 callouts/Makefile tools/Makefile system-settings/Makefile system-settings/plugins/Makefile system-settings/plugins/ifupdown/Makefile system-settings/plugins/ifupdown/tests/Makefile system-settings/plugins/ifnet/Makefile system-settings/plugins/ifnet/tests/Makefile system-settings/plugins/ifcfg-rh/Makefile system-settings/plugins/ifcfg-rh/tests/Makefile system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile system-settings/plugins/ifcfg-suse/Makefile system-settings/plugins/keyfile/Makefile system-settings/plugins/keyfile/tests/Makefile system-settings/plugins/keyfile/tests/keyfiles/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/libnm-glib/Makefile docs/libnm-util/Makefile NetworkManager.pc examples/Makefile examples/python/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -16412,6 +16537,10 @@ if test -z "${TARGET_LINEXA_TRUE}" && test -z "${TARGET_LINEXA_FALSE}"; then
as_fn_error $? "conditional \"TARGET_LINEXA\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${TARGET_EXHERBO_TRUE}" && test -z "${TARGET_EXHERBO_FALSE}"; then
+ as_fn_error $? "conditional \"TARGET_EXHERBO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${HAVE_SYSTEMD_TRUE}" && test -z "${HAVE_SYSTEMD_FALSE}"; then
as_fn_error $? "conditional \"HAVE_SYSTEMD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16424,6 +16553,10 @@ if test -z "${WITH_GNUTLS_TRUE}" && test -z "${WITH_GNUTLS_FALSE}"; then
as_fn_error $? "conditional \"WITH_GNUTLS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${WITH_PPP_TRUE}" && test -z "${WITH_PPP_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_PPP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16856,7 +16989,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.2, which was
+This file was extended by NetworkManager $as_me 0.8.3.998, which was
generated by GNU Autoconf 2.66. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16916,13 +17049,13 @@ $config_headers
Configuration commands:
$config_commands
-Report bugs to <dcbw@redhat.com>."
+Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>."
_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.2
+NetworkManager config.status 0.8.3.998
configured by $0, generated by GNU Autoconf 2.66,
with options \\"\$ac_cs_config\\"
@@ -17312,6 +17445,7 @@ do
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
+ "include/nm-version.h") CONFIG_FILES="$CONFIG_FILES include/nm-version.h" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
"marshallers/Makefile") CONFIG_FILES="$CONFIG_FILES marshallers/Makefile" ;;
@@ -17319,6 +17453,7 @@ do
"src/dns-manager/Makefile") CONFIG_FILES="$CONFIG_FILES src/dns-manager/Makefile" ;;
"src/vpn-manager/Makefile") CONFIG_FILES="$CONFIG_FILES src/vpn-manager/Makefile" ;;
"src/dhcp-manager/Makefile") CONFIG_FILES="$CONFIG_FILES src/dhcp-manager/Makefile" ;;
+ "src/dhcp-manager/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/dhcp-manager/tests/Makefile" ;;
"src/ip6-manager/Makefile") CONFIG_FILES="$CONFIG_FILES src/ip6-manager/Makefile" ;;
"src/supplicant-manager/Makefile") CONFIG_FILES="$CONFIG_FILES src/supplicant-manager/Makefile" ;;
"src/supplicant-manager/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/supplicant-manager/tests/Makefile" ;;
@@ -18804,6 +18939,12 @@ else
echo systemd support: no
fi
+if test "${enable_ppp}" = "yes"; then
+ echo PPP support: yes
+else
+ echo PPP support: no
+fi
+
echo
echo Building documentation: ${with_docs}
echo Building tests: ${with_tests}
diff --git a/configure.ac b/configure.ac
index 6bbfd993c..ebb2aa9ed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,16 @@
AC_PREREQ(2.52)
-AC_INIT(NetworkManager, 0.8.2, dcbw@redhat.com, NetworkManager)
+dnl The NM version number
+m4_define([nm_major_version], [0])
+m4_define([nm_minor_version], [8])
+m4_define([nm_micro_version], [3])
+m4_define([nm_nano_version], [998])
+m4_define([nm_version],
+ [nm_major_version.nm_minor_version.nm_micro_version.nm_nano_version])
+
+AC_INIT([NetworkManager], [nm_version],
+ [http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager],
+ [NetworkManager])
AM_INIT_AUTOMAKE([1.9 subdir-objects tar-ustar no-dist-gzip dist-bzip2])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
AM_MAINTAINER_MODE
@@ -30,12 +40,22 @@ AC_SUBST([ACLOCAL_AMFLAGS])
dnl maintainer mode stuff
if test $USE_MAINTAINER_MODE = yes; then
- DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED -DGCONF_DISABLE_DEPRECATED"
+ DISABLE_DEPRECATED="-DG_DISABLE_DEPRECATED"
else
DISABLE_DEPRECATED=""
fi
AC_SUBST(DISABLE_DEPRECATED)
+dnl Version stuff
+NM_MAJOR_VERSION=nm_major_version
+NM_MINOR_VERSION=nm_minor_version
+NM_MICRO_VERSION=nm_micro_version
+NM_VERSION=nm_version
+AC_SUBST(NM_MAJOR_VERSION)
+AC_SUBST(NM_MINOR_VERSION)
+AC_SUBST(NM_MICRO_VERSION)
+AC_SUBST(NM_VERSION)
+
dnl
dnl Required headers
dnl
@@ -84,7 +104,7 @@ dnl Make sha1.c happy on big endian systems
dnl
AC_C_BIGENDIAN
-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, suse, gentoo, debian, arch, slackware, paldo, mandriva, pardus or linexa]))
+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, suse, gentoo, debian, arch, slackware, paldo, mandriva, pardus, linexa or exherbo]))
if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
@@ -97,6 +117,7 @@ if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/mandriva-release,with_distro="mandriva")
AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
AC_CHECK_FILE(/etc/linexa-release,with_distro="linexa")
+ AC_CHECK_FILE(/etc/exherbo-release,with_distro="exherbo")
if test "z$with_distro" = "z"; then
with_distro=`lsb_release -is`
fi
@@ -108,7 +129,7 @@ if test "z$with_distro" = "z"; then
exit 1
else
case $with_distro in
- redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa) ;;
+ redhat|suse|gentoo|debian|slackware|arch|paldo|frugalware|mandriva|pardus|linexa|exherbo) ;;
*)
echo "Your distribution (${with_distro}) is not yet supported! (patches welcome)"
exit 1
@@ -171,6 +192,11 @@ if test x"$with_distro" = xlinexa; then
AC_DEFINE(TARGET_LINEXA, 1, [Define if you have linexa])
fi
+AM_CONDITIONAL(TARGET_EXHERBO, test x"$with_distro" = xexherbo)
+if test x"$with_distro" = xexherbo; then
+ AC_DEFINE(TARGET_EXHERBO, 1, [Define if you have Exherbo])
+fi
+
dnl
dnl Distribution version string
dnl
@@ -275,6 +301,20 @@ with_nss=no
with_gnutls=no
if test x"$ac_crypto" = xnss; then
PKG_CHECK_MODULES(NSS, [nss >= 3.11])
+
+ # Work around a pkg-config bug (fdo #29801) where exists != usable
+ AC_PATH_PROG(PKGCONFIG_PATH, pkg-config, no)
+ if test x"$PKGCONFIG_PATH" = xno; then
+ AC_MSG_ERROR([pkgconfig required but not found])
+ else
+ FOO=`$PKGCONFIG_PATH --cflags --libs nss`
+ if test x"$?" != "x0"; then
+ AC_MSG_ERROR([No usable NSS found])
+ fi
+ fi
+
+ AC_SUBST(NSS_CFLAGS)
+ AC_SUBST(NSS_LIBS)
AC_DEFINE(HAVE_NSS, 1, [Define if you have NSS])
with_nss=yes
elif test x"$ac_crypto" = xgnutls; then
@@ -291,7 +331,7 @@ elif test x"$ac_crypto" = xgnutls; then
with_gnutls=yes
fi
else
- AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and key operations])
+ AC_MSG_ERROR([Please choose either 'nss' or 'gnutls' for certificate and crypto operations])
fi
AM_CONDITIONAL(WITH_NSS, test x"$with_nss" != xno)
AM_CONDITIONAL(WITH_GNUTLS, test x"$with_gnutls" != xno)
@@ -313,9 +353,16 @@ else
fi
AC_SUBST(DBUS_SYS_DIR)
-# PPPD
-AC_CHECK_HEADERS(pppd/pppd.h,,
- AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.))
+# pppd
+AC_ARG_ENABLE(ppp, AC_HELP_STRING([--enable-ppp], [enable PPP/PPPoE support]),
+ [enable_ppp=${enableval}], [enable_ppp=yes])
+if (test "${enable_ppp}" = "yes"); then
+ AC_CHECK_HEADERS(pppd/pppd.h,,
+ AC_MSG_ERROR(couldn't find pppd.h. pppd development headers are required.))
+
+ AC_DEFINE(WITH_PPP, 1, [Define if you have PPP support])
+fi
+AM_CONDITIONAL(WITH_PPP, test "${enable_ppp}" = "yes")
AC_ARG_WITH([pppd-plugin-dir], AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
@@ -326,6 +373,7 @@ else
fi
AC_SUBST(PPPD_PLUGIN_DIR)
+
# dhclient support
AC_ARG_WITH([dhclient], AS_HELP_STRING([--with-dhclient=yes|no|path], [Enable dhclient 4.x support]))
# If a full path is given, use that and do not test if it works or not.
@@ -491,6 +539,7 @@ esac
AC_CONFIG_FILES([
Makefile
include/Makefile
+include/nm-version.h
src/Makefile
src/tests/Makefile
marshallers/Makefile
@@ -498,6 +547,7 @@ 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
@@ -596,6 +646,12 @@ else
echo systemd support: no
fi
+if test "${enable_ppp}" = "yes"; then
+ echo PPP support: yes
+else
+ echo PPP support: no
+fi
+
echo
echo Building documentation: ${with_docs}
echo Building tests: ${with_tests}
diff --git a/data/Makefile.in b/data/Makefile.in
index 66fe5a383..c5fb63abe 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/docs/Makefile.in b/docs/Makefile.in
index b120c599d..adcc2c43c 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -222,6 +222,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -236,6 +240,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/docs/libnm-glib/Makefile.am b/docs/libnm-glib/Makefile.am
index 96ff66eee..4a3a6e1e1 100644
--- a/docs/libnm-glib/Makefile.am
+++ b/docs/libnm-glib/Makefile.am
@@ -75,11 +75,17 @@ GTKDOC_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-GTKDOC_LIBS = $(top_builddir)/libnm-glib/libnm-glib.la
+GTKDOC_LIBS = \
+ $(top_builddir)/libnm-glib/libnm-glib.la \
+ $(GLIB_LIBS)
# include common portion ...
include $(top_srcdir)/gtk-doc.make
-CLEANFILES += libnm-glib-sections.txt
+CLEANFILES += \
+ libnm-glib-sections.txt \
+ html/* \
+ tmpl/* \
+ xml/*
diff --git a/docs/libnm-glib/Makefile.in b/docs/libnm-glib/Makefile.in
index 12937dd02..45be8a0f2 100644
--- a/docs/libnm-glib/Makefile.in
+++ b/docs/libnm-glib/Makefile.in
@@ -156,6 +156,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -170,6 +174,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -321,7 +326,10 @@ GTKDOC_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-GTKDOC_LIBS = $(top_builddir)/libnm-glib/libnm-glib.la
+GTKDOC_LIBS = \
+ $(top_builddir)/libnm-glib/libnm-glib.la \
+ $(GLIB_LIBS)
+
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
@@ -363,7 +371,7 @@ REPORT_FILES = \
# include common portion ...
CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \
- libnm-glib-sections.txt
+ libnm-glib-sections.txt html/* tmpl/* xml/*
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
diff --git a/docs/libnm-glib/html/NMAccessPoint.html b/docs/libnm-glib/html/NMAccessPoint.html
index 4988976cb..71c134c96 100644
--- a/docs/libnm-glib/html/NMAccessPoint.html
+++ b/docs/libnm-glib/html/NMAccessPoint.html
@@ -3,10 +3,10 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMAccessPoint</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMDeviceBt.html" title="NMDeviceBt">
+<link rel="prev" href="NMDeviceBt.html" title="NMDeviceBt">
<link rel="next" href="NMIP4Config.html" title="NMIP4Config">
<meta name="generator" content="GTK-Doc V1.15 (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="libnm-glib-NMDeviceBt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="NMDeviceBt.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-glib Reference Manual</th>
diff --git a/docs/libnm-glib/html/NMActiveConnection.html b/docs/libnm-glib/html/NMActiveConnection.html
index ec15593a3..bf28b0a53 100644
--- a/docs/libnm-glib/html/NMActiveConnection.html
+++ b/docs/libnm-glib/html/NMActiveConnection.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMActiveConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMClient.html" title="NMClient">
@@ -54,7 +54,7 @@
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
const <span class="returnvalue">char</span> * <a class="link" href="NMActiveConnection.html#nm-active-connection-get-service-name" title="nm_active_connection_get_service_name ()">nm_active_connection_get_service_name</a>
(<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);
-<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="returnvalue">NMConnectionScope</span></a> <a class="link" href="NMActiveConnection.html#nm-active-connection-get-scope" title="nm_active_connection_get_scope ()">nm_active_connection_get_scope</a> (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="returnvalue">NMConnectionScope</span></a> <a class="link" href="NMActiveConnection.html#nm-active-connection-get-scope" title="nm_active_connection_get_scope ()">nm_active_connection_get_scope</a> (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);
const <span class="returnvalue">char</span> * <a class="link" href="NMActiveConnection.html#nm-active-connection-get-connection" title="nm_active_connection_get_connection ()">nm_active_connection_get_connection</a> (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);
const <span class="returnvalue">char</span> * <a class="link" href="NMActiveConnection.html#nm-active-connection-get-specific-object" title="nm_active_connection_get_specific_object ()">nm_active_connection_get_specific_object</a>
(<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);
@@ -70,6 +70,7 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+----<a class="link" href="NMObject.html" title="NMObject">NMObject</a>
+----NMActiveConnection
+ +----<a class="link" href="NMVPNConnection.html" title="NMVPNConnection">NMVPNConnection</a>
</pre>
</div>
<div class="refsect1" title="Properties">
@@ -228,7 +229,7 @@ connection, and must not be modified.
<hr>
<div class="refsect2" title="nm_active_connection_get_scope ()">
<a name="nm-active-connection-get-scope"></a><h3>nm_active_connection_get_scope ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="returnvalue">NMConnectionScope</span></a> nm_active_connection_get_scope (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
+<pre class="programlisting"><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="returnvalue">NMConnectionScope</span></a> nm_active_connection_get_scope (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
<p>
Gets the scope of the active connection.
</p>
@@ -253,7 +254,7 @@ Gets the scope of the active connection.
<a name="nm-active-connection-get-connection"></a><h3>nm_active_connection_get_connection ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> * nm_active_connection_get_connection (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
<p>
-Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a>'s DBus object path.
+Gets the <a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a>'s DBus object path.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -265,7 +266,7 @@ Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span cl
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td> the object path of the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> inside of <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
+<td> the object path of the <a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> inside of <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
This is the internal string used by the connection, and must not be modified.
</td>
</tr>
diff --git a/docs/libnm-glib/html/NMCdmaDevice.html b/docs/libnm-glib/html/NMCdmaDevice.html
index c71533397..3bea23975 100644
--- a/docs/libnm-glib/html/NMCdmaDevice.html
+++ b/docs/libnm-glib/html/NMCdmaDevice.html
@@ -3,11 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMCdmaDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMGsmDevice.html" title="NMGsmDevice">
-<link rel="next" href="libnm-glib-NMDeviceBt.html" title="NMDeviceBt">
+<link rel="next" href="NMDeviceBt.html" title="NMDeviceBt">
<meta name="generator" content="GTK-Doc V1.15 (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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMDeviceBt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="NMDeviceBt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#NMCdmaDevice.synopsis" class="shortcut">Top</a>
diff --git a/docs/libnm-glib/html/NMClient.html b/docs/libnm-glib/html/NMClient.html
index b871e694c..f2e61adb9 100644
--- a/docs/libnm-glib/html/NMClient.html
+++ b/docs/libnm-glib/html/NMClient.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMClient</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="ch01.html" title="libnm-glib Objects">
@@ -444,7 +444,7 @@ Whether networking is enabled or disabled.
</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 networking is disabled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if networking is enabled
+<td> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if networking is enabled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if networking is disabled
</td>
</tr>
</tbody>
diff --git a/docs/libnm-glib/html/NMDHCP4Config.html b/docs/libnm-glib/html/NMDHCP4Config.html
index b52751b85..233b1047c 100644
--- a/docs/libnm-glib/html/NMDHCP4Config.html
+++ b/docs/libnm-glib/html/NMDHCP4Config.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDHCP4Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMIP6Config.html" title="NMIP6Config">
diff --git a/docs/libnm-glib/html/NMDHCP6Config.html b/docs/libnm-glib/html/NMDHCP6Config.html
index 005854f40..4dd32c331 100644
--- a/docs/libnm-glib/html/NMDHCP6Config.html
+++ b/docs/libnm-glib/html/NMDHCP6Config.html
@@ -3,11 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDHCP6Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMDHCP4Config.html" title="NMDHCP4Config">
-<link rel="next" href="libnm-glib-NMExportedConnection.html" title="NMExportedConnection">
+<link rel="next" href="NMExportedConnection.html" title="NMExportedConnection">
<meta name="generator" content="GTK-Doc V1.15 (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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMExportedConnection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="NMExportedConnection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#NMDHCP6Config.synopsis" class="shortcut">Top</a>
@@ -26,6 +26,8 @@
<a href="#NMDHCP6Config.description" class="shortcut">Description</a>
 | 
<a href="#NMDHCP6Config.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMDHCP6Config.properties" class="shortcut">Properties</a>
</td></tr>
</table>
<div class="refentry" title="NMDHCP6Config">
@@ -57,6 +59,12 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMDHC
+----NMDHCP6Config
</pre>
</div>
+<div class="refsect1" title="Properties">
+<a name="NMDHCP6Config.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMDHCP6Config.html#NMDHCP6Config--options" title='The "options" property'>options</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>* : Read
+</pre>
+</div>
<div class="refsect1" title="Description">
<a name="NMDHCP6Config.description"></a><h2>Description</h2>
<p>
@@ -180,6 +188,16 @@ configuration, and must not be modified.
</table></div>
</div>
</div>
+<div class="refsect1" title="Property Details">
+<a name="NMDHCP6Config.property-details"></a><h2>Property Details</h2>
+<div class="refsect2" title='The "options" property'>
+<a name="NMDHCP6Config--options"></a><h3>The <code class="literal">"options"</code> property</h3>
+<pre class="programlisting"> "options" <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>* : Read</pre>
+<p>
+The <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> containing options of the configuration.
+</p>
+</div>
+</div>
</div>
<div class="footer">
<hr>
diff --git a/docs/libnm-glib/html/NMDevice.html b/docs/libnm-glib/html/NMDevice.html
index 588eba196..31672ab6c 100644
--- a/docs/libnm-glib/html/NMDevice.html
+++ b/docs/libnm-glib/html/NMDevice.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMActiveConnection.html" title="NMActiveConnection">
@@ -92,6 +92,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMDev
+----<a class="link" href="NMDeviceEthernet.html" title="NMDeviceEthernet">NMDeviceEthernet</a>
+----<a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi">NMDeviceWifi</a>
+----<a class="link" href="NMSerialDevice.html" title="NMSerialDevice">NMSerialDevice</a>
+ +----<a class="link" href="NMDeviceBt.html" title="NMDeviceBt">NMDeviceBt</a>
</pre>
</div>
<div class="refsect1" title="Properties">
@@ -103,6 +104,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMDev
"<a class="link" href="NMDevice.html#NMDevice--driver" title='The "driver" property'>driver</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
"<a class="link" href="NMDevice.html#NMDevice--firmware-missing" title='The "firmware-missing" property'>firmware-missing</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
"<a class="link" href="NMDevice.html#NMDevice--interface" title='The "interface" property'>interface</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
+ "<a class="link" href="NMDevice.html#NMDevice--ip-interface" title='The "ip-interface" property'>ip-interface</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
"<a class="link" href="NMDevice.html#NMDevice--ip4-config" title='The "ip4-config" property'>ip4-config</a>" <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="type">NMIP4Config</span></a>* : Read
"<a class="link" href="NMDevice.html#NMDevice--ip6-config" title='The "ip6-config" property'>ip6-config</a>" <a class="link" href="NMIP6Config.html" title="NMIP6Config"><span class="type">NMIP6Config</span></a>* : Read
"<a class="link" href="NMDevice.html#NMDevice--managed" title='The "managed" property'>managed</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
@@ -747,6 +749,16 @@ The interface of the device.
<p>Default value: NULL</p>
</div>
<hr>
+<div class="refsect2" title='The "ip-interface" property'>
+<a name="NMDevice--ip-interface"></a><h3>The <code class="literal">"ip-interface"</code> property</h3>
+<pre class="programlisting"> "ip-interface" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
+<p>
+The IP interface of the device which should be used for all IP-related
+operations like addressing and routing.
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
<div class="refsect2" title='The "ip4-config" property'>
<a name="NMDevice--ip4-config"></a><h3>The <code class="literal">"ip4-config"</code> property</h3>
<pre class="programlisting"> "ip4-config" <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="type">NMIP4Config</span></a>* : Read</pre>
diff --git a/docs/libnm-glib/html/libnm-glib-NMDeviceBt.html b/docs/libnm-glib/html/NMDeviceBt.html
index 91c5f6fbd..3893c3673 100644
--- a/docs/libnm-glib/html/libnm-glib-NMDeviceBt.html
+++ b/docs/libnm-glib/html/NMDeviceBt.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDeviceBt</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMCdmaDevice.html" title="NMCdmaDevice">
@@ -21,41 +21,62 @@
<td><a accesskey="n" href="NMAccessPoint.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-NMDeviceBt.synopsis" class="shortcut">Top</a>
+<a href="#NMDeviceBt.synopsis" class="shortcut">Top</a>
 | 
- <a href="#libnm-glib-NMDeviceBt.description" class="shortcut">Description</a>
+ <a href="#NMDeviceBt.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMDeviceBt.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMDeviceBt.properties" class="shortcut">Properties</a>
</td></tr>
</table>
<div class="refentry" title="NMDeviceBt">
-<a name="libnm-glib-NMDeviceBt"></a><div class="titlepage"></div>
+<a name="NMDeviceBt"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMDeviceBt.top_of_page"></a>NMDeviceBt</span></h2>
+<h2><span class="refentrytitle"><a name="NMDeviceBt.top_of_page"></a>NMDeviceBt</span></h2>
<p>NMDeviceBt</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
-<a name="libnm-glib-NMDeviceBt.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define <a class="link" href="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS" title="NM_DEVICE_BT_HW_ADDRESS">NM_DEVICE_BT_HW_ADDRESS</a>
-#define <a class="link" href="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS" title="NM_DEVICE_BT_NAME">NM_DEVICE_BT_NAME</a>
-#define <a class="link" href="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS" title="NM_DEVICE_BT_CAPABILITIES">NM_DEVICE_BT_CAPABILITIES</a>
- <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt">NMDeviceBt</a>;
- <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBtClass" title="NMDeviceBtClass">NMDeviceBtClass</a>;
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * <a class="link" href="libnm-glib-NMDeviceBt.html#nm-device-bt-new" title="nm_device_bt_new ()">nm_device_bt_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *connection</code></em>,
+<a name="NMDeviceBt.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define <a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS" title="NM_DEVICE_BT_HW_ADDRESS">NM_DEVICE_BT_HW_ADDRESS</a>
+#define <a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS" title="NM_DEVICE_BT_NAME">NM_DEVICE_BT_NAME</a>
+#define <a class="link" href="NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS" title="NM_DEVICE_BT_CAPABILITIES">NM_DEVICE_BT_CAPABILITIES</a>
+ <a class="link" href="NMDeviceBt.html#NMDeviceBt-struct" title="NMDeviceBt">NMDeviceBt</a>;
+ <a class="link" href="NMDeviceBt.html#NMDeviceBtClass" title="NMDeviceBtClass">NMDeviceBtClass</a>;
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * <a class="link" href="NMDeviceBt.html#nm-device-bt-new" title="nm_device_bt_new ()">nm_device_bt_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
-const <span class="returnvalue">char</span> * <a class="link" href="libnm-glib-NMDeviceBt.html#nm-device-bt-get-hw-address" title="nm_device_bt_get_hw_address ()">nm_device_bt_get_hw_address</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
-const <span class="returnvalue">char</span> * <a class="link" href="libnm-glib-NMDeviceBt.html#nm-device-bt-get-name" title="nm_device_bt_get_name ()">nm_device_bt_get_name</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
-<span class="returnvalue">NMBluetoothCapabilities</span> <a class="link" href="libnm-glib-NMDeviceBt.html#nm-device-bt-get-capabilities" title="nm_device_bt_get_capabilities ()">nm_device_bt_get_capabilities</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceBt.html#nm-device-bt-get-hw-address" title="nm_device_bt_get_hw_address ()">nm_device_bt_get_hw_address</a> (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMDeviceBt.html#nm-device-bt-get-name" title="nm_device_bt_get_name ()">nm_device_bt_get_name</a> (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
+<span class="returnvalue">NMBluetoothCapabilities</span> <a class="link" href="NMDeviceBt.html#nm-device-bt-get-capabilities" title="nm_device_bt_get_capabilities ()">nm_device_bt_get_capabilities</a> (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="NMDeviceBt.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<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="NMObject.html" title="NMObject">NMObject</a>
+ +----<a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a>
+ +----NMDeviceBt
+</pre>
+</div>
+<div class="refsect1" title="Properties">
+<a name="NMDeviceBt.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMDeviceBt.html#NMDeviceBt--bt-capabilities" title='The "bt-capabilities" property'>bt-capabilities</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
+ "<a class="link" href="NMDeviceBt.html#NMDeviceBt--hw-address" title='The "hw-address" property'>hw-address</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
+ "<a class="link" href="NMDeviceBt.html#NMDeviceBt--name" title='The "name" property'>name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
</pre>
</div>
<div class="refsect1" title="Description">
-<a name="libnm-glib-NMDeviceBt.description"></a><h2>Description</h2>
+<a name="NMDeviceBt.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1" title="Details">
-<a name="libnm-glib-NMDeviceBt.details"></a><h2>Details</h2>
+<a name="NMDeviceBt.details"></a><h2>Details</h2>
<div class="refsect2" title="NM_DEVICE_BT_HW_ADDRESS">
<a name="NM-DEVICE-BT-HW-ADDRESS:CAPS"></a><h3>NM_DEVICE_BT_HW_ADDRESS</h3>
<pre class="programlisting">#define NM_DEVICE_BT_HW_ADDRESS "hw-address"
@@ -81,11 +102,8 @@ const <span class="returnvalue">char</span> * <a class="link" href="libnm
</div>
<hr>
<div class="refsect2" title="NMDeviceBt">
-<a name="NMDeviceBt"></a><h3>NMDeviceBt</h3>
-<pre class="programlisting">typedef struct {
- NMDevice parent;
-} NMDeviceBt;
-</pre>
+<a name="NMDeviceBt-struct"></a><h3>NMDeviceBt</h3>
+<pre class="programlisting">typedef struct _NMDeviceBt NMDeviceBt;</pre>
<p>
</p>
</div>
@@ -113,7 +131,7 @@ const <span class="returnvalue">char</span> * <a class="link" href="libnm
<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * nm_device_bt_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
<p>
-Creates a new <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>.
+Creates a new <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -139,16 +157,16 @@ Creates a new <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title
<hr>
<div class="refsect2" title="nm_device_bt_get_hw_address ()">
<a name="nm-device-bt-get-hw-address"></a><h3>nm_device_bt_get_hw_address ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_bt_get_hw_address (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_bt_get_hw_address (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
<p>
-Gets the hardware (MAC) address of the <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
+Gets the hardware (MAC) address of the <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</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>device</code></em> :</span></p></td>
-<td>a <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
+<td>a <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
</td>
</tr>
<tr>
@@ -163,16 +181,16 @@ device, and must not be modified.
<hr>
<div class="refsect2" title="nm_device_bt_get_name ()">
<a name="nm-device-bt-get-name"></a><h3>nm_device_bt_get_name ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_bt_get_name (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_device_bt_get_name (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
<p>
-Gets the name of the <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>.
+Gets the name of the <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</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>device</code></em> :</span></p></td>
-<td>a <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
+<td>a <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
</td>
</tr>
<tr>
@@ -186,7 +204,7 @@ Gets the name of the <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt
<hr>
<div class="refsect2" title="nm_device_bt_get_capabilities ()">
<a name="nm-device-bt-get-capabilities"></a><h3>nm_device_bt_get_capabilities ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMBluetoothCapabilities</span> nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">NMBluetoothCapabilities</span> nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
<p>
Returns the Bluetooth device's usable capabilities.
</p>
@@ -195,7 +213,7 @@ Returns the Bluetooth device's usable capabilities.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>device</code></em> :</span></p></td>
-<td>a <a class="link" href="libnm-glib-NMDeviceBt.html#NMDeviceBt" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
+<td>a <a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a>
</td>
</tr>
<tr>
@@ -207,6 +225,35 @@ Returns the Bluetooth device's usable capabilities.
</table></div>
</div>
</div>
+<div class="refsect1" title="Property Details">
+<a name="NMDeviceBt.property-details"></a><h2>Property Details</h2>
+<div class="refsect2" title='The "bt-capabilities" property'>
+<a name="NMDeviceBt--bt-capabilities"></a><h3>The <code class="literal">"bt-capabilities"</code> property</h3>
+<pre class="programlisting"> "bt-capabilities" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre>
+<p>
+The device's bluetooth capabilities, a combination of <span class="type">NMBluetoothCapabilities</span>.
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2" title='The "hw-address" property'>
+<a name="NMDeviceBt--hw-address"></a><h3>The <code class="literal">"hw-address"</code> property</h3>
+<pre class="programlisting"> "hw-address" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
+<p>
+The hardware (MAC) address of the device.
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2" title='The "name" property'>
+<a name="NMDeviceBt--name"></a><h3>The <code class="literal">"name"</code> property</h3>
+<pre class="programlisting"> "name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
+<p>
+The name of the bluetooth device.
+</p>
+<p>Default value: NULL</p>
+</div>
+</div>
</div>
<div class="footer">
<hr>
diff --git a/docs/libnm-glib/html/NMDeviceEthernet.html b/docs/libnm-glib/html/NMDeviceEthernet.html
index 5d63e2e56..ff7251166 100644
--- a/docs/libnm-glib/html/NMDeviceEthernet.html
+++ b/docs/libnm-glib/html/NMDeviceEthernet.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDeviceEthernet</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMDevice.html" title="NMDevice">
diff --git a/docs/libnm-glib/html/NMDeviceWifi.html b/docs/libnm-glib/html/NMDeviceWifi.html
index 34e098563..c08e9cd1e 100644
--- a/docs/libnm-glib/html/NMDeviceWifi.html
+++ b/docs/libnm-glib/html/NMDeviceWifi.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMDeviceWifi</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMDeviceEthernet.html" title="NMDeviceEthernet">
diff --git a/docs/libnm-glib/html/libnm-glib-NMExportedConnection.html b/docs/libnm-glib/html/NMExportedConnection.html
index a93169af4..9cd9ee734 100644
--- a/docs/libnm-glib/html/libnm-glib-NMExportedConnection.html
+++ b/docs/libnm-glib/html/NMExportedConnection.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMExportedConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMDHCP6Config.html" title="NMDHCP6Config">
@@ -21,40 +21,55 @@
<td><a accesskey="n" href="NMObject.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-NMExportedConnection.synopsis" class="shortcut">Top</a>
+<a href="#NMExportedConnection.synopsis" class="shortcut">Top</a>
 | 
- <a href="#libnm-glib-NMExportedConnection.description" class="shortcut">Description</a>
+ <a href="#NMExportedConnection.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMExportedConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMExportedConnection.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
</td></tr>
</table>
<div class="refentry" title="NMExportedConnection">
-<a name="libnm-glib-NMExportedConnection"></a><div class="titlepage"></div>
+<a name="NMExportedConnection"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMExportedConnection.top_of_page"></a>NMExportedConnection</span></h2>
+<h2><span class="refentrytitle"><a name="NMExportedConnection.top_of_page"></a>NMExportedConnection</span></h2>
<p>NMExportedConnection</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
-<a name="libnm-glib-NMExportedConnection.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"> <a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnection" title="NMExportedConnection">NMExportedConnection</a>;
- <a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnectionClass" title="NMExportedConnectionClass">NMExportedConnectionClass</a>;
-<a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnection" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * <a class="link" href="libnm-glib-NMExportedConnection.html#nm-exported-connection-new" title="nm_exported_connection_new ()">nm_exported_connection_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);
+<a name="NMExportedConnection.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"> <a class="link" href="NMExportedConnection.html#NMExportedConnection-struct" title="NMExportedConnection">NMExportedConnection</a>;
+ <a class="link" href="NMExportedConnection.html#NMExportedConnectionClass" title="NMExportedConnectionClass">NMExportedConnectionClass</a>;
+<a class="link" href="NMExportedConnection.html" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * <a class="link" href="NMExportedConnection.html#nm-exported-connection-new" title="nm_exported_connection_new ()">nm_exported_connection_new</a> (<em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="NMExportedConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html">NMConnection</a>
+ +----NMExportedConnection
</pre>
</div>
+<div class="refsect1" title="Implemented Interfaces">
+<a name="NMExportedConnection.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+NMExportedConnection implements
+ <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface">NMSettingsConnectionInterface</a>.</p>
+</div>
<div class="refsect1" title="Description">
-<a name="libnm-glib-NMExportedConnection.description"></a><h2>Description</h2>
+<a name="NMExportedConnection.description"></a><h2>Description</h2>
<p>
</p>
</div>
<div class="refsect1" title="Details">
-<a name="libnm-glib-NMExportedConnection.details"></a><h2>Details</h2>
+<a name="NMExportedConnection.details"></a><h2>Details</h2>
<div class="refsect2" title="NMExportedConnection">
-<a name="NMExportedConnection"></a><h3>NMExportedConnection</h3>
-<pre class="programlisting">typedef struct {
- NMConnection parent;
-} NMExportedConnection;
-</pre>
+<a name="NMExportedConnection-struct"></a><h3>NMExportedConnection</h3>
+<pre class="programlisting">typedef struct _NMExportedConnection NMExportedConnection;</pre>
<p>
</p>
</div>
@@ -95,7 +110,7 @@
<hr>
<div class="refsect2" title="nm_exported_connection_new ()">
<a name="nm-exported-connection-new"></a><h3>nm_exported_connection_new ()</h3>
-<pre class="programlisting"><a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnection" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * nm_exported_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="NMExportedConnection.html" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * nm_exported_connection_new (<em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);</pre>
<p>
Creates a new object representing the remote connection.
</p>
diff --git a/docs/libnm-glib/html/NMGsmDevice.html b/docs/libnm-glib/html/NMGsmDevice.html
index 5de272dec..bad58c507 100644
--- a/docs/libnm-glib/html/NMGsmDevice.html
+++ b/docs/libnm-glib/html/NMGsmDevice.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMGsmDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMSerialDevice.html" title="NMSerialDevice">
diff --git a/docs/libnm-glib/html/NMIP4Config.html b/docs/libnm-glib/html/NMIP4Config.html
index 391278d1b..63f441c31 100644
--- a/docs/libnm-glib/html/NMIP4Config.html
+++ b/docs/libnm-glib/html/NMIP4Config.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMIP4Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMAccessPoint.html" title="NMAccessPoint">
diff --git a/docs/libnm-glib/html/NMIP6Config.html b/docs/libnm-glib/html/NMIP6Config.html
index d156ff916..b8de4edfb 100644
--- a/docs/libnm-glib/html/NMIP6Config.html
+++ b/docs/libnm-glib/html/NMIP6Config.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMIP6Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMIP4Config.html" title="NMIP4Config">
@@ -269,7 +269,7 @@ internal copy used by the configuration, and must not be modified.
<pre class="programlisting"> "addresses" <span class="type">nm-ip6-address-object-array*</span> : Read</pre>
<p>
The <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing the IPv6 addresses; use
-<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-ip6-addresses-from-gvalue"><code class="function">nm_utils_ip6_addresses_from_gvalue()</code></a> to return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/libnm-util-nm-utils.html#nm-utils-ip6-addresses-from-gvalue"><code class="function">nm_utils_ip6_addresses_from_gvalue()</code></a> to return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
<span class="type">NMSettingIP6Address</span> objects that is more usable than the raw data.
</p>
</div>
@@ -296,7 +296,7 @@ contain the addresses of nameservers of the configuration.
<pre class="programlisting"> "routes" <span class="type">nm-ip6-route-object-array*</span> : Read</pre>
<p>
The <a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing the IPv6 routes; use
-<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-ip6-routes-from-gvalue"><code class="function">nm_utils_ip6_routes_from_gvalue()</code></a> to return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/libnm-util-nm-utils.html#nm-utils-ip6-routes-from-gvalue"><code class="function">nm_utils_ip6_routes_from_gvalue()</code></a> to return a <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
<span class="type">NMSettingIP6Address</span> objects that is more usable than the raw data.
</p>
</div>
diff --git a/docs/libnm-glib/html/NMObject.html b/docs/libnm-glib/html/NMObject.html
index 4cabb7468..b21facc55 100644
--- a/docs/libnm-glib/html/NMObject.html
+++ b/docs/libnm-glib/html/NMObject.html
@@ -3,22 +3,22 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMObject</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMExportedConnection.html" title="NMExportedConnection">
-<link rel="next" href="libnm-glib-NMRemoteConnection.html" title="NMRemoteConnection">
+<link rel="prev" href="NMExportedConnection.html" title="NMExportedConnection">
+<link rel="next" href="NMRemoteConnection.html" title="NMRemoteConnection">
<meta name="generator" content="GTK-Doc V1.15 (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-NMExportedConnection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="NMExportedConnection.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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMRemoteConnection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="NMRemoteConnection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#NMObject.synopsis" class="shortcut">Top</a>
@@ -58,9 +58,9 @@ const <span class="returnvalue">char</span> * <a class="link" href="NMObj
+----<a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a>
+----<a class="link" href="NMAccessPoint.html" title="NMAccessPoint">NMAccessPoint</a>
+----<a class="link" href="NMIP4Config.html" title="NMIP4Config">NMIP4Config</a>
+ +----<a class="link" href="NMIP6Config.html" title="NMIP6Config">NMIP6Config</a>
+----<a class="link" href="NMActiveConnection.html" title="NMActiveConnection">NMActiveConnection</a>
+----<a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config">NMDHCP4Config</a>
- +----<a class="link" href="NMIP6Config.html" title="NMIP6Config">NMIP6Config</a>
+----<a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config">NMDHCP6Config</a>
</pre>
</div>
diff --git a/docs/libnm-glib/html/NMRemoteConnection.html b/docs/libnm-glib/html/NMRemoteConnection.html
new file mode 100644
index 000000000..be3b10b07
--- /dev/null
+++ b/docs/libnm-glib/html/NMRemoteConnection.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NMRemoteConnection</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="libnm-glib Reference Manual">
+<link rel="up" href="ch01.html" title="libnm-glib Objects">
+<link rel="prev" href="NMObject.html" title="NMObject">
+<link rel="next" href="NMRemoteSettings.html" title="NMRemoteSettings">
+<meta name="generator" content="GTK-Doc V1.15 (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="NMObject.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-glib Reference Manual</th>
+<td><a accesskey="n" href="NMRemoteSettings.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#NMRemoteConnection.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#NMRemoteConnection.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMRemoteConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMRemoteConnection.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+  | 
+ <a href="#NMRemoteConnection.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry" title="NMRemoteConnection">
+<a name="NMRemoteConnection"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="NMRemoteConnection.top_of_page"></a>NMRemoteConnection</span></h2>
+<p>NMRemoteConnection</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv" title="Synopsis">
+<a name="NMRemoteConnection.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"> <a class="link" href="NMRemoteConnection.html#NMRemoteConnection-struct" title="NMRemoteConnection">NMRemoteConnection</a>;
+ <a class="link" href="NMRemoteConnection.html#NMRemoteConnectionClass" title="NMRemoteConnectionClass">NMRemoteConnectionClass</a>;
+<a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="returnvalue">NMRemoteConnection</span></a> * <a class="link" href="NMRemoteConnection.html#nm-remote-connection-new" title="nm_remote_connection_new ()">nm_remote_connection_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="NMRemoteConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html">NMConnection</a>
+ +----NMRemoteConnection
+</pre>
+</div>
+<div class="refsect1" title="Implemented Interfaces">
+<a name="NMRemoteConnection.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+NMRemoteConnection implements
+ <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface">NMSettingsConnectionInterface</a>.</p>
+</div>
+<div class="refsect1" title="Properties">
+<a name="NMRemoteConnection.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMRemoteConnection.html#NMRemoteConnection--bus" title='The "bus" property'>bus</a>" <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a>* : Write / Construct Only
+ "<a class="link" href="NMRemoteConnection.html#NMRemoteConnection--init-result" title='The "init-result" property'>init-result</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
+</pre>
+</div>
+<div class="refsect1" title="Description">
+<a name="NMRemoteConnection.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1" title="Details">
+<a name="NMRemoteConnection.details"></a><h2>Details</h2>
+<div class="refsect2" title="NMRemoteConnection">
+<a name="NMRemoteConnection-struct"></a><h3>NMRemoteConnection</h3>
+<pre class="programlisting">typedef struct _NMRemoteConnection NMRemoteConnection;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NMRemoteConnectionClass">
+<a name="NMRemoteConnectionClass"></a><h3>NMRemoteConnectionClass</h3>
+<pre class="programlisting">typedef struct {
+ NMConnectionClass parent_class;
+
+ /* Padding for future expansion */
+ void (*_reserved1) (void);
+ void (*_reserved2) (void);
+ void (*_reserved3) (void);
+ void (*_reserved4) (void);
+ void (*_reserved5) (void);
+ void (*_reserved6) (void);
+} NMRemoteConnectionClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="nm_remote_connection_new ()">
+<a name="nm-remote-connection-new"></a><h3>nm_remote_connection_new ()</h3>
+<pre class="programlisting"><a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="returnvalue">NMRemoteConnection</span></a> * nm_remote_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
+<p>
+Creates a new object representing the remote connection.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>a valid and connected D-Bus connection
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
+<td>the Connection scope (either user or system)
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>the D-Bus path of the connection as exported by the settings service
+ indicated by <em class="parameter"><code>scope</code></em>
+</td>
+</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>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1" title="Property Details">
+<a name="NMRemoteConnection.property-details"></a><h2>Property Details</h2>
+<div class="refsect2" title='The "bus" property'>
+<a name="NMRemoteConnection--bus"></a><h3>The <code class="literal">"bus"</code> property</h3>
+<pre class="programlisting"> "bus" <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a>* : Write / Construct Only</pre>
+<p>DBusGConnection.</p>
+</div>
+<hr>
+<div class="refsect2" title='The "init-result" property'>
+<a name="NMRemoteConnection--init-result"></a><h3>The <code class="literal">"init-result"</code> property</h3>
+<pre class="programlisting"> "init-result" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre>
+<p>Initialization result (PRIVATE).</p>
+<p>Allowed values: &lt;= 2</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.15</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/NMRemoteSettings.html b/docs/libnm-glib/html/NMRemoteSettings.html
new file mode 100644
index 000000000..d37f1883a
--- /dev/null
+++ b/docs/libnm-glib/html/NMRemoteSettings.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NMRemoteSettings</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="libnm-glib Reference Manual">
+<link rel="up" href="ch01.html" title="libnm-glib Objects">
+<link rel="prev" href="NMRemoteConnection.html" title="NMRemoteConnection">
+<link rel="next" href="libnm-glib-NMRemoteSettingsSystem.html" title="NMRemoteSettingsSystem">
+<meta name="generator" content="GTK-Doc V1.15 (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="NMRemoteConnection.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-glib Reference Manual</th>
+<td><a accesskey="n" href="libnm-glib-NMRemoteSettingsSystem.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#NMRemoteSettings.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#NMRemoteSettings.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMRemoteSettings.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMRemoteSettings.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+  | 
+ <a href="#NMRemoteSettings.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry" title="NMRemoteSettings">
+<a name="NMRemoteSettings"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="NMRemoteSettings.top_of_page"></a>NMRemoteSettings</span></h2>
+<p>NMRemoteSettings</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv" title="Synopsis">
+<a name="NMRemoteSettings.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define <a class="link" href="NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS" title="NM_REMOTE_SETTINGS_BUS">NM_REMOTE_SETTINGS_BUS</a>
+#define <a class="link" href="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS" title="NM_REMOTE_SETTINGS_SCOPE">NM_REMOTE_SETTINGS_SCOPE</a>
+#define <a class="link" href="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS" title="NM_REMOTE_SETTINGS_SERVICE_RUNNING">NM_REMOTE_SETTINGS_SERVICE_RUNNING</a>
+ <a class="link" href="NMRemoteSettings.html#NMRemoteSettings-struct" title="NMRemoteSettings">NMRemoteSettings</a>;
+ <a class="link" href="NMRemoteSettings.html#NMRemoteSettingsClass" title="NMRemoteSettingsClass">NMRemoteSettingsClass</a>;
+<a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="returnvalue">NMRemoteSettings</span></a> * <a class="link" href="NMRemoteSettings.html#nm-remote-settings-new" title="nm_remote_settings_new ()">nm_remote_settings_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="NMRemoteSettings.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----NMRemoteSettings
+</pre>
+</div>
+<div class="refsect1" title="Implemented Interfaces">
+<a name="NMRemoteSettings.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+NMRemoteSettings implements
+ <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface">NMSettingsInterface</a>.</p>
+</div>
+<div class="refsect1" title="Properties">
+<a name="NMRemoteSettings.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMRemoteSettings.html#NMRemoteSettings--bus" title='The "bus" property'>bus</a>" <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a>* : Read / Write / Construct Only
+ "<a class="link" href="NMRemoteSettings.html#NMRemoteSettings--scope" title='The "scope" property'>scope</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct Only
+ "<a class="link" href="NMRemoteSettings.html#NMRemoteSettings--service-running" title='The "service-running" property'>service-running</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
+</pre>
+</div>
+<div class="refsect1" title="Description">
+<a name="NMRemoteSettings.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1" title="Details">
+<a name="NMRemoteSettings.details"></a><h2>Details</h2>
+<div class="refsect2" title="NM_REMOTE_SETTINGS_BUS">
+<a name="NM-REMOTE-SETTINGS-BUS:CAPS"></a><h3>NM_REMOTE_SETTINGS_BUS</h3>
+<pre class="programlisting">#define NM_REMOTE_SETTINGS_BUS "bus"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NM_REMOTE_SETTINGS_SCOPE">
+<a name="NM-REMOTE-SETTINGS-SCOPE:CAPS"></a><h3>NM_REMOTE_SETTINGS_SCOPE</h3>
+<pre class="programlisting">#define NM_REMOTE_SETTINGS_SCOPE "scope"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NM_REMOTE_SETTINGS_SERVICE_RUNNING">
+<a name="NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"></a><h3>NM_REMOTE_SETTINGS_SERVICE_RUNNING</h3>
+<pre class="programlisting">#define NM_REMOTE_SETTINGS_SERVICE_RUNNING "service-running"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NMRemoteSettings">
+<a name="NMRemoteSettings-struct"></a><h3>NMRemoteSettings</h3>
+<pre class="programlisting">typedef struct _NMRemoteSettings NMRemoteSettings;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NMRemoteSettingsClass">
+<a name="NMRemoteSettingsClass"></a><h3>NMRemoteSettingsClass</h3>
+<pre class="programlisting">typedef struct {
+ GObjectClass parent;
+
+ /* Padding for future expansion */
+ void (*_reserved1) (void);
+ void (*_reserved2) (void);
+ void (*_reserved3) (void);
+ void (*_reserved4) (void);
+ void (*_reserved5) (void);
+ void (*_reserved6) (void);
+} NMRemoteSettingsClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="nm_remote_settings_new ()">
+<a name="nm-remote-settings-new"></a><h3>nm_remote_settings_new ()</h3>
+<pre class="programlisting"><a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="returnvalue">NMRemoteSettings</span></a> * nm_remote_settings_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);</pre>
+<p>
+Creates a new object representing the remote settings service.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>a valid and connected D-Bus connection
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
+<td>the settings service scope (either user or system)
+</td>
+</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>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1" title="Property Details">
+<a name="NMRemoteSettings.property-details"></a><h2>Property Details</h2>
+<div class="refsect2" title='The "bus" property'>
+<a name="NMRemoteSettings--bus"></a><h3>The <code class="literal">"bus"</code> property</h3>
+<pre class="programlisting"> "bus" <a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a>* : Read / Write / Construct Only</pre>
+<p>DBusGConnection.</p>
+</div>
+<hr>
+<div class="refsect2" title='The "scope" property'>
+<a name="NMRemoteSettings--scope"></a><h3>The <code class="literal">"scope"</code> property</h3>
+<pre class="programlisting"> "scope" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write / Construct Only</pre>
+<p>NMConnection scope.</p>
+<p>Allowed values: &lt;= 2</p>
+<p>Default value: 2</p>
+</div>
+<hr>
+<div class="refsect2" title='The "service-running" property'>
+<a name="NMRemoteSettings--service-running"></a><h3>The <code class="literal">"service-running"</code> property</h3>
+<pre class="programlisting"> "service-running" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre>
+<p>Is service running.</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.15</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/NMSerialDevice.html b/docs/libnm-glib/html/NMSerialDevice.html
index 1e2202d28..1b749ed7e 100644
--- a/docs/libnm-glib/html/NMSerialDevice.html
+++ b/docs/libnm-glib/html/NMSerialDevice.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSerialDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="NMDeviceWifi.html" title="NMDeviceWifi">
@@ -54,8 +54,8 @@
+----<a class="link" href="NMObject.html" title="NMObject">NMObject</a>
+----<a class="link" href="NMDevice.html" title="NMDevice">NMDevice</a>
+----NMSerialDevice
- +----<a class="link" href="NMGsmDevice.html" title="NMGsmDevice">NMGsmDevice</a>
+----<a class="link" href="NMCdmaDevice.html" title="NMCdmaDevice">NMCdmaDevice</a>
+ +----<a class="link" href="NMGsmDevice.html" title="NMGsmDevice">NMGsmDevice</a>
</pre>
</div>
<div class="refsect1" title="Signals">
diff --git a/docs/libnm-glib/html/NMVPNConnection.html b/docs/libnm-glib/html/NMVPNConnection.html
new file mode 100644
index 000000000..fa9961a58
--- /dev/null
+++ b/docs/libnm-glib/html/NMVPNConnection.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NMVPNConnection</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="libnm-glib Reference Manual">
+<link rel="up" href="ch01.html" title="libnm-glib Objects">
+<link rel="prev" href="libnm-glib-nm-types.html" title="nm-types">
+<link rel="next" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
+<meta name="generator" content="GTK-Doc V1.15 (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-nm-types.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-glib Reference Manual</th>
+<td><a accesskey="n" href="libnm-glib-NMVPNPlugin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#NMVPNConnection.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#NMVPNConnection.description" class="shortcut">Description</a>
+  | 
+ <a href="#NMVPNConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#NMVPNConnection.properties" class="shortcut">Properties</a>
+  | 
+ <a href="#NMVPNConnection.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry" title="NMVPNConnection">
+<a name="NMVPNConnection"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="NMVPNConnection.top_of_page"></a>NMVPNConnection</span></h2>
+<p>NMVPNConnection</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv" title="Synopsis">
+<a name="NMVPNConnection.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define <a class="link" href="NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS" title="NM_VPN_CONNECTION_VPN_STATE">NM_VPN_CONNECTION_VPN_STATE</a>
+#define <a class="link" href="NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS" title="NM_VPN_CONNECTION_BANNER">NM_VPN_CONNECTION_BANNER</a>
+ <a class="link" href="NMVPNConnection.html#NMVPNConnection-struct" title="NMVPNConnection">NMVPNConnection</a>;
+ <a class="link" href="NMVPNConnection.html#NMVPNConnectionClass" title="NMVPNConnectionClass">NMVPNConnectionClass</a>;
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * <a class="link" href="NMVPNConnection.html#nm-vpn-connection-new" title="nm_vpn_connection_new ()">nm_vpn_connection_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *dbus_connection</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
+<span class="returnvalue">NMVPNConnectionState</span> <a class="link" href="NMVPNConnection.html#nm-vpn-connection-get-vpn-state" title="nm_vpn_connection_get_vpn_state ()">nm_vpn_connection_get_vpn_state</a> (<em class="parameter"><code><a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="NMVPNConnection.html#nm-vpn-connection-get-banner" title="nm_vpn_connection_get_banner ()">nm_vpn_connection_get_banner</a> (<em class="parameter"><code><a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="NMVPNConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<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="NMObject.html" title="NMObject">NMObject</a>
+ +----<a class="link" href="NMActiveConnection.html" title="NMActiveConnection">NMActiveConnection</a>
+ +----NMVPNConnection
+</pre>
+</div>
+<div class="refsect1" title="Properties">
+<a name="NMVPNConnection.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMVPNConnection.html#NMVPNConnection--banner" title='The "banner" property'>banner</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read
+ "<a class="link" href="NMVPNConnection.html#NMVPNConnection--vpn-state" title='The "vpn-state" property'>vpn-state</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
+</pre>
+</div>
+<div class="refsect1" title="Signals">
+<a name="NMVPNConnection.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+ "<a class="link" href="NMVPNConnection.html#NMVPNConnection-vpn-state-changed" title='The "vpn-state-changed" signal'>vpn-state-changed</a>" : Run First
+</pre>
+</div>
+<div class="refsect1" title="Description">
+<a name="NMVPNConnection.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1" title="Details">
+<a name="NMVPNConnection.details"></a><h2>Details</h2>
+<div class="refsect2" title="NM_VPN_CONNECTION_VPN_STATE">
+<a name="NM-VPN-CONNECTION-VPN-STATE:CAPS"></a><h3>NM_VPN_CONNECTION_VPN_STATE</h3>
+<pre class="programlisting">#define NM_VPN_CONNECTION_VPN_STATE "vpn-state"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NM_VPN_CONNECTION_BANNER">
+<a name="NM-VPN-CONNECTION-BANNER:CAPS"></a><h3>NM_VPN_CONNECTION_BANNER</h3>
+<pre class="programlisting">#define NM_VPN_CONNECTION_BANNER "banner"
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NMVPNConnection">
+<a name="NMVPNConnection-struct"></a><h3>NMVPNConnection</h3>
+<pre class="programlisting">typedef struct _NMVPNConnection NMVPNConnection;</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="NMVPNConnectionClass">
+<a name="NMVPNConnectionClass"></a><h3>NMVPNConnectionClass</h3>
+<pre class="programlisting">typedef struct {
+ NMActiveConnectionClass parent;
+
+ /* Signals */
+ void (*vpn_state_changed) (NMVPNConnection *connection,
+ NMVPNConnectionState state,
+ NMVPNConnectionStateReason reason);
+
+ /* Padding for future expansion */
+ void (*_reserved1) (void);
+ void (*_reserved2) (void);
+ void (*_reserved3) (void);
+ void (*_reserved4) (void);
+ void (*_reserved5) (void);
+ void (*_reserved6) (void);
+} NMVPNConnectionClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2" title="nm_vpn_connection_new ()">
+<a name="nm-vpn-connection-new"></a><h3>nm_vpn_connection_new ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * nm_vpn_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *dbus_connection</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *path</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>dbus_connection</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2" title="nm_vpn_connection_get_vpn_state ()">
+<a name="nm-vpn-connection-get-vpn-state"></a><h3>nm_vpn_connection_get_vpn_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">NMVPNConnectionState</span> nm_vpn_connection_get_vpn_state (<em class="parameter"><code><a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</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>vpn</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2" title="nm_vpn_connection_get_banner ()">
+<a name="nm-vpn-connection-get-banner"></a><h3>nm_vpn_connection_get_banner ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * nm_vpn_connection_get_banner (<em class="parameter"><code><a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</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>vpn</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1" title="Property Details">
+<a name="NMVPNConnection.property-details"></a><h2>Property Details</h2>
+<div class="refsect2" title='The "banner" property'>
+<a name="NMVPNConnection--banner"></a><h3>The <code class="literal">"banner"</code> property</h3>
+<pre class="programlisting"> "banner" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read</pre>
+<p>
+The VPN login banner of the active VPN connection.
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2" title='The "vpn-state" property'>
+<a name="NMVPNConnection--vpn-state"></a><h3>The <code class="literal">"vpn-state"</code> property</h3>
+<pre class="programlisting"> "vpn-state" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read</pre>
+<p>
+The VPN state of the active VPN connection.
+</p>
+<p>Allowed values: &lt;= 7</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1" title="Signal Details">
+<a name="NMVPNConnection.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2" title='The "vpn-state-changed" signal'>
+<a name="NMVPNConnection-vpn-state-changed"></a><h3>The <code class="literal">"vpn-state-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *nmvpnconnection,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg2,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run First</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>nmvpnconnection</code></em> :</span></p></td>
+<td>the object which received the signal.
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg1</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>arg2</code></em> :</span></p></td>
+<td>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.15</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/ch01.html b/docs/libnm-glib/html/ch01.html
index ffab2062d..3b0b32400 100644
--- a/docs/libnm-glib/html/ch01.html
+++ b/docs/libnm-glib/html/ch01.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>libnm-glib Objects</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="index.html" title="libnm-glib Reference Manual">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter" title="libnm-glib Objects">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id470591"></a>libnm-glib Objects</h2></div></div></div>
+<a name="id2975572"></a>libnm-glib Objects</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="NMClient.html">NMClient</a></span><span class="refpurpose"></span>
@@ -48,7 +48,7 @@
<span class="refentrytitle"><a href="NMCdmaDevice.html">NMCdmaDevice</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMDeviceBt.html">NMDeviceBt</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMDeviceBt.html">NMDeviceBt</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMAccessPoint.html">NMAccessPoint</a></span><span class="refpurpose"></span>
@@ -66,43 +66,43 @@
<span class="refentrytitle"><a href="NMDHCP6Config.html">NMDHCP6Config</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMExportedConnection.html">NMExportedConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMExportedConnection.html">NMExportedConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMObject.html">NMObject</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMRemoteConnection.html">NMRemoteConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMRemoteConnection.html">NMRemoteConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMRemoteSettings.html">NMRemoteSettings</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMRemoteSettings.html">NMRemoteSettings</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMRemoteSettingsSystem.html">NMRemoteSettingsSystem</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettingsConnection.html">nm-settings-connection-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettingsConnection.html">NMSettingsConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettings.html">nm-settings-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettings.html">NMSettings</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMSettingsService.html">NMSettingsService</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettingsSystem.html">nm-settings-system-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettingsSystem.html">NMSettingsSystem</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-nm-types.html">nm-types</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMVPNConnection.html">NMVPNConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMVPNConnection.html">NMVPNConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMVPNPlugin.html">NMVPNPlugin</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">nm-vpn-plugin-ui-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">NMVpnPluginUi</a></span><span class="refpurpose"></span>
</dt>
</dl></div>
</div>
diff --git a/docs/libnm-glib/html/index.html b/docs/libnm-glib/html/index.html
index a8362fcc7..02d33be82 100644
--- a/docs/libnm-glib/html/index.html
+++ b/docs/libnm-glib/html/index.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>libnm-glib Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="next" href="ch01.html" title="libnm-glib Objects">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
@@ -50,7 +50,7 @@
<span class="refentrytitle"><a href="NMCdmaDevice.html">NMCdmaDevice</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMDeviceBt.html">NMDeviceBt</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMDeviceBt.html">NMDeviceBt</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMAccessPoint.html">NMAccessPoint</a></span><span class="refpurpose"></span>
@@ -68,43 +68,43 @@
<span class="refentrytitle"><a href="NMDHCP6Config.html">NMDHCP6Config</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMExportedConnection.html">NMExportedConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMExportedConnection.html">NMExportedConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="NMObject.html">NMObject</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMRemoteConnection.html">NMRemoteConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMRemoteConnection.html">NMRemoteConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMRemoteSettings.html">NMRemoteSettings</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMRemoteSettings.html">NMRemoteSettings</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMRemoteSettingsSystem.html">NMRemoteSettingsSystem</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettingsConnection.html">nm-settings-connection-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettingsConnection.html">NMSettingsConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettings.html">nm-settings-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettings.html">NMSettings</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMSettingsService.html">NMSettingsService</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMSettingsSystem.html">nm-settings-system-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMSettingsSystem.html">NMSettingsSystem</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-nm-types.html">nm-types</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMVPNConnection.html">NMVPNConnection</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="NMVPNConnection.html">NMVPNConnection</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="libnm-glib-NMVPNPlugin.html">NMVPNPlugin</a></span><span class="refpurpose"></span>
</dt>
<dt>
-<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">nm-vpn-plugin-ui-interface</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="libnm-glib-NMVpnPluginUi.html">NMVpnPluginUi</a></span><span class="refpurpose"></span>
</dt>
</dl></dd>
</dl></div>
diff --git a/docs/libnm-glib/html/index.sgml b/docs/libnm-glib/html/index.sgml
index 0b929b1ca..e3c76b217 100644
--- a/docs/libnm-glib/html/index.sgml
+++ b/docs/libnm-glib/html/index.sgml
@@ -129,6 +129,7 @@
<ANCHOR id="NMDevice--driver" href="libnm-glib/NMDevice.html#NMDevice--driver">
<ANCHOR id="NMDevice--firmware-missing" href="libnm-glib/NMDevice.html#NMDevice--firmware-missing">
<ANCHOR id="NMDevice--interface" href="libnm-glib/NMDevice.html#NMDevice--interface">
+<ANCHOR id="NMDevice--ip-interface" href="libnm-glib/NMDevice.html#NMDevice--ip-interface">
<ANCHOR id="NMDevice--ip4-config" href="libnm-glib/NMDevice.html#NMDevice--ip4-config">
<ANCHOR id="NMDevice--ip6-config" href="libnm-glib/NMDevice.html#NMDevice--ip6-config">
<ANCHOR id="NMDevice--managed" href="libnm-glib/NMDevice.html#NMDevice--managed">
@@ -222,19 +223,25 @@
<ANCHOR id="NMCdmaDevice-struct" href="libnm-glib/NMCdmaDevice.html#NMCdmaDevice-struct">
<ANCHOR id="NMCdmaDeviceClass" href="libnm-glib/NMCdmaDevice.html#NMCdmaDeviceClass">
<ANCHOR id="nm-cdma-device-new" href="libnm-glib/NMCdmaDevice.html#nm-cdma-device-new">
-<ANCHOR id="libnm-glib-NMDeviceBt" href="libnm-glib/libnm-glib-NMDeviceBt.html">
-<ANCHOR id="libnm-glib-NMDeviceBt.synopsis" href="libnm-glib/libnm-glib-NMDeviceBt.html#libnm-glib-NMDeviceBt.synopsis">
-<ANCHOR id="libnm-glib-NMDeviceBt.description" href="libnm-glib/libnm-glib-NMDeviceBt.html#libnm-glib-NMDeviceBt.description">
-<ANCHOR id="libnm-glib-NMDeviceBt.details" href="libnm-glib/libnm-glib-NMDeviceBt.html#libnm-glib-NMDeviceBt.details">
-<ANCHOR id="NM-DEVICE-BT-HW-ADDRESS:CAPS" href="libnm-glib/libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS">
-<ANCHOR id="NM-DEVICE-BT-NAME:CAPS" href="libnm-glib/libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS">
-<ANCHOR id="NM-DEVICE-BT-CAPABILITIES:CAPS" href="libnm-glib/libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS">
-<ANCHOR id="NMDeviceBt" href="libnm-glib/libnm-glib-NMDeviceBt.html#NMDeviceBt">
-<ANCHOR id="NMDeviceBtClass" href="libnm-glib/libnm-glib-NMDeviceBt.html#NMDeviceBtClass">
-<ANCHOR id="nm-device-bt-new" href="libnm-glib/libnm-glib-NMDeviceBt.html#nm-device-bt-new">
-<ANCHOR id="nm-device-bt-get-hw-address" href="libnm-glib/libnm-glib-NMDeviceBt.html#nm-device-bt-get-hw-address">
-<ANCHOR id="nm-device-bt-get-name" href="libnm-glib/libnm-glib-NMDeviceBt.html#nm-device-bt-get-name">
-<ANCHOR id="nm-device-bt-get-capabilities" href="libnm-glib/libnm-glib-NMDeviceBt.html#nm-device-bt-get-capabilities">
+<ANCHOR id="NMDeviceBt" href="libnm-glib/NMDeviceBt.html">
+<ANCHOR id="NMDeviceBt.synopsis" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.synopsis">
+<ANCHOR id="NMDeviceBt.object-hierarchy" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.object-hierarchy">
+<ANCHOR id="NMDeviceBt.properties" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.properties">
+<ANCHOR id="NMDeviceBt.description" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.description">
+<ANCHOR id="NMDeviceBt.details" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.details">
+<ANCHOR id="NM-DEVICE-BT-HW-ADDRESS:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS">
+<ANCHOR id="NM-DEVICE-BT-NAME:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS">
+<ANCHOR id="NM-DEVICE-BT-CAPABILITIES:CAPS" href="libnm-glib/NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS">
+<ANCHOR id="NMDeviceBt-struct" href="libnm-glib/NMDeviceBt.html#NMDeviceBt-struct">
+<ANCHOR id="NMDeviceBtClass" href="libnm-glib/NMDeviceBt.html#NMDeviceBtClass">
+<ANCHOR id="nm-device-bt-new" href="libnm-glib/NMDeviceBt.html#nm-device-bt-new">
+<ANCHOR id="nm-device-bt-get-hw-address" href="libnm-glib/NMDeviceBt.html#nm-device-bt-get-hw-address">
+<ANCHOR id="nm-device-bt-get-name" href="libnm-glib/NMDeviceBt.html#nm-device-bt-get-name">
+<ANCHOR id="nm-device-bt-get-capabilities" href="libnm-glib/NMDeviceBt.html#nm-device-bt-get-capabilities">
+<ANCHOR id="NMDeviceBt.property-details" href="libnm-glib/NMDeviceBt.html#NMDeviceBt.property-details">
+<ANCHOR id="NMDeviceBt--bt-capabilities" href="libnm-glib/NMDeviceBt.html#NMDeviceBt--bt-capabilities">
+<ANCHOR id="NMDeviceBt--hw-address" href="libnm-glib/NMDeviceBt.html#NMDeviceBt--hw-address">
+<ANCHOR id="NMDeviceBt--name" href="libnm-glib/NMDeviceBt.html#NMDeviceBt--name">
<ANCHOR id="NMAccessPoint" href="libnm-glib/NMAccessPoint.html">
<ANCHOR id="NMAccessPoint.synopsis" href="libnm-glib/NMAccessPoint.html#NMAccessPoint.synopsis">
<ANCHOR id="NMAccessPoint.object-hierarchy" href="libnm-glib/NMAccessPoint.html#NMAccessPoint.object-hierarchy">
@@ -339,6 +346,7 @@
<ANCHOR id="NMDHCP6Config" href="libnm-glib/NMDHCP6Config.html">
<ANCHOR id="NMDHCP6Config.synopsis" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.synopsis">
<ANCHOR id="NMDHCP6Config.object-hierarchy" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.object-hierarchy">
+<ANCHOR id="NMDHCP6Config.properties" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.properties">
<ANCHOR id="NMDHCP6Config.description" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.description">
<ANCHOR id="NMDHCP6Config.details" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.details">
<ANCHOR id="NMDHCP6Config-struct" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config-struct">
@@ -347,13 +355,17 @@
<ANCHOR id="nm-dhcp6-config-new" href="libnm-glib/NMDHCP6Config.html#nm-dhcp6-config-new">
<ANCHOR id="nm-dhcp6-config-get-options" href="libnm-glib/NMDHCP6Config.html#nm-dhcp6-config-get-options">
<ANCHOR id="nm-dhcp6-config-get-one-option" href="libnm-glib/NMDHCP6Config.html#nm-dhcp6-config-get-one-option">
-<ANCHOR id="libnm-glib-NMExportedConnection" href="libnm-glib/libnm-glib-NMExportedConnection.html">
-<ANCHOR id="libnm-glib-NMExportedConnection.synopsis" href="libnm-glib/libnm-glib-NMExportedConnection.html#libnm-glib-NMExportedConnection.synopsis">
-<ANCHOR id="libnm-glib-NMExportedConnection.description" href="libnm-glib/libnm-glib-NMExportedConnection.html#libnm-glib-NMExportedConnection.description">
-<ANCHOR id="libnm-glib-NMExportedConnection.details" href="libnm-glib/libnm-glib-NMExportedConnection.html#libnm-glib-NMExportedConnection.details">
-<ANCHOR id="NMExportedConnection" href="libnm-glib/libnm-glib-NMExportedConnection.html#NMExportedConnection">
-<ANCHOR id="NMExportedConnectionClass" href="libnm-glib/libnm-glib-NMExportedConnection.html#NMExportedConnectionClass">
-<ANCHOR id="nm-exported-connection-new" href="libnm-glib/libnm-glib-NMExportedConnection.html#nm-exported-connection-new">
+<ANCHOR id="NMDHCP6Config.property-details" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config.property-details">
+<ANCHOR id="NMDHCP6Config--options" href="libnm-glib/NMDHCP6Config.html#NMDHCP6Config--options">
+<ANCHOR id="NMExportedConnection" href="libnm-glib/NMExportedConnection.html">
+<ANCHOR id="NMExportedConnection.synopsis" href="libnm-glib/NMExportedConnection.html#NMExportedConnection.synopsis">
+<ANCHOR id="NMExportedConnection.object-hierarchy" href="libnm-glib/NMExportedConnection.html#NMExportedConnection.object-hierarchy">
+<ANCHOR id="NMExportedConnection.implemented-interfaces" href="libnm-glib/NMExportedConnection.html#NMExportedConnection.implemented-interfaces">
+<ANCHOR id="NMExportedConnection.description" href="libnm-glib/NMExportedConnection.html#NMExportedConnection.description">
+<ANCHOR id="NMExportedConnection.details" href="libnm-glib/NMExportedConnection.html#NMExportedConnection.details">
+<ANCHOR id="NMExportedConnection-struct" href="libnm-glib/NMExportedConnection.html#NMExportedConnection-struct">
+<ANCHOR id="NMExportedConnectionClass" href="libnm-glib/NMExportedConnection.html#NMExportedConnectionClass">
+<ANCHOR id="nm-exported-connection-new" href="libnm-glib/NMExportedConnection.html#nm-exported-connection-new">
<ANCHOR id="NMObject" href="libnm-glib/NMObject.html">
<ANCHOR id="NMObject.synopsis" href="libnm-glib/NMObject.html#NMObject.synopsis">
<ANCHOR id="NMObject.object-hierarchy" href="libnm-glib/NMObject.html#NMObject.object-hierarchy">
@@ -369,23 +381,36 @@
<ANCHOR id="NMObject.property-details" href="libnm-glib/NMObject.html#NMObject.property-details">
<ANCHOR id="NMObject--dbus-connection" href="libnm-glib/NMObject.html#NMObject--dbus-connection">
<ANCHOR id="NMObject--dbus-path" href="libnm-glib/NMObject.html#NMObject--dbus-path">
-<ANCHOR id="libnm-glib-NMRemoteConnection" href="libnm-glib/libnm-glib-NMRemoteConnection.html">
-<ANCHOR id="libnm-glib-NMRemoteConnection.synopsis" href="libnm-glib/libnm-glib-NMRemoteConnection.html#libnm-glib-NMRemoteConnection.synopsis">
-<ANCHOR id="libnm-glib-NMRemoteConnection.description" href="libnm-glib/libnm-glib-NMRemoteConnection.html#libnm-glib-NMRemoteConnection.description">
-<ANCHOR id="libnm-glib-NMRemoteConnection.details" href="libnm-glib/libnm-glib-NMRemoteConnection.html#libnm-glib-NMRemoteConnection.details">
-<ANCHOR id="NMRemoteConnection" href="libnm-glib/libnm-glib-NMRemoteConnection.html#NMRemoteConnection">
-<ANCHOR id="NMRemoteConnectionClass" href="libnm-glib/libnm-glib-NMRemoteConnection.html#NMRemoteConnectionClass">
-<ANCHOR id="nm-remote-connection-new" href="libnm-glib/libnm-glib-NMRemoteConnection.html#nm-remote-connection-new">
-<ANCHOR id="libnm-glib-NMRemoteSettings" href="libnm-glib/libnm-glib-NMRemoteSettings.html">
-<ANCHOR id="libnm-glib-NMRemoteSettings.synopsis" href="libnm-glib/libnm-glib-NMRemoteSettings.html#libnm-glib-NMRemoteSettings.synopsis">
-<ANCHOR id="libnm-glib-NMRemoteSettings.description" href="libnm-glib/libnm-glib-NMRemoteSettings.html#libnm-glib-NMRemoteSettings.description">
-<ANCHOR id="libnm-glib-NMRemoteSettings.details" href="libnm-glib/libnm-glib-NMRemoteSettings.html#libnm-glib-NMRemoteSettings.details">
-<ANCHOR id="NM-REMOTE-SETTINGS-BUS:CAPS" href="libnm-glib/libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS">
-<ANCHOR id="NM-REMOTE-SETTINGS-SCOPE:CAPS" href="libnm-glib/libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS">
-<ANCHOR id="NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS" href="libnm-glib/libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS">
-<ANCHOR id="NMRemoteSettings" href="libnm-glib/libnm-glib-NMRemoteSettings.html#NMRemoteSettings">
-<ANCHOR id="NMRemoteSettingsClass" href="libnm-glib/libnm-glib-NMRemoteSettings.html#NMRemoteSettingsClass">
-<ANCHOR id="nm-remote-settings-new" href="libnm-glib/libnm-glib-NMRemoteSettings.html#nm-remote-settings-new">
+<ANCHOR id="NMRemoteConnection" href="libnm-glib/NMRemoteConnection.html">
+<ANCHOR id="NMRemoteConnection.synopsis" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.synopsis">
+<ANCHOR id="NMRemoteConnection.object-hierarchy" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.object-hierarchy">
+<ANCHOR id="NMRemoteConnection.implemented-interfaces" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.implemented-interfaces">
+<ANCHOR id="NMRemoteConnection.properties" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.properties">
+<ANCHOR id="NMRemoteConnection.description" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.description">
+<ANCHOR id="NMRemoteConnection.details" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.details">
+<ANCHOR id="NMRemoteConnection-struct" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection-struct">
+<ANCHOR id="NMRemoteConnectionClass" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnectionClass">
+<ANCHOR id="nm-remote-connection-new" href="libnm-glib/NMRemoteConnection.html#nm-remote-connection-new">
+<ANCHOR id="NMRemoteConnection.property-details" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection.property-details">
+<ANCHOR id="NMRemoteConnection--bus" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection--bus">
+<ANCHOR id="NMRemoteConnection--init-result" href="libnm-glib/NMRemoteConnection.html#NMRemoteConnection--init-result">
+<ANCHOR id="NMRemoteSettings" href="libnm-glib/NMRemoteSettings.html">
+<ANCHOR id="NMRemoteSettings.synopsis" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.synopsis">
+<ANCHOR id="NMRemoteSettings.object-hierarchy" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.object-hierarchy">
+<ANCHOR id="NMRemoteSettings.implemented-interfaces" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.implemented-interfaces">
+<ANCHOR id="NMRemoteSettings.properties" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.properties">
+<ANCHOR id="NMRemoteSettings.description" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.description">
+<ANCHOR id="NMRemoteSettings.details" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.details">
+<ANCHOR id="NM-REMOTE-SETTINGS-BUS:CAPS" href="libnm-glib/NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS">
+<ANCHOR id="NM-REMOTE-SETTINGS-SCOPE:CAPS" href="libnm-glib/NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS">
+<ANCHOR id="NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS" href="libnm-glib/NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS">
+<ANCHOR id="NMRemoteSettings-struct" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings-struct">
+<ANCHOR id="NMRemoteSettingsClass" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettingsClass">
+<ANCHOR id="nm-remote-settings-new" href="libnm-glib/NMRemoteSettings.html#nm-remote-settings-new">
+<ANCHOR id="NMRemoteSettings.property-details" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings.property-details">
+<ANCHOR id="NMRemoteSettings--bus" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings--bus">
+<ANCHOR id="NMRemoteSettings--scope" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings--scope">
+<ANCHOR id="NMRemoteSettings--service-running" href="libnm-glib/NMRemoteSettings.html#NMRemoteSettings--service-running">
<ANCHOR id="libnm-glib-NMRemoteSettingsSystem" href="libnm-glib/libnm-glib-NMRemoteSettingsSystem.html">
<ANCHOR id="libnm-glib-NMRemoteSettingsSystem.synopsis" href="libnm-glib/libnm-glib-NMRemoteSettingsSystem.html#libnm-glib-NMRemoteSettingsSystem.synopsis">
<ANCHOR id="libnm-glib-NMRemoteSettingsSystem.description" href="libnm-glib/libnm-glib-NMRemoteSettingsSystem.html#libnm-glib-NMRemoteSettingsSystem.description">
@@ -395,11 +420,15 @@
<ANCHOR id="nm-remote-settings-system-new" href="libnm-glib/libnm-glib-NMRemoteSettingsSystem.html#nm-remote-settings-system-new">
<ANCHOR id="libnm-glib-NMSettingsConnection" href="libnm-glib/libnm-glib-NMSettingsConnection.html">
<ANCHOR id="libnm-glib-NMSettingsConnection.synopsis" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.synopsis">
+<ANCHOR id="NMSettingsConnectionInterface" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface">
+<ANCHOR id="libnm-glib-NMSettingsConnection.object-hierarchy" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.object-hierarchy">
+<ANCHOR id="libnm-glib-NMSettingsConnection.prerequisites" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.prerequisites">
+<ANCHOR id="libnm-glib-NMSettingsConnection.implementations" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.implementations">
<ANCHOR id="libnm-glib-NMSettingsConnection.description" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.description">
<ANCHOR id="libnm-glib-NMSettingsConnection.details" href="libnm-glib/libnm-glib-NMSettingsConnection.html#libnm-glib-NMSettingsConnection.details">
<ANCHOR id="NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS">
<ANCHOR id="NM-SETTINGS-CONNECTION-INTERFACE-REMOVED:CAPS" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-REMOVED:CAPS">
-<ANCHOR id="NMSettingsConnectionInterface" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface">
+<ANCHOR id="NMSettingsConnectionInterface-struct" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface-struct">
<ANCHOR id="NMSettingsConnectionInterfaceUpdateFunc" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc">
<ANCHOR id="NMSettingsConnectionInterfaceDeleteFunc" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc">
<ANCHOR id="NMSettingsConnectionInterfaceGetSecretsFunc" href="libnm-glib/libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceGetSecretsFunc">
@@ -409,6 +438,10 @@
<ANCHOR id="nm-settings-connection-interface-emit-updated" href="libnm-glib/libnm-glib-NMSettingsConnection.html#nm-settings-connection-interface-emit-updated">
<ANCHOR id="libnm-glib-NMSettings" href="libnm-glib/libnm-glib-NMSettings.html">
<ANCHOR id="libnm-glib-NMSettings.synopsis" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.synopsis">
+<ANCHOR id="NMSettingsInterface" href="libnm-glib/libnm-glib-NMSettings.html#NMSettingsInterface">
+<ANCHOR id="libnm-glib-NMSettings.object-hierarchy" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.object-hierarchy">
+<ANCHOR id="libnm-glib-NMSettings.prerequisites" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.prerequisites">
+<ANCHOR id="libnm-glib-NMSettings.implementations" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.implementations">
<ANCHOR id="libnm-glib-NMSettings.description" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.description">
<ANCHOR id="libnm-glib-NMSettings.details" href="libnm-glib/libnm-glib-NMSettings.html#libnm-glib-NMSettings.details">
<ANCHOR id="NMSettingsInterfaceError" href="libnm-glib/libnm-glib-NMSettings.html#NMSettingsInterfaceError">
@@ -417,7 +450,7 @@
<ANCHOR id="NM-TYPE-SETTINGS-INTERFACE-ERROR:CAPS" href="libnm-glib/libnm-glib-NMSettings.html#NM-TYPE-SETTINGS-INTERFACE-ERROR:CAPS">
<ANCHOR id="NM-SETTINGS-INTERFACE-NEW-CONNECTION:CAPS" href="libnm-glib/libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-NEW-CONNECTION:CAPS">
<ANCHOR id="NM-SETTINGS-INTERFACE-CONNECTIONS-READ:CAPS" href="libnm-glib/libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-CONNECTIONS-READ:CAPS">
-<ANCHOR id="NMSettingsInterface" href="libnm-glib/libnm-glib-NMSettings.html#NMSettingsInterface">
+<ANCHOR id="NMSettingsInterface-struct" href="libnm-glib/libnm-glib-NMSettings.html#NMSettingsInterface-struct">
<ANCHOR id="NMSettingsAddConnectionFunc" href="libnm-glib/libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc">
<ANCHOR id="nm-settings-interface-get-type" href="libnm-glib/libnm-glib-NMSettings.html#nm-settings-interface-get-type">
<ANCHOR id="nm-settings-interface-list-connections" href="libnm-glib/libnm-glib-NMSettings.html#nm-settings-interface-list-connections">
@@ -466,17 +499,25 @@
<ANCHOR id="nm-ip6-address-array-get-type" href="libnm-glib/libnm-glib-nm-types.html#nm-ip6-address-array-get-type">
<ANCHOR id="NM-TYPE-IP6-ROUTE-OBJECT-ARRAY:CAPS" href="libnm-glib/libnm-glib-nm-types.html#NM-TYPE-IP6-ROUTE-OBJECT-ARRAY:CAPS">
<ANCHOR id="nm-ip6-route-object-array-get-type" href="libnm-glib/libnm-glib-nm-types.html#nm-ip6-route-object-array-get-type">
-<ANCHOR id="libnm-glib-NMVPNConnection" href="libnm-glib/libnm-glib-NMVPNConnection.html">
-<ANCHOR id="libnm-glib-NMVPNConnection.synopsis" href="libnm-glib/libnm-glib-NMVPNConnection.html#libnm-glib-NMVPNConnection.synopsis">
-<ANCHOR id="libnm-glib-NMVPNConnection.description" href="libnm-glib/libnm-glib-NMVPNConnection.html#libnm-glib-NMVPNConnection.description">
-<ANCHOR id="libnm-glib-NMVPNConnection.details" href="libnm-glib/libnm-glib-NMVPNConnection.html#libnm-glib-NMVPNConnection.details">
-<ANCHOR id="NM-VPN-CONNECTION-VPN-STATE:CAPS" href="libnm-glib/libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS">
-<ANCHOR id="NM-VPN-CONNECTION-BANNER:CAPS" href="libnm-glib/libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS">
-<ANCHOR id="NMVPNConnection" href="libnm-glib/libnm-glib-NMVPNConnection.html#NMVPNConnection">
-<ANCHOR id="NMVPNConnectionClass" href="libnm-glib/libnm-glib-NMVPNConnection.html#NMVPNConnectionClass">
-<ANCHOR id="nm-vpn-connection-new" href="libnm-glib/libnm-glib-NMVPNConnection.html#nm-vpn-connection-new">
-<ANCHOR id="nm-vpn-connection-get-vpn-state" href="libnm-glib/libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-vpn-state">
-<ANCHOR id="nm-vpn-connection-get-banner" href="libnm-glib/libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-banner">
+<ANCHOR id="NMVPNConnection" href="libnm-glib/NMVPNConnection.html">
+<ANCHOR id="NMVPNConnection.synopsis" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.synopsis">
+<ANCHOR id="NMVPNConnection.object-hierarchy" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.object-hierarchy">
+<ANCHOR id="NMVPNConnection.properties" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.properties">
+<ANCHOR id="NMVPNConnection.signals" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.signals">
+<ANCHOR id="NMVPNConnection.description" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.description">
+<ANCHOR id="NMVPNConnection.details" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.details">
+<ANCHOR id="NM-VPN-CONNECTION-VPN-STATE:CAPS" href="libnm-glib/NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS">
+<ANCHOR id="NM-VPN-CONNECTION-BANNER:CAPS" href="libnm-glib/NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS">
+<ANCHOR id="NMVPNConnection-struct" href="libnm-glib/NMVPNConnection.html#NMVPNConnection-struct">
+<ANCHOR id="NMVPNConnectionClass" href="libnm-glib/NMVPNConnection.html#NMVPNConnectionClass">
+<ANCHOR id="nm-vpn-connection-new" href="libnm-glib/NMVPNConnection.html#nm-vpn-connection-new">
+<ANCHOR id="nm-vpn-connection-get-vpn-state" href="libnm-glib/NMVPNConnection.html#nm-vpn-connection-get-vpn-state">
+<ANCHOR id="nm-vpn-connection-get-banner" href="libnm-glib/NMVPNConnection.html#nm-vpn-connection-get-banner">
+<ANCHOR id="NMVPNConnection.property-details" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.property-details">
+<ANCHOR id="NMVPNConnection--banner" href="libnm-glib/NMVPNConnection.html#NMVPNConnection--banner">
+<ANCHOR id="NMVPNConnection--vpn-state" href="libnm-glib/NMVPNConnection.html#NMVPNConnection--vpn-state">
+<ANCHOR id="NMVPNConnection.signal-details" href="libnm-glib/NMVPNConnection.html#NMVPNConnection.signal-details">
+<ANCHOR id="NMVPNConnection-vpn-state-changed" href="libnm-glib/NMVPNConnection.html#NMVPNConnection-vpn-state-changed">
<ANCHOR id="libnm-glib-NMVPNPlugin" href="libnm-glib/libnm-glib-NMVPNPlugin.html">
<ANCHOR id="libnm-glib-NMVPNPlugin.synopsis" href="libnm-glib/libnm-glib-NMVPNPlugin.html#libnm-glib-NMVPNPlugin.synopsis">
<ANCHOR id="libnm-glib-NMVPNPlugin.description" href="libnm-glib/libnm-glib-NMVPNPlugin.html#libnm-glib-NMVPNPlugin.description">
diff --git a/docs/libnm-glib/html/libnm-glib-NMRemoteConnection.html b/docs/libnm-glib/html/libnm-glib-NMRemoteConnection.html
deleted file mode 100644
index 74a87b65d..000000000
--- a/docs/libnm-glib/html/libnm-glib-NMRemoteConnection.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>NMRemoteConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
-<link rel="home" href="index.html" title="libnm-glib Reference Manual">
-<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="NMObject.html" title="NMObject">
-<link rel="next" href="libnm-glib-NMRemoteSettings.html" title="NMRemoteSettings">
-<meta name="generator" content="GTK-Doc V1.15 (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="NMObject.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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMRemoteSettings.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-NMRemoteConnection.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#libnm-glib-NMRemoteConnection.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="NMRemoteConnection">
-<a name="libnm-glib-NMRemoteConnection"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMRemoteConnection.top_of_page"></a>NMRemoteConnection</span></h2>
-<p>NMRemoteConnection</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libnm-glib-NMRemoteConnection.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"> <a class="link" href="libnm-glib-NMRemoteConnection.html#NMRemoteConnection" title="NMRemoteConnection">NMRemoteConnection</a>;
- <a class="link" href="libnm-glib-NMRemoteConnection.html#NMRemoteConnectionClass" title="NMRemoteConnectionClass">NMRemoteConnectionClass</a>;
-<a class="link" href="libnm-glib-NMRemoteConnection.html#NMRemoteConnection" title="NMRemoteConnection"><span class="returnvalue">NMRemoteConnection</span></a> * <a class="link" href="libnm-glib-NMRemoteConnection.html#nm-remote-connection-new" title="nm_remote_connection_new ()">nm_remote_connection_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libnm-glib-NMRemoteConnection.description"></a><h2>Description</h2>
-<p>
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libnm-glib-NMRemoteConnection.details"></a><h2>Details</h2>
-<div class="refsect2" title="NMRemoteConnection">
-<a name="NMRemoteConnection"></a><h3>NMRemoteConnection</h3>
-<pre class="programlisting">typedef struct {
- NMConnection parent;
-} NMRemoteConnection;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NMRemoteConnectionClass">
-<a name="NMRemoteConnectionClass"></a><h3>NMRemoteConnectionClass</h3>
-<pre class="programlisting">typedef struct {
- NMConnectionClass parent_class;
-
- /* Padding for future expansion */
- void (*_reserved1) (void);
- void (*_reserved2) (void);
- void (*_reserved3) (void);
- void (*_reserved4) (void);
- void (*_reserved5) (void);
- void (*_reserved6) (void);
-} NMRemoteConnectionClass;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="nm_remote_connection_new ()">
-<a name="nm-remote-connection-new"></a><h3>nm_remote_connection_new ()</h3>
-<pre class="programlisting"><a class="link" href="libnm-glib-NMRemoteConnection.html#NMRemoteConnection" title="NMRemoteConnection"><span class="returnvalue">NMRemoteConnection</span></a> * nm_remote_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
-<p>
-Creates a new object representing the remote connection.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
-<td>a valid and connected D-Bus connection
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
-<td>the Connection scope (either user or system)
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>the D-Bus path of the connection as exported by the settings service
- indicated by <em class="parameter"><code>scope</code></em>
-</td>
-</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>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.15</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-NMRemoteSettings.html b/docs/libnm-glib/html/libnm-glib-NMRemoteSettings.html
deleted file mode 100644
index 7ea150832..000000000
--- a/docs/libnm-glib/html/libnm-glib-NMRemoteSettings.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>NMRemoteSettings</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
-<link rel="home" href="index.html" title="libnm-glib Reference Manual">
-<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMRemoteConnection.html" title="NMRemoteConnection">
-<link rel="next" href="libnm-glib-NMRemoteSettingsSystem.html" title="NMRemoteSettingsSystem">
-<meta name="generator" content="GTK-Doc V1.15 (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-NMRemoteConnection.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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMRemoteSettingsSystem.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-NMRemoteSettings.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#libnm-glib-NMRemoteSettings.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="NMRemoteSettings">
-<a name="libnm-glib-NMRemoteSettings"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMRemoteSettings.top_of_page"></a>NMRemoteSettings</span></h2>
-<p>NMRemoteSettings</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libnm-glib-NMRemoteSettings.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define <a class="link" href="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS" title="NM_REMOTE_SETTINGS_BUS">NM_REMOTE_SETTINGS_BUS</a>
-#define <a class="link" href="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS" title="NM_REMOTE_SETTINGS_SCOPE">NM_REMOTE_SETTINGS_SCOPE</a>
-#define <a class="link" href="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS" title="NM_REMOTE_SETTINGS_SERVICE_RUNNING">NM_REMOTE_SETTINGS_SERVICE_RUNNING</a>
- <a class="link" href="libnm-glib-NMRemoteSettings.html#NMRemoteSettings" title="NMRemoteSettings">NMRemoteSettings</a>;
- <a class="link" href="libnm-glib-NMRemoteSettings.html#NMRemoteSettingsClass" title="NMRemoteSettingsClass">NMRemoteSettingsClass</a>;
-<a class="link" href="libnm-glib-NMRemoteSettings.html#NMRemoteSettings" title="NMRemoteSettings"><span class="returnvalue">NMRemoteSettings</span></a> * <a class="link" href="libnm-glib-NMRemoteSettings.html#nm-remote-settings-new" title="nm_remote_settings_new ()">nm_remote_settings_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libnm-glib-NMRemoteSettings.description"></a><h2>Description</h2>
-<p>
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libnm-glib-NMRemoteSettings.details"></a><h2>Details</h2>
-<div class="refsect2" title="NM_REMOTE_SETTINGS_BUS">
-<a name="NM-REMOTE-SETTINGS-BUS:CAPS"></a><h3>NM_REMOTE_SETTINGS_BUS</h3>
-<pre class="programlisting">#define NM_REMOTE_SETTINGS_BUS "bus"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NM_REMOTE_SETTINGS_SCOPE">
-<a name="NM-REMOTE-SETTINGS-SCOPE:CAPS"></a><h3>NM_REMOTE_SETTINGS_SCOPE</h3>
-<pre class="programlisting">#define NM_REMOTE_SETTINGS_SCOPE "scope"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NM_REMOTE_SETTINGS_SERVICE_RUNNING">
-<a name="NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"></a><h3>NM_REMOTE_SETTINGS_SERVICE_RUNNING</h3>
-<pre class="programlisting">#define NM_REMOTE_SETTINGS_SERVICE_RUNNING "service-running"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NMRemoteSettings">
-<a name="NMRemoteSettings"></a><h3>NMRemoteSettings</h3>
-<pre class="programlisting">typedef struct {
- GObject parent;
-} NMRemoteSettings;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NMRemoteSettingsClass">
-<a name="NMRemoteSettingsClass"></a><h3>NMRemoteSettingsClass</h3>
-<pre class="programlisting">typedef struct {
- GObjectClass parent;
-
- /* Padding for future expansion */
- void (*_reserved1) (void);
- void (*_reserved2) (void);
- void (*_reserved3) (void);
- void (*_reserved4) (void);
- void (*_reserved5) (void);
- void (*_reserved6) (void);
-} NMRemoteSettingsClass;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="nm_remote_settings_new ()">
-<a name="nm-remote-settings-new"></a><h3>nm_remote_settings_new ()</h3>
-<pre class="programlisting"><a class="link" href="libnm-glib-NMRemoteSettings.html#NMRemoteSettings" title="NMRemoteSettings"><span class="returnvalue">NMRemoteSettings</span></a> * nm_remote_settings_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *bus</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);</pre>
-<p>
-Creates a new object representing the remote settings service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
-<td>a valid and connected D-Bus connection
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>scope</code></em> :</span></p></td>
-<td>the settings service scope (either user or system)
-</td>
-</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>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.15</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-NMRemoteSettingsSystem.html b/docs/libnm-glib/html/libnm-glib-NMRemoteSettingsSystem.html
index 5eb2e9700..d87a2fd26 100644
--- a/docs/libnm-glib/html/libnm-glib-NMRemoteSettingsSystem.html
+++ b/docs/libnm-glib/html/libnm-glib-NMRemoteSettingsSystem.html
@@ -3,18 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMRemoteSettingsSystem</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMRemoteSettings.html" title="NMRemoteSettings">
-<link rel="next" href="libnm-glib-NMSettingsConnection.html" title="nm-settings-connection-interface">
+<link rel="prev" href="NMRemoteSettings.html" title="NMRemoteSettings">
+<link rel="next" href="libnm-glib-NMSettingsConnection.html" title="NMSettingsConnection">
<meta name="generator" content="GTK-Doc V1.15 (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-NMRemoteSettings.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="NMRemoteSettings.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-glib Reference Manual</th>
diff --git a/docs/libnm-glib/html/libnm-glib-NMSettings.html b/docs/libnm-glib/html/libnm-glib-NMSettings.html
index 77b1e5945..e56ab8fc3 100644
--- a/docs/libnm-glib/html/libnm-glib-NMSettings.html
+++ b/docs/libnm-glib/html/libnm-glib-NMSettings.html
@@ -2,11 +2,11 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>nm-settings-interface</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<title>NMSettings</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMSettingsConnection.html" title="nm-settings-connection-interface">
+<link rel="prev" href="libnm-glib-NMSettingsConnection.html" title="NMSettingsConnection">
<link rel="next" href="libnm-glib-NMSettingsService.html" title="NMSettingsService">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
@@ -24,42 +24,67 @@
<a href="#libnm-glib-NMSettings.synopsis" class="shortcut">Top</a>
 | 
<a href="#libnm-glib-NMSettings.description" class="shortcut">Description</a>
+  | 
+ <a href="#libnm-glib-NMSettings.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#libnm-glib-NMSettings.prerequisites" class="shortcut">Prerequisites</a>
+  | 
+ <a href="#libnm-glib-NMSettings.implementations" class="shortcut">Known Implementations</a>
</td></tr>
</table>
-<div class="refentry" title="nm-settings-interface">
+<div class="refentry" title="NMSettings">
<a name="libnm-glib-NMSettings"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMSettings.top_of_page"></a>nm-settings-interface</span></h2>
-<p>nm-settings-interface</p>
+<h2><span class="refentrytitle"><a name="libnm-glib-NMSettings.top_of_page"></a>NMSettings</span></h2>
+<p>NMSettings</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="libnm-glib-NMSettings.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">enum <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterfaceError" title="enum NMSettingsInterfaceError">NMSettingsInterfaceError</a>;
+<a name="NMSettingsInterface"></a><pre class="synopsis">enum <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterfaceError" title="enum NMSettingsInterfaceError">NMSettingsInterfaceError</a>;
#define <a class="link" href="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-ERROR:CAPS" title="NM_SETTINGS_INTERFACE_ERROR">NM_SETTINGS_INTERFACE_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="libnm-glib-NMSettings.html#nm-settings-interface-error-quark" title="nm_settings_interface_error_quark ()">nm_settings_interface_error_quark</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
#define <a class="link" href="libnm-glib-NMSettings.html#NM-TYPE-SETTINGS-INTERFACE-ERROR:CAPS" title="NM_TYPE_SETTINGS_INTERFACE_ERROR">NM_TYPE_SETTINGS_INTERFACE_ERROR</a>
#define <a class="link" href="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-NEW-CONNECTION:CAPS" title="NM_SETTINGS_INTERFACE_NEW_CONNECTION">NM_SETTINGS_INTERFACE_NEW_CONNECTION</a>
#define <a class="link" href="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-CONNECTIONS-READ:CAPS" title="NM_SETTINGS_INTERFACE_CONNECTIONS_READ">NM_SETTINGS_INTERFACE_CONNECTIONS_READ</a>
- <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface">NMSettingsInterface</a>;
-<span class="returnvalue">void</span> (<a class="link" href="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc" title="NMSettingsAddConnectionFunc ()">*NMSettingsAddConnectionFunc</a>) (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+ <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface-struct" title="NMSettingsInterface">NMSettingsInterface</a>;
+<span class="returnvalue">void</span> (<a class="link" href="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc" title="NMSettingsAddConnectionFunc ()">*NMSettingsAddConnectionFunc</a>) (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *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>,
<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>);
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a> <a class="link" href="libnm-glib-NMSettings.html#nm-settings-interface-get-type" title="nm_settings_interface_get_type ()">nm_settings_interface_get_type</a> (<em class="parameter"><code><span class="type">void</span></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-glib-NMSettings.html#nm-settings-interface-list-connections" title="nm_settings_interface_list_connections ()">nm_settings_interface_list_connections</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>);
-<a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="returnvalue">NMSettingsConnectionInterface</span></a> * <a class="link" href="libnm-glib-NMSettings.html#nm-settings-interface-get-connection-by-path" title="nm_settings_interface_get_connection_by_path ()">nm_settings_interface_get_connection_by_path</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>);
+<a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="returnvalue">NMSettingsConnectionInterface</span></a> * <a class="link" href="libnm-glib-NMSettings.html#nm-settings-interface-get-connection-by-path" title="nm_settings_interface_get_connection_by_path ()">nm_settings_interface_get_connection_by_path</a>
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</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-NMSettings.html#nm-settings-interface-add-connection" title="nm_settings_interface_add_connection ()">nm_settings_interface_add_connection</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc" title="NMSettingsAddConnectionFunc ()"><span class="type">NMSettingsAddConnectionFunc</span></a> callback</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>
</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="libnm-glib-NMSettings.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ GInterface
+ +----NMSettingsInterface
+</pre>
+</div>
+<div class="refsect1" title="Prerequisites">
+<a name="libnm-glib-NMSettings.prerequisites"></a><h2>Prerequisites</h2>
+<p>
+NMSettingsInterface requires
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
+</div>
+<div class="refsect1" title="Known Implementations">
+<a name="libnm-glib-NMSettings.implementations"></a><h2>Known Implementations</h2>
+<p>
+NMSettingsInterface is implemented by
+ <a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings">NMRemoteSettings</a>.</p>
+</div>
<div class="refsect1" title="Description">
<a name="libnm-glib-NMSettings.description"></a><h2>Description</h2>
<p>
@@ -132,44 +157,15 @@ Setting error quark.
</div>
<hr>
<div class="refsect2" title="NMSettingsInterface">
-<a name="NMSettingsInterface"></a><h3>NMSettingsInterface</h3>
-<pre class="programlisting">typedef struct {
- GTypeInterface g_iface;
-
- /* Methods */
- /* Returns a list of objects implementing NMSettingsConnectionInterface */
- GSList * (*list_connections) (NMSettingsInterface *settings);
-
- NMSettingsConnectionInterface * (*get_connection_by_path) (NMSettingsInterface *settings,
- const char *path);
-
- gboolean (*add_connection) (NMSettingsInterface *settings,
- NMConnection *connection,
- NMSettingsAddConnectionFunc callback,
- gpointer user_data);
-
- /* Signals */
- void (*new_connection) (NMSettingsInterface *settings,
- NMSettingsConnectionInterface *connection);
-
- void (*connections_read) (NMSettingsInterface *settings);
-
- /* Padding for future expansion */
- void (*_reserved1) (void);
- void (*_reserved2) (void);
- void (*_reserved3) (void);
- void (*_reserved4) (void);
- void (*_reserved5) (void);
- void (*_reserved6) (void);
-} NMSettingsInterface;
-</pre>
+<a name="NMSettingsInterface-struct"></a><h3>NMSettingsInterface</h3>
+<pre class="programlisting">typedef struct _NMSettingsInterface NMSettingsInterface;</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" title="NMSettingsAddConnectionFunc ()">
<a name="NMSettingsAddConnectionFunc"></a><h3>NMSettingsAddConnectionFunc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> (*NMSettingsAddConnectionFunc) (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> (*NMSettingsAddConnectionFunc) (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *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>,
<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>
@@ -214,7 +210,7 @@ Setting error quark.
<div class="refsect2" title="nm_settings_interface_list_connections ()">
<a name="nm-settings-interface-list-connections"></a><h3>nm_settings_interface_list_connections ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> * nm_settings_interface_list_connections
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>);</pre>
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
@@ -236,8 +232,8 @@ Setting error quark.
<hr>
<div class="refsect2" title="nm_settings_interface_get_connection_by_path ()">
<a name="nm-settings-interface-get-connection-by-path"></a><h3>nm_settings_interface_get_connection_by_path ()</h3>
-<pre class="programlisting"><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="returnvalue">NMSettingsConnectionInterface</span></a> * nm_settings_interface_get_connection_by_path
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+<pre class="programlisting"><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="returnvalue">NMSettingsConnectionInterface</span></a> * nm_settings_interface_get_connection_by_path
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
<p>
</p>
@@ -266,8 +262,8 @@ Setting error quark.
<div class="refsect2" title="nm_settings_interface_add_connection ()">
<a name="nm-settings-interface-add-connection"></a><h3>nm_settings_interface_add_connection ()</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_settings_interface_add_connection
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><span class="type">NMSettingsInterface</span></a> *settings</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc" title="NMSettingsAddConnectionFunc ()"><span class="type">NMSettingsAddConnectionFunc</span></a> callback</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>
@@ -278,7 +274,7 @@ Requests that the settings service add the given settings to a new connection.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>settings</code></em> :</span></p></td>
-<td>a object implementing <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface" title="NMSettingsInterface"><code class="literal">NMSettingsInterface</code></a>
+<td>a object implementing <a class="link" href="libnm-glib-NMSettings.html#NMSettingsInterface"><code class="literal">NMSettingsInterface</code></a>
</td>
</tr>
<tr>
diff --git a/docs/libnm-glib/html/libnm-glib-NMSettingsConnection.html b/docs/libnm-glib/html/libnm-glib-NMSettingsConnection.html
index 68420b009..dc4e4ffa9 100644
--- a/docs/libnm-glib/html/libnm-glib-NMSettingsConnection.html
+++ b/docs/libnm-glib/html/libnm-glib-NMSettingsConnection.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>nm-settings-connection-interface</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<title>NMSettingsConnection</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="libnm-glib-NMRemoteSettingsSystem.html" title="NMRemoteSettingsSystem">
-<link rel="next" href="libnm-glib-NMSettings.html" title="nm-settings-interface">
+<link rel="next" href="libnm-glib-NMSettings.html" title="NMSettings">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -24,54 +24,79 @@
<a href="#libnm-glib-NMSettingsConnection.synopsis" class="shortcut">Top</a>
 | 
<a href="#libnm-glib-NMSettingsConnection.description" class="shortcut">Description</a>
+  | 
+ <a href="#libnm-glib-NMSettingsConnection.object-hierarchy" class="shortcut">Object Hierarchy</a>
+  | 
+ <a href="#libnm-glib-NMSettingsConnection.prerequisites" class="shortcut">Prerequisites</a>
+  | 
+ <a href="#libnm-glib-NMSettingsConnection.implementations" class="shortcut">Known Implementations</a>
</td></tr>
</table>
-<div class="refentry" title="nm-settings-connection-interface">
+<div class="refentry" title="NMSettingsConnection">
<a name="libnm-glib-NMSettingsConnection"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMSettingsConnection.top_of_page"></a>nm-settings-connection-interface</span></h2>
-<p>nm-settings-connection-interface</p>
+<h2><span class="refentrytitle"><a name="libnm-glib-NMSettingsConnection.top_of_page"></a>NMSettingsConnection</span></h2>
+<p>NMSettingsConnection</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="libnm-glib-NMSettingsConnection.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define <a class="link" href="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS" title="NM_SETTINGS_CONNECTION_INTERFACE_UPDATED">NM_SETTINGS_CONNECTION_INTERFACE_UPDATED</a>
+<a name="NMSettingsConnectionInterface"></a><pre class="synopsis">#define <a class="link" href="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS" title="NM_SETTINGS_CONNECTION_INTERFACE_UPDATED">NM_SETTINGS_CONNECTION_INTERFACE_UPDATED</a>
#define <a class="link" href="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-REMOVED:CAPS" title="NM_SETTINGS_CONNECTION_INTERFACE_REMOVED">NM_SETTINGS_CONNECTION_INTERFACE_REMOVED</a>
- <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface">NMSettingsConnectionInterface</a>;
+ <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface-struct" title="NMSettingsConnectionInterface">NMSettingsConnectionInterface</a>;
<span class="returnvalue">void</span> (<a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc" title="NMSettingsConnectionInterfaceUpdateFunc ()">*NMSettingsConnectionInterfaceUpdateFunc</a>)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *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>,
<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>);
<span class="returnvalue">void</span> (<a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc" title="NMSettingsConnectionInterfaceDeleteFunc ()">*NMSettingsConnectionInterfaceDeleteFunc</a>)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *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>,
<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>);
<span class="returnvalue">void</span> (<a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceGetSecretsFunc" title="NMSettingsConnectionInterfaceGetSecretsFunc ()">*NMSettingsConnectionInterfaceGetSecretsFunc</a>)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</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>,
<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>);
<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-NMSettingsConnection.html#nm-settings-connection-interface-update" title="nm_settings_connection_interface_update ()">nm_settings_connection_interface_update</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc" title="NMSettingsConnectionInterfaceUpdateFunc ()"><span class="type">NMSettingsConnectionInterfaceUpdateFunc</span></a> callback</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>);
<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-NMSettingsConnection.html#nm-settings-connection-interface-delete" title="nm_settings_connection_interface_delete ()">nm_settings_connection_interface_delete</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc" title="NMSettingsConnectionInterfaceDeleteFunc ()"><span class="type">NMSettingsConnectionInterfaceDeleteFunc</span></a> callback</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>);
<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-NMSettingsConnection.html#nm-settings-connection-interface-get-secrets" title="nm_settings_connection_interface_get_secrets ()">nm_settings_connection_interface_get_secrets</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>,
<em class="parameter"><code>const <span class="type">char</span> **hints</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> request_new</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceGetSecretsFunc" title="NMSettingsConnectionInterfaceGetSecretsFunc ()"><span class="type">NMSettingsConnectionInterfaceGetSecretsFunc</span></a> callback</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>);
<span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMSettingsConnection.html#nm-settings-connection-interface-emit-updated" title="nm_settings_connection_interface_emit_updated ()">nm_settings_connection_interface_emit_updated</a>
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>);
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>);
+</pre>
+</div>
+<div class="refsect1" title="Object Hierarchy">
+<a name="libnm-glib-NMSettingsConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ GInterface
+ +----NMSettingsConnectionInterface
</pre>
</div>
+<div class="refsect1" title="Prerequisites">
+<a name="libnm-glib-NMSettingsConnection.prerequisites"></a><h2>Prerequisites</h2>
+<p>
+NMSettingsConnectionInterface requires
+ <a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html">NMConnection</a>.</p>
+</div>
+<div class="refsect1" title="Known Implementations">
+<a name="libnm-glib-NMSettingsConnection.implementations"></a><h2>Known Implementations</h2>
+<p>
+NMSettingsConnectionInterface is implemented by
+ <a class="link" href="NMExportedConnection.html" title="NMExportedConnection">NMExportedConnection</a> and <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection">NMRemoteConnection</a>.</p>
+</div>
<div class="refsect1" title="Description">
<a name="libnm-glib-NMSettingsConnection.description"></a><h2>Description</h2>
<p>
@@ -96,44 +121,8 @@
</div>
<hr>
<div class="refsect2" title="NMSettingsConnectionInterface">
-<a name="NMSettingsConnectionInterface"></a><h3>NMSettingsConnectionInterface</h3>
-<pre class="programlisting">typedef struct {
- GTypeInterface g_iface;
-
- /* Methods */
- gboolean (*update) (NMSettingsConnectionInterface *connection,
- NMSettingsConnectionInterfaceUpdateFunc callback,
- gpointer user_data);
-
- gboolean (*delete) (NMSettingsConnectionInterface *connection,
- NMSettingsConnectionInterfaceDeleteFunc callback,
- gpointer user_data);
-
- gboolean (*get_secrets) (NMSettingsConnectionInterface *connection,
- const char *setting_name,
- const char **hints,
- gboolean request_new,
- NMSettingsConnectionInterfaceGetSecretsFunc callback,
- gpointer user_data);
-
- void (*emit_updated) (NMSettingsConnectionInterface *connection);
-
- /* Signals */
- /* 'new_settings' hash should *not* contain secrets */
- void (*updated) (NMSettingsConnectionInterface *connection,
- GHashTable *new_settings);
-
- void (*removed) (NMSettingsConnectionInterface *connection);
-
- /* Padding for future expansion */
- void (*_reserved1) (void);
- void (*_reserved2) (void);
- void (*_reserved3) (void);
- void (*_reserved4) (void);
- void (*_reserved5) (void);
- void (*_reserved6) (void);
-} NMSettingsConnectionInterface;
-</pre>
+<a name="NMSettingsConnectionInterface-struct"></a><h3>NMSettingsConnectionInterface</h3>
+<pre class="programlisting">typedef struct _NMSettingsConnectionInterface NMSettingsConnectionInterface;</pre>
<p>
</p>
</div>
@@ -141,7 +130,7 @@
<div class="refsect2" title="NMSettingsConnectionInterfaceUpdateFunc ()">
<a name="NMSettingsConnectionInterfaceUpdateFunc"></a><h3>NMSettingsConnectionInterfaceUpdateFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> (*NMSettingsConnectionInterfaceUpdateFunc)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *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>,
<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>
@@ -171,7 +160,7 @@
<div class="refsect2" title="NMSettingsConnectionInterfaceDeleteFunc ()">
<a name="NMSettingsConnectionInterfaceDeleteFunc"></a><h3>NMSettingsConnectionInterfaceDeleteFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> (*NMSettingsConnectionInterfaceDeleteFunc)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *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>,
<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>
@@ -201,7 +190,7 @@
<div class="refsect2" title="NMSettingsConnectionInterfaceGetSecretsFunc ()">
<a name="NMSettingsConnectionInterfaceGetSecretsFunc"></a><h3>NMSettingsConnectionInterfaceGetSecretsFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> (*NMSettingsConnectionInterfaceGetSecretsFunc)
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</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>,
<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>
@@ -237,7 +226,7 @@
<div class="refsect2" title="nm_settings_connection_interface_update ()">
<a name="nm-settings-connection-interface-update"></a><h3>nm_settings_connection_interface_update ()</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_settings_connection_interface_update
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc" title="NMSettingsConnectionInterfaceUpdateFunc ()"><span class="type">NMSettingsConnectionInterfaceUpdateFunc</span></a> callback</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>
@@ -248,7 +237,7 @@ Update the connection with current settings and properties.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
-<td>an object implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
+<td>an object implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
</td>
</tr>
<tr>
@@ -273,7 +262,7 @@ Update the connection with current settings and properties.
<div class="refsect2" title="nm_settings_connection_interface_delete ()">
<a name="nm-settings-connection-interface-delete"></a><h3>nm_settings_connection_interface_delete ()</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_settings_connection_interface_delete
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc" title="NMSettingsConnectionInterfaceDeleteFunc ()"><span class="type">NMSettingsConnectionInterfaceDeleteFunc</span></a> callback</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>
@@ -284,7 +273,7 @@ Delete the connection.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
-<td>a objecting implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
+<td>a objecting implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
</td>
</tr>
<tr>
@@ -309,7 +298,7 @@ Delete the connection.
<div class="refsect2" title="nm_settings_connection_interface_get_secrets ()">
<a name="nm-settings-connection-interface-get-secrets"></a><h3>nm_settings_connection_interface_get_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_settings_connection_interface_get_secrets
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>,
<em class="parameter"><code>const <span class="type">char</span> **hints</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> request_new</code></em>,
@@ -323,18 +312,18 @@ Request the connection's secrets.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
-<td>a object implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
+<td>a object implementing <a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>setting_name</code></em> :</span></p></td>
-<td>the <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html"><span class="type">NMSetting</span></a> object name to get secrets for
+<td>the <a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMSetting.html"><span class="type">NMSetting</span></a> object name to get secrets for
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>hints</code></em> :</span></p></td>
<td>
-<a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html"><span class="type">NMSetting</span></a> key names to get secrets for (optional)
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMSetting.html"><span class="type">NMSetting</span></a> key names to get secrets for (optional)
</td>
</tr>
<tr>
@@ -365,7 +354,7 @@ Request the connection's secrets.
<div class="refsect2" title="nm_settings_connection_interface_emit_updated ()">
<a name="nm-settings-connection-interface-emit-updated"></a><h3>nm_settings_connection_interface_emit_updated ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_settings_connection_interface_emit_updated
- (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>);</pre>
+ (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *connection</code></em>);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
diff --git a/docs/libnm-glib/html/libnm-glib-NMSettingsService.html b/docs/libnm-glib/html/libnm-glib-NMSettingsService.html
index 817c78e46..85c51a6b2 100644
--- a/docs/libnm-glib/html/libnm-glib-NMSettingsService.html
+++ b/docs/libnm-glib/html/libnm-glib-NMSettingsService.html
@@ -3,11 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingsService</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMSettings.html" title="nm-settings-interface">
-<link rel="next" href="libnm-glib-NMSettingsSystem.html" title="nm-settings-system-interface">
+<link rel="prev" href="libnm-glib-NMSettings.html" title="NMSettings">
+<link rel="next" href="libnm-glib-NMSettingsSystem.html" title="NMSettingsSystem">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -41,13 +41,13 @@
#define <a class="link" href="libnm-glib-NMSettingsService.html#NM-SETTINGS-SERVICE-SCOPE:CAPS" title="NM_SETTINGS_SERVICE_SCOPE">NM_SETTINGS_SERVICE_SCOPE</a>
<a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService">NMSettingsService</a>;
<a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsServiceClass" title="NMSettingsServiceClass">NMSettingsServiceClass</a>;
-<a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnection" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * <a class="link" href="libnm-glib-NMSettingsService.html#nm-settings-service-get-connection-by-path" title="nm_settings_service_get_connection_by_path ()">nm_settings_service_get_connection_by_path</a>
+<a class="link" href="NMExportedConnection.html" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * <a class="link" href="libnm-glib-NMSettingsService.html#nm-settings-service-get-connection-by-path" title="nm_settings_service_get_connection_by_path ()">nm_settings_service_get_connection_by_path</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService"><span class="type">NMSettingsService</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
<span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMSettingsService.html#nm-settings-service-export" title="nm_settings_service_export ()">nm_settings_service_export</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService"><span class="type">NMSettingsService</span></a> *self</code></em>);
<span class="returnvalue">void</span> <a class="link" href="libnm-glib-NMSettingsService.html#nm-settings-service-export-connection" title="nm_settings_service_export_connection ()">nm_settings_service_export_connection</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService"><span class="type">NMSettingsService</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *exported</code></em>);
+ <em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *exported</code></em>);
</pre>
</div>
<div class="refsect1" title="Description">
@@ -115,7 +115,7 @@
<hr>
<div class="refsect2" title="nm_settings_service_get_connection_by_path ()">
<a name="nm-settings-service-get-connection-by-path"></a><h3>nm_settings_service_get_connection_by_path ()</h3>
-<pre class="programlisting"><a class="link" href="libnm-glib-NMExportedConnection.html#NMExportedConnection" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * nm_settings_service_get_connection_by_path
+<pre class="programlisting"><a class="link" href="NMExportedConnection.html" title="NMExportedConnection"><span class="returnvalue">NMExportedConnection</span></a> * nm_settings_service_get_connection_by_path
(<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService"><span class="type">NMSettingsService</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
<p>
@@ -161,7 +161,7 @@
<a name="nm-settings-service-export-connection"></a><h3>nm_settings_service_export_connection ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_settings_service_export_connection
(<em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsService.html#NMSettingsService" title="NMSettingsService"><span class="type">NMSettingsService</span></a> *self</code></em>,
- <em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface" title="NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *exported</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"><span class="type">NMSettingsConnectionInterface</span></a> *exported</code></em>);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
diff --git a/docs/libnm-glib/html/libnm-glib-NMSettingsSystem.html b/docs/libnm-glib/html/libnm-glib-NMSettingsSystem.html
index c5e754f57..1be498be0 100644
--- a/docs/libnm-glib/html/libnm-glib-NMSettingsSystem.html
+++ b/docs/libnm-glib/html/libnm-glib-NMSettingsSystem.html
@@ -2,8 +2,8 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>nm-settings-system-interface</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<title>NMSettingsSystem</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="libnm-glib-NMSettingsService.html" title="NMSettingsService">
@@ -26,12 +26,12 @@
<a href="#libnm-glib-NMSettingsSystem.description" class="shortcut">Description</a>
</td></tr>
</table>
-<div class="refentry" title="nm-settings-system-interface">
+<div class="refentry" title="NMSettingsSystem">
<a name="libnm-glib-NMSettingsSystem"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMSettingsSystem.top_of_page"></a>nm-settings-system-interface</span></h2>
-<p>nm-settings-system-interface</p>
+<h2><span class="refentrytitle"><a name="libnm-glib-NMSettingsSystem.top_of_page"></a>NMSettingsSystem</span></h2>
+<p>NMSettingsSystem</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
diff --git a/docs/libnm-glib/html/libnm-glib-NMVPNConnection.html b/docs/libnm-glib/html/libnm-glib-NMVPNConnection.html
deleted file mode 100644
index f1dbf9611..000000000
--- a/docs/libnm-glib/html/libnm-glib-NMVPNConnection.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>NMVPNConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
-<link rel="home" href="index.html" title="libnm-glib Reference Manual">
-<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-nm-types.html" title="nm-types">
-<link rel="next" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
-<meta name="generator" content="GTK-Doc V1.15 (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-nm-types.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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMVPNPlugin.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-NMVPNConnection.synopsis" class="shortcut">Top</a>
-  | 
- <a href="#libnm-glib-NMVPNConnection.description" class="shortcut">Description</a>
-</td></tr>
-</table>
-<div class="refentry" title="NMVPNConnection">
-<a name="libnm-glib-NMVPNConnection"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMVPNConnection.top_of_page"></a>NMVPNConnection</span></h2>
-<p>NMVPNConnection</p>
-</td>
-<td valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsynopsisdiv" title="Synopsis">
-<a name="libnm-glib-NMVPNConnection.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define <a class="link" href="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS" title="NM_VPN_CONNECTION_VPN_STATE">NM_VPN_CONNECTION_VPN_STATE</a>
-#define <a class="link" href="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS" title="NM_VPN_CONNECTION_BANNER">NM_VPN_CONNECTION_BANNER</a>
- <a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnection" title="NMVPNConnection">NMVPNConnection</a>;
- <a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnectionClass" title="NMVPNConnectionClass">NMVPNConnectionClass</a>;
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * <a class="link" href="libnm-glib-NMVPNConnection.html#nm-vpn-connection-new" title="nm_vpn_connection_new ()">nm_vpn_connection_new</a> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *dbus_connection</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);
-<span class="returnvalue">NMVPNConnectionState</span> <a class="link" href="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-vpn-state" title="nm_vpn_connection_get_vpn_state ()">nm_vpn_connection_get_vpn_state</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnection" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</code></em>);
-const <span class="returnvalue">char</span> * <a class="link" href="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-banner" title="nm_vpn_connection_get_banner ()">nm_vpn_connection_get_banner</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnection" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</code></em>);
-</pre>
-</div>
-<div class="refsect1" title="Description">
-<a name="libnm-glib-NMVPNConnection.description"></a><h2>Description</h2>
-<p>
-</p>
-</div>
-<div class="refsect1" title="Details">
-<a name="libnm-glib-NMVPNConnection.details"></a><h2>Details</h2>
-<div class="refsect2" title="NM_VPN_CONNECTION_VPN_STATE">
-<a name="NM-VPN-CONNECTION-VPN-STATE:CAPS"></a><h3>NM_VPN_CONNECTION_VPN_STATE</h3>
-<pre class="programlisting">#define NM_VPN_CONNECTION_VPN_STATE "vpn-state"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NM_VPN_CONNECTION_BANNER">
-<a name="NM-VPN-CONNECTION-BANNER:CAPS"></a><h3>NM_VPN_CONNECTION_BANNER</h3>
-<pre class="programlisting">#define NM_VPN_CONNECTION_BANNER "banner"
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NMVPNConnection">
-<a name="NMVPNConnection"></a><h3>NMVPNConnection</h3>
-<pre class="programlisting">typedef struct {
- NMActiveConnection parent;
-} NMVPNConnection;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="NMVPNConnectionClass">
-<a name="NMVPNConnectionClass"></a><h3>NMVPNConnectionClass</h3>
-<pre class="programlisting">typedef struct {
- NMActiveConnectionClass parent;
-
- /* Signals */
- void (*vpn_state_changed) (NMVPNConnection *connection,
- NMVPNConnectionState state,
- NMVPNConnectionStateReason reason);
-
- /* Padding for future expansion */
- void (*_reserved1) (void);
- void (*_reserved2) (void);
- void (*_reserved3) (void);
- void (*_reserved4) (void);
- void (*_reserved5) (void);
- void (*_reserved6) (void);
-} NMVPNConnectionClass;
-</pre>
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2" title="nm_vpn_connection_new ()">
-<a name="nm-vpn-connection-new"></a><h3>nm_vpn_connection_new ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="returnvalue">GObject</span></a> * nm_vpn_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dbus-glib/dbus-glib-DBusGConnection.html#DBusGConnection"><span class="type">DBusGConnection</span></a> *dbus_connection</code></em>,
- <em class="parameter"><code>const <span class="type">char</span> *path</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>dbus_connection</code></em> :</span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="nm_vpn_connection_get_vpn_state ()">
-<a name="nm-vpn-connection-get-vpn-state"></a><h3>nm_vpn_connection_get_vpn_state ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMVPNConnectionState</span> nm_vpn_connection_get_vpn_state (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnection" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</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>vpn</code></em> :</span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2" title="nm_vpn_connection_get_banner ()">
-<a name="nm-vpn-connection-get-banner"></a><h3>nm_vpn_connection_get_banner ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> * nm_vpn_connection_get_banner (<em class="parameter"><code><a class="link" href="libnm-glib-NMVPNConnection.html#NMVPNConnection" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</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>vpn</code></em> :</span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>
- Generated by GTK-Doc V1.15</div>
-</body>
-</html> \ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
index 49d9b8164..f085a2beb 100644
--- a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
+++ b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
@@ -3,18 +3,18 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMVPNPlugin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMVPNConnection.html" title="NMVPNConnection">
-<link rel="next" href="libnm-glib-NMVpnPluginUi.html" title="nm-vpn-plugin-ui-interface">
+<link rel="prev" href="NMVPNConnection.html" title="NMVPNConnection">
+<link rel="next" href="libnm-glib-NMVpnPluginUi.html" title="NMVpnPluginUi">
<meta name="generator" content="GTK-Doc V1.15 (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-NMVPNConnection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="NMVPNConnection.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-glib Reference Manual</th>
diff --git a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
index fdf3e5e8d..300170615 100644
--- a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
+++ b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUi.html
@@ -2,8 +2,8 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>nm-vpn-plugin-ui-interface</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<title>NMVpnPluginUi</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
<link rel="prev" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
@@ -25,12 +25,12 @@
<a href="#libnm-glib-NMVpnPluginUi.description" class="shortcut">Description</a>
</td></tr>
</table>
-<div class="refentry" title="nm-vpn-plugin-ui-interface">
+<div class="refentry" title="NMVpnPluginUi">
<a name="libnm-glib-NMVpnPluginUi"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-glib-NMVpnPluginUi.top_of_page"></a>nm-vpn-plugin-ui-interface</span></h2>
-<p>nm-vpn-plugin-ui-interface</p>
+<h2><span class="refentrytitle"><a name="libnm-glib-NMVpnPluginUi.top_of_page"></a>NMVpnPluginUi</span></h2>
+<p>NMVpnPluginUi</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
@@ -49,23 +49,23 @@
enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterfaceProp" title="enum NMVpnPluginUiInterfaceProp">NMVpnPluginUiInterfaceProp</a>;
<a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="returnvalue">NMVpnPluginUiWidgetInterface</span></a> * <a class="link" href="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-ui-factory" title="nm_vpn_plugin_ui_interface_ui_factory ()">nm_vpn_plugin_ui_interface_ui_factory</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-get-capabilities" title="nm_vpn_plugin_ui_interface_get_capabilities ()">nm_vpn_plugin_ui_interface_get_capabilities</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>);
-<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="returnvalue">NMConnection</span></a> * <a class="link" href="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-import" title="nm_vpn_plugin_ui_interface_import ()">nm_vpn_plugin_ui_interface_import</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
+<a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="returnvalue">NMConnection</span></a> * <a class="link" href="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-import" title="nm_vpn_plugin_ui_interface_import ()">nm_vpn_plugin_ui_interface_import</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</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>);
<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-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-export" title="nm_vpn_plugin_ui_interface_export ()">nm_vpn_plugin_ui_interface_export</a> (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);
<span class="returnvalue">char</span> * <a class="link" href="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-get-suggested-name" title="nm_vpn_plugin_ui_interface_get_suggested_name ()">nm_vpn_plugin_ui_interface_get_suggested_name</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>);
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><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="libnm-glib-NMVpnPluginUi.html#nm-vpn-plugin-ui-interface-delete-connection" title="nm_vpn_plugin_ui_interface_delete_connection ()">nm_vpn_plugin_ui_interface_delete_connection</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);
#define <a class="link" href="libnm-glib-NMVpnPluginUi.html#NM-TYPE-VPN-PLUGIN-UI-WIDGET-INTERFACE:CAPS" title="NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE">NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE</a>
#define <a class="link" href="libnm-glib-NMVpnPluginUi.html#NM-VPN-PLUGIN-UI-WIDGET-INTERFACE:CAPS" title="NM_VPN_PLUGIN_UI_WIDGET_INTERFACE()">NM_VPN_PLUGIN_UI_WIDGET_INTERFACE</a> (obj)
@@ -77,11 +77,11 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="type">NMVpnPluginUiWidgetInterface</span></a> *iface</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-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-update-connection" title="nm_vpn_plugin_ui_widget_interface_update_connection ()">nm_vpn_plugin_ui_widget_interface_update_connection</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="type">NMVpnPluginUiWidgetInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);
<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-NMVpnPluginUi.html#nm-vpn-plugin-ui-widget-interface-save-secrets" title="nm_vpn_plugin_ui_widget_interface_save_secrets ()">nm_vpn_plugin_ui_widget_interface_save_secrets</a>
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="type">NMVpnPluginUiWidgetInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);
</pre>
</div>
@@ -302,7 +302,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-interface-ui-factory"></a><h3>nm_vpn_plugin_ui_interface_ui_factory ()</h3>
<pre class="programlisting"><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="returnvalue">NMVpnPluginUiWidgetInterface</span></a> * nm_vpn_plugin_ui_interface_ui_factory
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);</pre>
<p>
</p>
@@ -358,7 +358,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<hr>
<div class="refsect2" title="nm_vpn_plugin_ui_interface_import ()">
<a name="nm-vpn-plugin-ui-interface-import"></a><h3>nm_vpn_plugin_ui_interface_import ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="returnvalue">NMConnection</span></a> * nm_vpn_plugin_ui_interface_import (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
+<pre class="programlisting"><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="returnvalue">NMConnection</span></a> * nm_vpn_plugin_ui_interface_import (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</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>
@@ -394,7 +394,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-interface-export"></a><h3>nm_vpn_plugin_ui_interface_export ()</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_ui_interface_export (<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);</pre>
<p>
</p>
@@ -434,7 +434,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-interface-get-suggested-name"></a><h3>nm_vpn_plugin_ui_interface_get_suggested_name ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> * nm_vpn_plugin_ui_interface_get_suggested_name
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
@@ -463,7 +463,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-interface-delete-connection"></a><h3>nm_vpn_plugin_ui_interface_delete_connection ()</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_ui_interface_delete_connection
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiInterface" title="NMVpnPluginUiInterface"><span class="type">NMVpnPluginUiInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);</pre>
<p>
</p>
@@ -593,7 +593,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-widget-interface-update-connection"></a><h3>nm_vpn_plugin_ui_widget_interface_update_connection ()</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_ui_widget_interface_update_connection
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="type">NMVpnPluginUiWidgetInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);</pre>
<p>
</p>
@@ -628,7 +628,7 @@ enum <a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPlu
<a name="nm-vpn-plugin-ui-widget-interface-save-secrets"></a><h3>nm_vpn_plugin_ui_widget_interface_save_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_vpn_plugin_ui_widget_interface_save_secrets
(<em class="parameter"><code><a class="link" href="libnm-glib-NMVpnPluginUi.html#NMVpnPluginUiWidgetInterface" title="NMVpnPluginUiWidgetInterface"><span class="type">NMVpnPluginUiWidgetInterface</span></a> *iface</code></em>,
- <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html"><span class="type">NMConnection</span></a> *connection</code></em>,
+ <em class="parameter"><code><a href="http://projects.gnome.org/NetworkManager/developers/libnm-util/08/NMConnection.html"><span class="type">NMConnection</span></a> *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>);</pre>
<p>
</p>
diff --git a/docs/libnm-glib/html/libnm-glib-nm-types.html b/docs/libnm-glib/html/libnm-glib-nm-types.html
index 478abeaa0..ec303a29f 100644
--- a/docs/libnm-glib/html/libnm-glib-nm-types.html
+++ b/docs/libnm-glib/html/libnm-glib-nm-types.html
@@ -3,11 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>nm-types</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-glib Reference Manual">
<link rel="up" href="ch01.html" title="libnm-glib Objects">
-<link rel="prev" href="libnm-glib-NMSettingsSystem.html" title="nm-settings-system-interface">
-<link rel="next" href="libnm-glib-NMVPNConnection.html" title="NMVPNConnection">
+<link rel="prev" href="libnm-glib-NMSettingsSystem.html" title="NMSettingsSystem">
+<link rel="next" href="NMVPNConnection.html" title="NMVPNConnection">
<meta name="generator" content="GTK-Doc V1.15 (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-glib Reference Manual</th>
-<td><a accesskey="n" href="libnm-glib-NMVPNConnection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="NMVPNConnection.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-types.synopsis" class="shortcut">Top</a>
diff --git a/docs/libnm-glib/html/libnm-glib.devhelp b/docs/libnm-glib/html/libnm-glib.devhelp
index 2b5fac7f0..28707b004 100644
--- a/docs/libnm-glib/html/libnm-glib.devhelp
+++ b/docs/libnm-glib/html/libnm-glib.devhelp
@@ -11,25 +11,25 @@
<sub name="NMSerialDevice" link="NMSerialDevice.html"/>
<sub name="NMGsmDevice" link="NMGsmDevice.html"/>
<sub name="NMCdmaDevice" link="NMCdmaDevice.html"/>
- <sub name="NMDeviceBt" link="libnm-glib-NMDeviceBt.html"/>
+ <sub name="NMDeviceBt" link="NMDeviceBt.html"/>
<sub name="NMAccessPoint" link="NMAccessPoint.html"/>
<sub name="NMIP4Config" link="NMIP4Config.html"/>
<sub name="NMIP6Config" link="NMIP6Config.html"/>
<sub name="NMDHCP4Config" link="NMDHCP4Config.html"/>
<sub name="NMDHCP6Config" link="NMDHCP6Config.html"/>
- <sub name="NMExportedConnection" link="libnm-glib-NMExportedConnection.html"/>
+ <sub name="NMExportedConnection" link="NMExportedConnection.html"/>
<sub name="NMObject" link="NMObject.html"/>
- <sub name="NMRemoteConnection" link="libnm-glib-NMRemoteConnection.html"/>
- <sub name="NMRemoteSettings" link="libnm-glib-NMRemoteSettings.html"/>
+ <sub name="NMRemoteConnection" link="NMRemoteConnection.html"/>
+ <sub name="NMRemoteSettings" link="NMRemoteSettings.html"/>
<sub name="NMRemoteSettingsSystem" link="libnm-glib-NMRemoteSettingsSystem.html"/>
- <sub name="nm-settings-connection-interface" link="libnm-glib-NMSettingsConnection.html"/>
- <sub name="nm-settings-interface" link="libnm-glib-NMSettings.html"/>
+ <sub name="NMSettingsConnection" link="libnm-glib-NMSettingsConnection.html"/>
+ <sub name="NMSettings" link="libnm-glib-NMSettings.html"/>
<sub name="NMSettingsService" link="libnm-glib-NMSettingsService.html"/>
- <sub name="nm-settings-system-interface" link="libnm-glib-NMSettingsSystem.html"/>
+ <sub name="NMSettingsSystem" link="libnm-glib-NMSettingsSystem.html"/>
<sub name="nm-types" link="libnm-glib-nm-types.html"/>
- <sub name="NMVPNConnection" link="libnm-glib-NMVPNConnection.html"/>
+ <sub name="NMVPNConnection" link="NMVPNConnection.html"/>
<sub name="NMVPNPlugin" link="libnm-glib-NMVPNPlugin.html"/>
- <sub name="nm-vpn-plugin-ui-interface" link="libnm-glib-NMVpnPluginUi.html"/>
+ <sub name="NMVpnPluginUi" link="libnm-glib-NMVpnPluginUi.html"/>
</sub>
</chapters>
<functions>
@@ -139,6 +139,7 @@
<function name="The &quot;driver&quot; property" link="NMDevice.html#NMDevice--driver"/>
<function name="The &quot;firmware-missing&quot; property" link="NMDevice.html#NMDevice--firmware-missing"/>
<function name="The &quot;interface&quot; property" link="NMDevice.html#NMDevice--interface"/>
+ <function name="The &quot;ip-interface&quot; property" link="NMDevice.html#NMDevice--ip-interface"/>
<function name="The &quot;ip4-config&quot; property" link="NMDevice.html#NMDevice--ip4-config"/>
<function name="The &quot;ip6-config&quot; property" link="NMDevice.html#NMDevice--ip6-config"/>
<function name="The &quot;managed&quot; property" link="NMDevice.html#NMDevice--managed"/>
@@ -198,15 +199,18 @@
<function name="NMCdmaDevice" link="NMCdmaDevice.html#NMCdmaDevice-struct"/>
<function name="NMCdmaDeviceClass" link="NMCdmaDevice.html#NMCdmaDeviceClass"/>
<function name="nm_cdma_device_new ()" link="NMCdmaDevice.html#nm-cdma-device-new"/>
- <function name="NM_DEVICE_BT_HW_ADDRESS" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS"/>
- <function name="NM_DEVICE_BT_NAME" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS"/>
- <function name="NM_DEVICE_BT_CAPABILITIES" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"/>
- <function name="NMDeviceBt" link="libnm-glib-NMDeviceBt.html#NMDeviceBt"/>
- <function name="NMDeviceBtClass" link="libnm-glib-NMDeviceBt.html#NMDeviceBtClass"/>
- <function name="nm_device_bt_new ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-new"/>
- <function name="nm_device_bt_get_hw_address ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-hw-address"/>
- <function name="nm_device_bt_get_name ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-name"/>
- <function name="nm_device_bt_get_capabilities ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-capabilities"/>
+ <function name="NM_DEVICE_BT_HW_ADDRESS" link="NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS"/>
+ <function name="NM_DEVICE_BT_NAME" link="NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS"/>
+ <function name="NM_DEVICE_BT_CAPABILITIES" link="NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"/>
+ <function name="NMDeviceBt" link="NMDeviceBt.html#NMDeviceBt-struct"/>
+ <function name="NMDeviceBtClass" link="NMDeviceBt.html#NMDeviceBtClass"/>
+ <function name="nm_device_bt_new ()" link="NMDeviceBt.html#nm-device-bt-new"/>
+ <function name="nm_device_bt_get_hw_address ()" link="NMDeviceBt.html#nm-device-bt-get-hw-address"/>
+ <function name="nm_device_bt_get_name ()" link="NMDeviceBt.html#nm-device-bt-get-name"/>
+ <function name="nm_device_bt_get_capabilities ()" link="NMDeviceBt.html#nm-device-bt-get-capabilities"/>
+ <function name="The &quot;bt-capabilities&quot; property" link="NMDeviceBt.html#NMDeviceBt--bt-capabilities"/>
+ <function name="The &quot;hw-address&quot; property" link="NMDeviceBt.html#NMDeviceBt--hw-address"/>
+ <function name="The &quot;name&quot; property" link="NMDeviceBt.html#NMDeviceBt--name"/>
<function name="NM_ACCESS_POINT_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-FLAGS:CAPS"/>
<function name="NM_ACCESS_POINT_WPA_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-WPA-FLAGS:CAPS"/>
<function name="NM_ACCESS_POINT_RSN_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-RSN-FLAGS:CAPS"/>
@@ -286,9 +290,10 @@
<function name="nm_dhcp6_config_new ()" link="NMDHCP6Config.html#nm-dhcp6-config-new"/>
<function name="nm_dhcp6_config_get_options ()" link="NMDHCP6Config.html#nm-dhcp6-config-get-options"/>
<function name="nm_dhcp6_config_get_one_option ()" link="NMDHCP6Config.html#nm-dhcp6-config-get-one-option"/>
- <function name="NMExportedConnection" link="libnm-glib-NMExportedConnection.html#NMExportedConnection"/>
- <function name="NMExportedConnectionClass" link="libnm-glib-NMExportedConnection.html#NMExportedConnectionClass"/>
- <function name="nm_exported_connection_new ()" link="libnm-glib-NMExportedConnection.html#nm-exported-connection-new"/>
+ <function name="The &quot;options&quot; property" link="NMDHCP6Config.html#NMDHCP6Config--options"/>
+ <function name="NMExportedConnection" link="NMExportedConnection.html#NMExportedConnection-struct"/>
+ <function name="NMExportedConnectionClass" link="NMExportedConnection.html#NMExportedConnectionClass"/>
+ <function name="nm_exported_connection_new ()" link="NMExportedConnection.html#nm-exported-connection-new"/>
<function name="NM_OBJECT_DBUS_CONNECTION" link="NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS"/>
<function name="NM_OBJECT_DBUS_PATH" link="NMObject.html#NM-OBJECT-DBUS-PATH:CAPS"/>
<function name="NMObject" link="NMObject.html#NMObject-struct"/>
@@ -297,21 +302,26 @@
<function name="nm_object_get_path ()" link="NMObject.html#nm-object-get-path"/>
<function name="The &quot;dbus-connection&quot; property" link="NMObject.html#NMObject--dbus-connection"/>
<function name="The &quot;dbus-path&quot; property" link="NMObject.html#NMObject--dbus-path"/>
- <function name="NMRemoteConnection" link="libnm-glib-NMRemoteConnection.html#NMRemoteConnection"/>
- <function name="NMRemoteConnectionClass" link="libnm-glib-NMRemoteConnection.html#NMRemoteConnectionClass"/>
- <function name="nm_remote_connection_new ()" link="libnm-glib-NMRemoteConnection.html#nm-remote-connection-new"/>
- <function name="NM_REMOTE_SETTINGS_BUS" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS"/>
- <function name="NM_REMOTE_SETTINGS_SCOPE" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS"/>
- <function name="NM_REMOTE_SETTINGS_SERVICE_RUNNING" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"/>
- <function name="NMRemoteSettings" link="libnm-glib-NMRemoteSettings.html#NMRemoteSettings"/>
- <function name="NMRemoteSettingsClass" link="libnm-glib-NMRemoteSettings.html#NMRemoteSettingsClass"/>
- <function name="nm_remote_settings_new ()" link="libnm-glib-NMRemoteSettings.html#nm-remote-settings-new"/>
+ <function name="NMRemoteConnection" link="NMRemoteConnection.html#NMRemoteConnection-struct"/>
+ <function name="NMRemoteConnectionClass" link="NMRemoteConnection.html#NMRemoteConnectionClass"/>
+ <function name="nm_remote_connection_new ()" link="NMRemoteConnection.html#nm-remote-connection-new"/>
+ <function name="The &quot;bus&quot; property" link="NMRemoteConnection.html#NMRemoteConnection--bus"/>
+ <function name="The &quot;init-result&quot; property" link="NMRemoteConnection.html#NMRemoteConnection--init-result"/>
+ <function name="NM_REMOTE_SETTINGS_BUS" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS"/>
+ <function name="NM_REMOTE_SETTINGS_SCOPE" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS"/>
+ <function name="NM_REMOTE_SETTINGS_SERVICE_RUNNING" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"/>
+ <function name="NMRemoteSettings" link="NMRemoteSettings.html#NMRemoteSettings-struct"/>
+ <function name="NMRemoteSettingsClass" link="NMRemoteSettings.html#NMRemoteSettingsClass"/>
+ <function name="nm_remote_settings_new ()" link="NMRemoteSettings.html#nm-remote-settings-new"/>
+ <function name="The &quot;bus&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--bus"/>
+ <function name="The &quot;scope&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--scope"/>
+ <function name="The &quot;service-running&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--service-running"/>
<function name="NMRemoteSettingsSystem" link="libnm-glib-NMRemoteSettingsSystem.html#NMRemoteSettingsSystem"/>
<function name="NMRemoteSettingsSystemClass" link="libnm-glib-NMRemoteSettingsSystem.html#NMRemoteSettingsSystemClass"/>
<function name="nm_remote_settings_system_new ()" link="libnm-glib-NMRemoteSettingsSystem.html#nm-remote-settings-system-new"/>
<function name="NM_SETTINGS_CONNECTION_INTERFACE_UPDATED" link="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS"/>
<function name="NM_SETTINGS_CONNECTION_INTERFACE_REMOVED" link="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-REMOVED:CAPS"/>
- <function name="NMSettingsConnectionInterface" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"/>
+ <function name="NMSettingsConnectionInterface" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface-struct"/>
<function name="NMSettingsConnectionInterfaceUpdateFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc"/>
<function name="NMSettingsConnectionInterfaceDeleteFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc"/>
<function name="NMSettingsConnectionInterfaceGetSecretsFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceGetSecretsFunc"/>
@@ -325,7 +335,7 @@
<function name="NM_TYPE_SETTINGS_INTERFACE_ERROR" link="libnm-glib-NMSettings.html#NM-TYPE-SETTINGS-INTERFACE-ERROR:CAPS"/>
<function name="NM_SETTINGS_INTERFACE_NEW_CONNECTION" link="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-NEW-CONNECTION:CAPS"/>
<function name="NM_SETTINGS_INTERFACE_CONNECTIONS_READ" link="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-CONNECTIONS-READ:CAPS"/>
- <function name="NMSettingsInterface" link="libnm-glib-NMSettings.html#NMSettingsInterface"/>
+ <function name="NMSettingsInterface" link="libnm-glib-NMSettings.html#NMSettingsInterface-struct"/>
<function name="NMSettingsAddConnectionFunc ()" link="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc"/>
<function name="nm_settings_interface_get_type ()" link="libnm-glib-NMSettings.html#nm-settings-interface-get-type"/>
<function name="nm_settings_interface_list_connections ()" link="libnm-glib-NMSettings.html#nm-settings-interface-list-connections"/>
@@ -362,13 +372,16 @@
<function name="nm_ip6_address_array_get_type ()" link="libnm-glib-nm-types.html#nm-ip6-address-array-get-type"/>
<function name="NM_TYPE_IP6_ROUTE_OBJECT_ARRAY" link="libnm-glib-nm-types.html#NM-TYPE-IP6-ROUTE-OBJECT-ARRAY:CAPS"/>
<function name="nm_ip6_route_object_array_get_type ()" link="libnm-glib-nm-types.html#nm-ip6-route-object-array-get-type"/>
- <function name="NM_VPN_CONNECTION_VPN_STATE" link="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS"/>
- <function name="NM_VPN_CONNECTION_BANNER" link="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS"/>
- <function name="NMVPNConnection" link="libnm-glib-NMVPNConnection.html#NMVPNConnection"/>
- <function name="NMVPNConnectionClass" link="libnm-glib-NMVPNConnection.html#NMVPNConnectionClass"/>
- <function name="nm_vpn_connection_new ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-new"/>
- <function name="nm_vpn_connection_get_vpn_state ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-vpn-state"/>
- <function name="nm_vpn_connection_get_banner ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-banner"/>
+ <function name="NM_VPN_CONNECTION_VPN_STATE" link="NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS"/>
+ <function name="NM_VPN_CONNECTION_BANNER" link="NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS"/>
+ <function name="NMVPNConnection" link="NMVPNConnection.html#NMVPNConnection-struct"/>
+ <function name="NMVPNConnectionClass" link="NMVPNConnection.html#NMVPNConnectionClass"/>
+ <function name="nm_vpn_connection_new ()" link="NMVPNConnection.html#nm-vpn-connection-new"/>
+ <function name="nm_vpn_connection_get_vpn_state ()" link="NMVPNConnection.html#nm-vpn-connection-get-vpn-state"/>
+ <function name="nm_vpn_connection_get_banner ()" link="NMVPNConnection.html#nm-vpn-connection-get-banner"/>
+ <function name="The &quot;banner&quot; property" link="NMVPNConnection.html#NMVPNConnection--banner"/>
+ <function name="The &quot;vpn-state&quot; property" link="NMVPNConnection.html#NMVPNConnection--vpn-state"/>
+ <function name="The &quot;vpn-state-changed&quot; signal" link="NMVPNConnection.html#NMVPNConnection-vpn-state-changed"/>
<function name="NM_VPN_PLUGIN_DBUS_SERVICE_NAME" link="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-DBUS-SERVICE-NAME:CAPS"/>
<function name="NM_VPN_PLUGIN_STATE" link="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-STATE:CAPS"/>
<function name="enum NMVPNPluginError" link="libnm-glib-NMVPNPlugin.html#NMVPNPluginError"/>
diff --git a/docs/libnm-glib/html/libnm-glib.devhelp2 b/docs/libnm-glib/html/libnm-glib.devhelp2
index ae9daccf5..a3b307982 100644
--- a/docs/libnm-glib/html/libnm-glib.devhelp2
+++ b/docs/libnm-glib/html/libnm-glib.devhelp2
@@ -11,25 +11,25 @@
<sub name="NMSerialDevice" link="NMSerialDevice.html"/>
<sub name="NMGsmDevice" link="NMGsmDevice.html"/>
<sub name="NMCdmaDevice" link="NMCdmaDevice.html"/>
- <sub name="NMDeviceBt" link="libnm-glib-NMDeviceBt.html"/>
+ <sub name="NMDeviceBt" link="NMDeviceBt.html"/>
<sub name="NMAccessPoint" link="NMAccessPoint.html"/>
<sub name="NMIP4Config" link="NMIP4Config.html"/>
<sub name="NMIP6Config" link="NMIP6Config.html"/>
<sub name="NMDHCP4Config" link="NMDHCP4Config.html"/>
<sub name="NMDHCP6Config" link="NMDHCP6Config.html"/>
- <sub name="NMExportedConnection" link="libnm-glib-NMExportedConnection.html"/>
+ <sub name="NMExportedConnection" link="NMExportedConnection.html"/>
<sub name="NMObject" link="NMObject.html"/>
- <sub name="NMRemoteConnection" link="libnm-glib-NMRemoteConnection.html"/>
- <sub name="NMRemoteSettings" link="libnm-glib-NMRemoteSettings.html"/>
+ <sub name="NMRemoteConnection" link="NMRemoteConnection.html"/>
+ <sub name="NMRemoteSettings" link="NMRemoteSettings.html"/>
<sub name="NMRemoteSettingsSystem" link="libnm-glib-NMRemoteSettingsSystem.html"/>
- <sub name="nm-settings-connection-interface" link="libnm-glib-NMSettingsConnection.html"/>
- <sub name="nm-settings-interface" link="libnm-glib-NMSettings.html"/>
+ <sub name="NMSettingsConnection" link="libnm-glib-NMSettingsConnection.html"/>
+ <sub name="NMSettings" link="libnm-glib-NMSettings.html"/>
<sub name="NMSettingsService" link="libnm-glib-NMSettingsService.html"/>
- <sub name="nm-settings-system-interface" link="libnm-glib-NMSettingsSystem.html"/>
+ <sub name="NMSettingsSystem" link="libnm-glib-NMSettingsSystem.html"/>
<sub name="nm-types" link="libnm-glib-nm-types.html"/>
- <sub name="NMVPNConnection" link="libnm-glib-NMVPNConnection.html"/>
+ <sub name="NMVPNConnection" link="NMVPNConnection.html"/>
<sub name="NMVPNPlugin" link="libnm-glib-NMVPNPlugin.html"/>
- <sub name="nm-vpn-plugin-ui-interface" link="libnm-glib-NMVpnPluginUi.html"/>
+ <sub name="NMVpnPluginUi" link="libnm-glib-NMVpnPluginUi.html"/>
</sub>
</chapters>
<functions>
@@ -139,6 +139,7 @@
<keyword type="property" name="The &quot;driver&quot; property" link="NMDevice.html#NMDevice--driver"/>
<keyword type="property" name="The &quot;firmware-missing&quot; property" link="NMDevice.html#NMDevice--firmware-missing"/>
<keyword type="property" name="The &quot;interface&quot; property" link="NMDevice.html#NMDevice--interface"/>
+ <keyword type="property" name="The &quot;ip-interface&quot; property" link="NMDevice.html#NMDevice--ip-interface"/>
<keyword type="property" name="The &quot;ip4-config&quot; property" link="NMDevice.html#NMDevice--ip4-config"/>
<keyword type="property" name="The &quot;ip6-config&quot; property" link="NMDevice.html#NMDevice--ip6-config"/>
<keyword type="property" name="The &quot;managed&quot; property" link="NMDevice.html#NMDevice--managed"/>
@@ -198,15 +199,18 @@
<keyword type="struct" name="NMCdmaDevice" link="NMCdmaDevice.html#NMCdmaDevice-struct"/>
<keyword type="struct" name="NMCdmaDeviceClass" link="NMCdmaDevice.html#NMCdmaDeviceClass"/>
<keyword type="function" name="nm_cdma_device_new ()" link="NMCdmaDevice.html#nm-cdma-device-new"/>
- <keyword type="macro" name="NM_DEVICE_BT_HW_ADDRESS" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS"/>
- <keyword type="macro" name="NM_DEVICE_BT_NAME" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS"/>
- <keyword type="macro" name="NM_DEVICE_BT_CAPABILITIES" link="libnm-glib-NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"/>
- <keyword type="struct" name="NMDeviceBt" link="libnm-glib-NMDeviceBt.html#NMDeviceBt"/>
- <keyword type="struct" name="NMDeviceBtClass" link="libnm-glib-NMDeviceBt.html#NMDeviceBtClass"/>
- <keyword type="function" name="nm_device_bt_new ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-new"/>
- <keyword type="function" name="nm_device_bt_get_hw_address ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-hw-address"/>
- <keyword type="function" name="nm_device_bt_get_name ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-name"/>
- <keyword type="function" name="nm_device_bt_get_capabilities ()" link="libnm-glib-NMDeviceBt.html#nm-device-bt-get-capabilities"/>
+ <keyword type="macro" name="NM_DEVICE_BT_HW_ADDRESS" link="NMDeviceBt.html#NM-DEVICE-BT-HW-ADDRESS:CAPS"/>
+ <keyword type="macro" name="NM_DEVICE_BT_NAME" link="NMDeviceBt.html#NM-DEVICE-BT-NAME:CAPS"/>
+ <keyword type="macro" name="NM_DEVICE_BT_CAPABILITIES" link="NMDeviceBt.html#NM-DEVICE-BT-CAPABILITIES:CAPS"/>
+ <keyword type="struct" name="NMDeviceBt" link="NMDeviceBt.html#NMDeviceBt-struct"/>
+ <keyword type="struct" name="NMDeviceBtClass" link="NMDeviceBt.html#NMDeviceBtClass"/>
+ <keyword type="function" name="nm_device_bt_new ()" link="NMDeviceBt.html#nm-device-bt-new"/>
+ <keyword type="function" name="nm_device_bt_get_hw_address ()" link="NMDeviceBt.html#nm-device-bt-get-hw-address"/>
+ <keyword type="function" name="nm_device_bt_get_name ()" link="NMDeviceBt.html#nm-device-bt-get-name"/>
+ <keyword type="function" name="nm_device_bt_get_capabilities ()" link="NMDeviceBt.html#nm-device-bt-get-capabilities"/>
+ <keyword type="property" name="The &quot;bt-capabilities&quot; property" link="NMDeviceBt.html#NMDeviceBt--bt-capabilities"/>
+ <keyword type="property" name="The &quot;hw-address&quot; property" link="NMDeviceBt.html#NMDeviceBt--hw-address"/>
+ <keyword type="property" name="The &quot;name&quot; property" link="NMDeviceBt.html#NMDeviceBt--name"/>
<keyword type="macro" name="NM_ACCESS_POINT_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-FLAGS:CAPS"/>
<keyword type="macro" name="NM_ACCESS_POINT_WPA_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-WPA-FLAGS:CAPS"/>
<keyword type="macro" name="NM_ACCESS_POINT_RSN_FLAGS" link="NMAccessPoint.html#NM-ACCESS-POINT-RSN-FLAGS:CAPS"/>
@@ -286,9 +290,10 @@
<keyword type="function" name="nm_dhcp6_config_new ()" link="NMDHCP6Config.html#nm-dhcp6-config-new"/>
<keyword type="function" name="nm_dhcp6_config_get_options ()" link="NMDHCP6Config.html#nm-dhcp6-config-get-options"/>
<keyword type="function" name="nm_dhcp6_config_get_one_option ()" link="NMDHCP6Config.html#nm-dhcp6-config-get-one-option"/>
- <keyword type="struct" name="NMExportedConnection" link="libnm-glib-NMExportedConnection.html#NMExportedConnection"/>
- <keyword type="struct" name="NMExportedConnectionClass" link="libnm-glib-NMExportedConnection.html#NMExportedConnectionClass"/>
- <keyword type="function" name="nm_exported_connection_new ()" link="libnm-glib-NMExportedConnection.html#nm-exported-connection-new"/>
+ <keyword type="property" name="The &quot;options&quot; property" link="NMDHCP6Config.html#NMDHCP6Config--options"/>
+ <keyword type="struct" name="NMExportedConnection" link="NMExportedConnection.html#NMExportedConnection-struct"/>
+ <keyword type="struct" name="NMExportedConnectionClass" link="NMExportedConnection.html#NMExportedConnectionClass"/>
+ <keyword type="function" name="nm_exported_connection_new ()" link="NMExportedConnection.html#nm-exported-connection-new"/>
<keyword type="macro" name="NM_OBJECT_DBUS_CONNECTION" link="NMObject.html#NM-OBJECT-DBUS-CONNECTION:CAPS"/>
<keyword type="macro" name="NM_OBJECT_DBUS_PATH" link="NMObject.html#NM-OBJECT-DBUS-PATH:CAPS"/>
<keyword type="struct" name="NMObject" link="NMObject.html#NMObject-struct"/>
@@ -297,21 +302,26 @@
<keyword type="function" name="nm_object_get_path ()" link="NMObject.html#nm-object-get-path"/>
<keyword type="property" name="The &quot;dbus-connection&quot; property" link="NMObject.html#NMObject--dbus-connection"/>
<keyword type="property" name="The &quot;dbus-path&quot; property" link="NMObject.html#NMObject--dbus-path"/>
- <keyword type="struct" name="NMRemoteConnection" link="libnm-glib-NMRemoteConnection.html#NMRemoteConnection"/>
- <keyword type="struct" name="NMRemoteConnectionClass" link="libnm-glib-NMRemoteConnection.html#NMRemoteConnectionClass"/>
- <keyword type="function" name="nm_remote_connection_new ()" link="libnm-glib-NMRemoteConnection.html#nm-remote-connection-new"/>
- <keyword type="macro" name="NM_REMOTE_SETTINGS_BUS" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS"/>
- <keyword type="macro" name="NM_REMOTE_SETTINGS_SCOPE" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS"/>
- <keyword type="macro" name="NM_REMOTE_SETTINGS_SERVICE_RUNNING" link="libnm-glib-NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"/>
- <keyword type="struct" name="NMRemoteSettings" link="libnm-glib-NMRemoteSettings.html#NMRemoteSettings"/>
- <keyword type="struct" name="NMRemoteSettingsClass" link="libnm-glib-NMRemoteSettings.html#NMRemoteSettingsClass"/>
- <keyword type="function" name="nm_remote_settings_new ()" link="libnm-glib-NMRemoteSettings.html#nm-remote-settings-new"/>
+ <keyword type="struct" name="NMRemoteConnection" link="NMRemoteConnection.html#NMRemoteConnection-struct"/>
+ <keyword type="struct" name="NMRemoteConnectionClass" link="NMRemoteConnection.html#NMRemoteConnectionClass"/>
+ <keyword type="function" name="nm_remote_connection_new ()" link="NMRemoteConnection.html#nm-remote-connection-new"/>
+ <keyword type="property" name="The &quot;bus&quot; property" link="NMRemoteConnection.html#NMRemoteConnection--bus"/>
+ <keyword type="property" name="The &quot;init-result&quot; property" link="NMRemoteConnection.html#NMRemoteConnection--init-result"/>
+ <keyword type="macro" name="NM_REMOTE_SETTINGS_BUS" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-BUS:CAPS"/>
+ <keyword type="macro" name="NM_REMOTE_SETTINGS_SCOPE" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SCOPE:CAPS"/>
+ <keyword type="macro" name="NM_REMOTE_SETTINGS_SERVICE_RUNNING" link="NMRemoteSettings.html#NM-REMOTE-SETTINGS-SERVICE-RUNNING:CAPS"/>
+ <keyword type="struct" name="NMRemoteSettings" link="NMRemoteSettings.html#NMRemoteSettings-struct"/>
+ <keyword type="struct" name="NMRemoteSettingsClass" link="NMRemoteSettings.html#NMRemoteSettingsClass"/>
+ <keyword type="function" name="nm_remote_settings_new ()" link="NMRemoteSettings.html#nm-remote-settings-new"/>
+ <keyword type="property" name="The &quot;bus&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--bus"/>
+ <keyword type="property" name="The &quot;scope&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--scope"/>
+ <keyword type="property" name="The &quot;service-running&quot; property" link="NMRemoteSettings.html#NMRemoteSettings--service-running"/>
<keyword type="struct" name="NMRemoteSettingsSystem" link="libnm-glib-NMRemoteSettingsSystem.html#NMRemoteSettingsSystem"/>
<keyword type="struct" name="NMRemoteSettingsSystemClass" link="libnm-glib-NMRemoteSettingsSystem.html#NMRemoteSettingsSystemClass"/>
<keyword type="function" name="nm_remote_settings_system_new ()" link="libnm-glib-NMRemoteSettingsSystem.html#nm-remote-settings-system-new"/>
<keyword type="macro" name="NM_SETTINGS_CONNECTION_INTERFACE_UPDATED" link="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-UPDATED:CAPS"/>
<keyword type="macro" name="NM_SETTINGS_CONNECTION_INTERFACE_REMOVED" link="libnm-glib-NMSettingsConnection.html#NM-SETTINGS-CONNECTION-INTERFACE-REMOVED:CAPS"/>
- <keyword type="struct" name="NMSettingsConnectionInterface" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface"/>
+ <keyword type="struct" name="NMSettingsConnectionInterface" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterface-struct"/>
<keyword type="function" name="NMSettingsConnectionInterfaceUpdateFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceUpdateFunc"/>
<keyword type="function" name="NMSettingsConnectionInterfaceDeleteFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceDeleteFunc"/>
<keyword type="function" name="NMSettingsConnectionInterfaceGetSecretsFunc ()" link="libnm-glib-NMSettingsConnection.html#NMSettingsConnectionInterfaceGetSecretsFunc"/>
@@ -325,7 +335,7 @@
<keyword type="macro" name="NM_TYPE_SETTINGS_INTERFACE_ERROR" link="libnm-glib-NMSettings.html#NM-TYPE-SETTINGS-INTERFACE-ERROR:CAPS"/>
<keyword type="macro" name="NM_SETTINGS_INTERFACE_NEW_CONNECTION" link="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-NEW-CONNECTION:CAPS"/>
<keyword type="macro" name="NM_SETTINGS_INTERFACE_CONNECTIONS_READ" link="libnm-glib-NMSettings.html#NM-SETTINGS-INTERFACE-CONNECTIONS-READ:CAPS"/>
- <keyword type="struct" name="NMSettingsInterface" link="libnm-glib-NMSettings.html#NMSettingsInterface"/>
+ <keyword type="struct" name="NMSettingsInterface" link="libnm-glib-NMSettings.html#NMSettingsInterface-struct"/>
<keyword type="function" name="NMSettingsAddConnectionFunc ()" link="libnm-glib-NMSettings.html#NMSettingsAddConnectionFunc"/>
<keyword type="function" name="nm_settings_interface_get_type ()" link="libnm-glib-NMSettings.html#nm-settings-interface-get-type"/>
<keyword type="function" name="nm_settings_interface_list_connections ()" link="libnm-glib-NMSettings.html#nm-settings-interface-list-connections"/>
@@ -362,13 +372,16 @@
<keyword type="function" name="nm_ip6_address_array_get_type ()" link="libnm-glib-nm-types.html#nm-ip6-address-array-get-type"/>
<keyword type="macro" name="NM_TYPE_IP6_ROUTE_OBJECT_ARRAY" link="libnm-glib-nm-types.html#NM-TYPE-IP6-ROUTE-OBJECT-ARRAY:CAPS"/>
<keyword type="function" name="nm_ip6_route_object_array_get_type ()" link="libnm-glib-nm-types.html#nm-ip6-route-object-array-get-type"/>
- <keyword type="macro" name="NM_VPN_CONNECTION_VPN_STATE" link="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS"/>
- <keyword type="macro" name="NM_VPN_CONNECTION_BANNER" link="libnm-glib-NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS"/>
- <keyword type="struct" name="NMVPNConnection" link="libnm-glib-NMVPNConnection.html#NMVPNConnection"/>
- <keyword type="struct" name="NMVPNConnectionClass" link="libnm-glib-NMVPNConnection.html#NMVPNConnectionClass"/>
- <keyword type="function" name="nm_vpn_connection_new ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-new"/>
- <keyword type="function" name="nm_vpn_connection_get_vpn_state ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-vpn-state"/>
- <keyword type="function" name="nm_vpn_connection_get_banner ()" link="libnm-glib-NMVPNConnection.html#nm-vpn-connection-get-banner"/>
+ <keyword type="macro" name="NM_VPN_CONNECTION_VPN_STATE" link="NMVPNConnection.html#NM-VPN-CONNECTION-VPN-STATE:CAPS"/>
+ <keyword type="macro" name="NM_VPN_CONNECTION_BANNER" link="NMVPNConnection.html#NM-VPN-CONNECTION-BANNER:CAPS"/>
+ <keyword type="struct" name="NMVPNConnection" link="NMVPNConnection.html#NMVPNConnection-struct"/>
+ <keyword type="struct" name="NMVPNConnectionClass" link="NMVPNConnection.html#NMVPNConnectionClass"/>
+ <keyword type="function" name="nm_vpn_connection_new ()" link="NMVPNConnection.html#nm-vpn-connection-new"/>
+ <keyword type="function" name="nm_vpn_connection_get_vpn_state ()" link="NMVPNConnection.html#nm-vpn-connection-get-vpn-state"/>
+ <keyword type="function" name="nm_vpn_connection_get_banner ()" link="NMVPNConnection.html#nm-vpn-connection-get-banner"/>
+ <keyword type="property" name="The &quot;banner&quot; property" link="NMVPNConnection.html#NMVPNConnection--banner"/>
+ <keyword type="property" name="The &quot;vpn-state&quot; property" link="NMVPNConnection.html#NMVPNConnection--vpn-state"/>
+ <keyword type="signal" name="The &quot;vpn-state-changed&quot; signal" link="NMVPNConnection.html#NMVPNConnection-vpn-state-changed"/>
<keyword type="macro" name="NM_VPN_PLUGIN_DBUS_SERVICE_NAME" link="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-DBUS-SERVICE-NAME:CAPS"/>
<keyword type="macro" name="NM_VPN_PLUGIN_STATE" link="libnm-glib-NMVPNPlugin.html#NM-VPN-PLUGIN-STATE:CAPS"/>
<keyword type="enum" name="enum NMVPNPluginError" link="libnm-glib-NMVPNPlugin.html#NMVPNPluginError"/>
diff --git a/docs/libnm-glib/libnm-glib-sections.txt b/docs/libnm-glib/libnm-glib-sections.txt
index 90bb4f61a..a585d42c3 100644
--- a/docs/libnm-glib/libnm-glib-sections.txt
+++ b/docs/libnm-glib/libnm-glib-sections.txt
@@ -1,17 +1,63 @@
<SECTION>
-<FILE>nm-remote-settings-system</FILE>
-<TITLE>NMRemoteSettingsSystem</TITLE>
-NMRemoteSettingsSystem
-NMRemoteSettingsSystemClass
-nm_remote_settings_system_new
+<FILE>nm-exported-connection</FILE>
+<TITLE>NMExportedConnection</TITLE>
+NMExportedConnection
+NMExportedConnectionClass
+nm_exported_connection_new
<SUBSECTION Standard>
-NM_REMOTE_SETTINGS_SYSTEM
-NM_IS_REMOTE_SETTINGS_SYSTEM
-NM_TYPE_REMOTE_SETTINGS_SYSTEM
-nm_remote_settings_system_get_type
-NM_REMOTE_SETTINGS_SYSTEM_CLASS
-NM_IS_REMOTE_SETTINGS_SYSTEM_CLASS
-NM_REMOTE_SETTINGS_SYSTEM_GET_CLASS
+NM_EXPORTED_CONNECTION
+NM_IS_EXPORTED_CONNECTION
+NM_TYPE_EXPORTED_CONNECTION
+nm_exported_connection_get_type
+NM_EXPORTED_CONNECTION_CLASS
+NM_IS_EXPORTED_CONNECTION_CLASS
+NM_EXPORTED_CONNECTION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-device</FILE>
+<TITLE>NMDevice</TITLE>
+NM_DEVICE_UDI
+NM_DEVICE_INTERFACE
+NM_DEVICE_IP_INTERFACE
+NM_DEVICE_DRIVER
+NM_DEVICE_CAPABILITIES
+NM_DEVICE_MANAGED
+NM_DEVICE_FIRMWARE_MISSING
+NM_DEVICE_IP4_CONFIG
+NM_DEVICE_DHCP4_CONFIG
+NM_DEVICE_IP6_CONFIG
+NM_DEVICE_DHCP6_CONFIG
+NM_DEVICE_STATE
+NM_DEVICE_VENDOR
+NM_DEVICE_PRODUCT
+NMDevice
+NMDeviceClass
+nm_device_new
+nm_device_get_iface
+nm_device_get_ip_iface
+nm_device_get_udi
+nm_device_get_driver
+nm_device_get_capabilities
+nm_device_get_managed
+nm_device_get_firmware_missing
+nm_device_get_ip4_config
+nm_device_get_dhcp4_config
+nm_device_get_ip6_config
+nm_device_get_dhcp6_config
+nm_device_get_state
+nm_device_get_product
+nm_device_get_vendor
+NMDeviceDeactivateFn
+nm_device_disconnect
+<SUBSECTION Standard>
+NM_DEVICE
+NM_IS_DEVICE
+NM_TYPE_DEVICE
+nm_device_get_type
+NM_DEVICE_CLASS
+NM_IS_DEVICE_CLASS
+NM_DEVICE_GET_CLASS
</SECTION>
<SECTION>
@@ -46,24 +92,106 @@ NM_ACTIVE_CONNECTION_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-settings-system-interface</FILE>
-<TITLE>NMSettingsSystem</TITLE>
-NMSettingsSystemPermissions
-NM_SETTINGS_SYSTEM_INTERFACE_HOSTNAME
-NM_SETTINGS_SYSTEM_INTERFACE_CAN_MODIFY
-NM_SETTINGS_SYSTEM_INTERFACE_CHECK_PERMISSIONS
-NMSettingsSystemInterfaceProp
-NMSettingsSystemInterface
-NMSettingsSystemSaveHostnameFunc
-NMSettingsSystemGetPermissionsFunc
-nm_settings_system_interface_save_hostname
-nm_settings_system_interface_get_permissions
+<FILE>nm-access-point</FILE>
+<TITLE>NMAccessPoint</TITLE>
+NM_ACCESS_POINT_FLAGS
+NM_ACCESS_POINT_WPA_FLAGS
+NM_ACCESS_POINT_RSN_FLAGS
+NM_ACCESS_POINT_SSID
+NM_ACCESS_POINT_FREQUENCY
+NM_ACCESS_POINT_HW_ADDRESS
+NM_ACCESS_POINT_MODE
+NM_ACCESS_POINT_MAX_BITRATE
+NM_ACCESS_POINT_STRENGTH
+NMAccessPoint
+NMAccessPointClass
+nm_access_point_new
+nm_access_point_get_flags
+nm_access_point_get_wpa_flags
+nm_access_point_get_rsn_flags
+nm_access_point_get_ssid
+nm_access_point_get_frequency
+nm_access_point_get_hw_address
+nm_access_point_get_mode
+nm_access_point_get_max_bitrate
+nm_access_point_get_strength
<SUBSECTION Standard>
-NM_SETTINGS_SYSTEM_INTERFACE
-NM_IS_SETTINGS_SYSTEM_INTERFACE
-NM_TYPE_SETTINGS_SYSTEM_INTERFACE
-nm_settings_system_interface_get_type
-NM_SETTINGS_SYSTEM_INTERFACE_GET_INTERFACE
+NM_ACCESS_POINT
+NM_IS_ACCESS_POINT
+NM_TYPE_ACCESS_POINT
+nm_access_point_get_type
+NM_ACCESS_POINT_CLASS
+NM_IS_ACCESS_POINT_CLASS
+NM_ACCESS_POINT_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-vpn-connection</FILE>
+<TITLE>NMVPNConnection</TITLE>
+NM_VPN_CONNECTION_VPN_STATE
+NM_VPN_CONNECTION_BANNER
+NMVPNConnection
+NMVPNConnectionClass
+nm_vpn_connection_new
+nm_vpn_connection_get_vpn_state
+nm_vpn_connection_get_banner
+<SUBSECTION Standard>
+NM_VPN_CONNECTION
+NM_IS_VPN_CONNECTION
+NM_TYPE_VPN_CONNECTION
+nm_vpn_connection_get_type
+NM_VPN_CONNECTION_CLASS
+NM_IS_VPN_CONNECTION_CLASS
+NM_VPN_CONNECTION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-settings-connection-interface</FILE>
+<TITLE>NMSettingsConnection</TITLE>
+NM_SETTINGS_CONNECTION_INTERFACE_UPDATED
+NM_SETTINGS_CONNECTION_INTERFACE_REMOVED
+NMSettingsConnectionInterface
+NMSettingsConnectionInterfaceUpdateFunc
+NMSettingsConnectionInterfaceDeleteFunc
+NMSettingsConnectionInterfaceGetSecretsFunc
+nm_settings_connection_interface_update
+nm_settings_connection_interface_delete
+nm_settings_connection_interface_get_secrets
+nm_settings_connection_interface_emit_updated
+<SUBSECTION Standard>
+NM_SETTINGS_CONNECTION_INTERFACE
+NM_IS_SETTINGS_CONNECTION_INTERFACE
+NM_TYPE_SETTINGS_CONNECTION_INTERFACE
+nm_settings_connection_interface_get_type
+NM_SETTINGS_CONNECTION_INTERFACE_GET_INTERFACE
+</SECTION>
+
+<SECTION>
+<FILE>nm-ip4-config</FILE>
+<TITLE>NMIP4Config</TITLE>
+NMIP4Config
+NMIP4ConfigClass
+NM_IP4_CONFIG_ADDRESSES
+NM_IP4_CONFIG_HOSTNAME
+NM_IP4_CONFIG_NAMESERVERS
+NM_IP4_CONFIG_DOMAINS
+NM_IP4_CONFIG_ROUTES
+NM_IP4_CONFIG_WINS_SERVERS
+nm_ip4_config_new
+nm_ip4_config_get_addresses
+nm_ip4_config_get_hostname
+nm_ip4_config_get_nameservers
+nm_ip4_config_get_domains
+nm_ip4_config_get_routes
+nm_ip4_config_get_wins_servers
+<SUBSECTION Standard>
+NM_IP4_CONFIG
+NM_IS_IP4_CONFIG
+NM_TYPE_IP4_CONFIG
+nm_ip4_config_get_type
+NM_IP4_CONFIG_CLASS
+NM_IS_IP4_CONFIG_CLASS
+NM_IP4_CONFIG_GET_CLASS
</SECTION>
<SECTION>
@@ -86,20 +214,59 @@ NM_REMOTE_SETTINGS_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-serial-device</FILE>
-<TITLE>NMSerialDevice</TITLE>
-NMSerialDevice
-NMSerialDeviceClass
-nm_serial_device_get_bytes_received
-nm_serial_device_get_bytes_sent
+<FILE>nm-ip6-config</FILE>
+<TITLE>NMIP6Config</TITLE>
+NMIP6Config
+NMIP6ConfigClass
+NM_IP6_CONFIG_ADDRESSES
+NM_IP6_CONFIG_NAMESERVERS
+NM_IP6_CONFIG_DOMAINS
+NM_IP6_CONFIG_ROUTES
+nm_ip6_config_new
+nm_ip6_config_get_addresses
+nm_ip6_config_get_nameservers
+nm_ip6_config_get_domains
+nm_ip6_config_get_routes
<SUBSECTION Standard>
-NM_SERIAL_DEVICE
-NM_IS_SERIAL_DEVICE
-NM_TYPE_SERIAL_DEVICE
-nm_serial_device_get_type
-NM_SERIAL_DEVICE_CLASS
-NM_IS_SERIAL_DEVICE_CLASS
-NM_SERIAL_DEVICE_GET_CLASS
+NM_IP6_CONFIG
+NM_IS_IP6_CONFIG
+NM_TYPE_IP6_CONFIG
+nm_ip6_config_get_type
+NM_IP6_CONFIG_CLASS
+NM_IS_IP6_CONFIG_CLASS
+NM_IP6_CONFIG_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-remote-settings-system</FILE>
+<TITLE>NMRemoteSettingsSystem</TITLE>
+NMRemoteSettingsSystem
+NMRemoteSettingsSystemClass
+nm_remote_settings_system_new
+<SUBSECTION Standard>
+NM_REMOTE_SETTINGS_SYSTEM
+NM_IS_REMOTE_SETTINGS_SYSTEM
+NM_TYPE_REMOTE_SETTINGS_SYSTEM
+nm_remote_settings_system_get_type
+NM_REMOTE_SETTINGS_SYSTEM_CLASS
+NM_IS_REMOTE_SETTINGS_SYSTEM_CLASS
+NM_REMOTE_SETTINGS_SYSTEM_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-cdma-device</FILE>
+<TITLE>NMCdmaDevice</TITLE>
+NMCdmaDevice
+NMCdmaDeviceClass
+nm_cdma_device_new
+<SUBSECTION Standard>
+NM_CDMA_DEVICE
+NM_IS_CDMA_DEVICE
+NM_TYPE_CDMA_DEVICE
+nm_cdma_device_get_type
+NM_CDMA_DEVICE_CLASS
+NM_IS_CDMA_DEVICE_CLASS
+NM_CDMA_DEVICE_GET_CLASS
</SECTION>
<SECTION>
@@ -133,6 +300,48 @@ NM_DEVICE_WIFI_GET_CLASS
</SECTION>
<SECTION>
+<FILE>nm-dhcp4-config</FILE>
+<TITLE>NMDHCP4Config</TITLE>
+NMDHCP4Config
+NMDHCP4ConfigClass
+NM_DHCP4_CONFIG_OPTIONS
+nm_dhcp4_config_new
+nm_dhcp4_config_get_options
+nm_dhcp4_config_get_one_option
+<SUBSECTION Standard>
+NM_DHCP4_CONFIG
+NM_IS_DHCP4_CONFIG
+NM_TYPE_DHCP4_CONFIG
+nm_dhcp4_config_get_type
+NM_DHCP4_CONFIG_CLASS
+NM_IS_DHCP4_CONFIG_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-device-ethernet</FILE>
+<TITLE>NMDeviceEthernet</TITLE>
+NM_DEVICE_ETHERNET_HW_ADDRESS
+NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS
+NM_DEVICE_ETHERNET_SPEED
+NM_DEVICE_ETHERNET_CARRIER
+NMDeviceEthernet
+NMDeviceEthernetClass
+nm_device_ethernet_new
+nm_device_ethernet_get_hw_address
+nm_device_ethernet_get_permanent_hw_address
+nm_device_ethernet_get_speed
+nm_device_ethernet_get_carrier
+<SUBSECTION Standard>
+NM_DEVICE_ETHERNET
+NM_IS_DEVICE_ETHERNET
+NM_TYPE_DEVICE_ETHERNET
+nm_device_ethernet_get_type
+NM_DEVICE_ETHERNET_CLASS
+NM_IS_DEVICE_ETHERNET_CLASS
+NM_DEVICE_ETHERNET_GET_CLASS
+</SECTION>
+
+<SECTION>
<FILE>nm-dhcp6-config</FILE>
<TITLE>NMDHCP6Config</TITLE>
NMDHCP6Config
@@ -151,109 +360,63 @@ NM_IS_DHCP6_CONFIG_CLASS
</SECTION>
<SECTION>
-<FILE>nm-exported-connection</FILE>
-<TITLE>NMExportedConnection</TITLE>
-NMExportedConnection
-NMExportedConnectionClass
-nm_exported_connection_new
-<SUBSECTION Standard>
-NM_EXPORTED_CONNECTION
-NM_IS_EXPORTED_CONNECTION
-NM_TYPE_EXPORTED_CONNECTION
-nm_exported_connection_get_type
-NM_EXPORTED_CONNECTION_CLASS
-NM_IS_EXPORTED_CONNECTION_CLASS
-NM_EXPORTED_CONNECTION_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-object</FILE>
-<TITLE>NMObject</TITLE>
-NM_OBJECT_DBUS_CONNECTION
-NM_OBJECT_DBUS_PATH
-NMObject
-NMObjectClass
-nm_object_get_connection
-nm_object_get_path
-<SUBSECTION Standard>
-NM_OBJECT
-NM_IS_OBJECT
-NM_TYPE_OBJECT
-nm_object_get_type
-NM_OBJECT_CLASS
-NM_IS_OBJECT_CLASS
-NM_OBJECT_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-settings-interface</FILE>
-<TITLE>NMSettings</TITLE>
-NMSettingsInterfaceError
-NM_SETTINGS_INTERFACE_ERROR
-nm_settings_interface_error_quark
-NM_TYPE_SETTINGS_INTERFACE_ERROR
-NM_SETTINGS_INTERFACE_NEW_CONNECTION
-NM_SETTINGS_INTERFACE_CONNECTIONS_READ
-NMSettingsInterface
-NMSettingsAddConnectionFunc
-nm_settings_interface_get_type
-nm_settings_interface_list_connections
-nm_settings_interface_get_connection_by_path
-nm_settings_interface_add_connection
-<SUBSECTION Standard>
-NM_SETTINGS_INTERFACE
-NM_IS_SETTINGS_INTERFACE
-NM_TYPE_SETTINGS_INTERFACE
-nm_settings_interface_error_get_type
-NM_SETTINGS_INTERFACE_GET_INTERFACE
-</SECTION>
-
-<SECTION>
-<FILE>nm-settings-service</FILE>
-<TITLE>NMSettingsService</TITLE>
-NM_SETTINGS_SERVICE_BUS
-NM_SETTINGS_SERVICE_SCOPE
-NMSettingsService
-NMSettingsServiceClass
-nm_settings_service_get_connection_by_path
-nm_settings_service_export
-nm_settings_service_export_connection
+<FILE>nm-client</FILE>
+<TITLE>NMClient</TITLE>
+NM_CLIENT_STATE
+NM_CLIENT_MANAGER_RUNNING
+NM_CLIENT_NETWORKING_ENABLED
+NM_CLIENT_WIRELESS_ENABLED
+NM_CLIENT_WIRELESS_HARDWARE_ENABLED
+NM_CLIENT_WWAN_ENABLED
+NM_CLIENT_WWAN_HARDWARE_ENABLED
+NM_CLIENT_ACTIVE_CONNECTIONS
+NMClientPermission
+NMClientPermissionResult
+NMClient
+NMClientClass
+nm_client_new
+nm_client_get_devices
+nm_client_get_device_by_path
+NMClientActivateDeviceFn
+nm_client_activate_connection
+nm_client_deactivate_connection
+nm_client_networking_get_enabled
+nm_client_networking_set_enabled
+nm_client_wireless_get_enabled
+nm_client_wireless_set_enabled
+nm_client_wireless_hardware_get_enabled
+nm_client_wwan_get_enabled
+nm_client_wwan_set_enabled
+nm_client_wwan_hardware_get_enabled
+nm_client_get_state
+nm_client_get_manager_running
+nm_client_get_active_connections
+nm_client_sleep
+nm_client_get_permission_result
<SUBSECTION Standard>
-NM_SETTINGS_SERVICE
-NM_IS_SETTINGS_SERVICE
-NM_TYPE_SETTINGS_SERVICE
-nm_settings_service_get_type
-NM_SETTINGS_SERVICE_CLASS
-NM_IS_SETTINGS_SERVICE_CLASS
-NM_SETTINGS_SERVICE_GET_CLASS
+NM_CLIENT
+NM_IS_CLIENT
+NM_TYPE_CLIENT
+nm_client_get_type
+NM_CLIENT_CLASS
+NM_IS_CLIENT_CLASS
+NM_CLIENT_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-ip4-config</FILE>
-<TITLE>NMIP4Config</TITLE>
-NMIP4Config
-NMIP4ConfigClass
-NM_IP4_CONFIG_ADDRESSES
-NM_IP4_CONFIG_HOSTNAME
-NM_IP4_CONFIG_NAMESERVERS
-NM_IP4_CONFIG_DOMAINS
-NM_IP4_CONFIG_ROUTES
-NM_IP4_CONFIG_WINS_SERVERS
-nm_ip4_config_new
-nm_ip4_config_get_addresses
-nm_ip4_config_get_hostname
-nm_ip4_config_get_nameservers
-nm_ip4_config_get_domains
-nm_ip4_config_get_routes
-nm_ip4_config_get_wins_servers
+<FILE>nm-remote-connection</FILE>
+<TITLE>NMRemoteConnection</TITLE>
+NMRemoteConnection
+NMRemoteConnectionClass
+nm_remote_connection_new
<SUBSECTION Standard>
-NM_IP4_CONFIG
-NM_IS_IP4_CONFIG
-NM_TYPE_IP4_CONFIG
-nm_ip4_config_get_type
-NM_IP4_CONFIG_CLASS
-NM_IS_IP4_CONFIG_CLASS
-NM_IP4_CONFIG_GET_CLASS
+NM_REMOTE_CONNECTION
+NM_IS_REMOTE_CONNECTION
+NM_TYPE_REMOTE_CONNECTION
+nm_remote_connection_get_type
+NM_REMOTE_CONNECTION_CLASS
+NM_IS_REMOTE_CONNECTION_CLASS
+NM_REMOTE_CONNECTION_GET_CLASS
</SECTION>
<SECTION>
@@ -273,6 +436,43 @@ NM_GSM_DEVICE_GET_CLASS
</SECTION>
<SECTION>
+<FILE>nm-vpn-plugin-ui-interface</FILE>
+<TITLE>NMVpnPluginUiWidget</TITLE>
+<TITLE>NMVpnPluginUi</TITLE>
+NMVpnPluginUiInterface
+NMVpnPluginUiWidgetInterface
+NMVpnPluginUiFactory
+nm_vpn_plugin_ui_factory
+NM_VPN_PLUGIN_UI_CAPABILITY_NONE
+NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT
+NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT
+NM_VPN_PLUGIN_UI_INTERFACE_NAME
+NM_VPN_PLUGIN_UI_INTERFACE_DESC
+NM_VPN_PLUGIN_UI_INTERFACE_SERVICE
+NMVpnPluginUiInterfaceProp
+nm_vpn_plugin_ui_interface_ui_factory
+nm_vpn_plugin_ui_interface_get_capabilities
+nm_vpn_plugin_ui_interface_import
+nm_vpn_plugin_ui_interface_export
+nm_vpn_plugin_ui_interface_get_suggested_name
+nm_vpn_plugin_ui_interface_delete_connection
+NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE
+NM_VPN_PLUGIN_UI_WIDGET_INTERFACE
+NM_IS_VPN_PLUGIN_UI_WIDGET_INTERFACE
+NM_VPN_PLUGIN_UI_WIDGET_INTERFACE_GET_INTERFACE
+nm_vpn_plugin_ui_widget_interface_get_type
+nm_vpn_plugin_ui_widget_interface_get_widget
+nm_vpn_plugin_ui_widget_interface_update_connection
+nm_vpn_plugin_ui_widget_interface_save_secrets
+<SUBSECTION Standard>
+NM_VPN_PLUGIN_UI_INTERFACE
+NM_IS_VPN_PLUGIN_UI_INTERFACE
+NM_TYPE_VPN_PLUGIN_UI_INTERFACE
+nm_vpn_plugin_ui_interface_get_type
+NM_VPN_PLUGIN_UI_INTERFACE_GET_INTERFACE
+</SECTION>
+
+<SECTION>
<FILE>nm-vpn-plugin</FILE>
<TITLE>NMVPNPlugin</TITLE>
NM_VPN_PLUGIN_DBUS_SERVICE_NAME
@@ -302,209 +502,80 @@ NM_VPN_PLUGIN_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-access-point</FILE>
-<TITLE>NMAccessPoint</TITLE>
-NM_ACCESS_POINT_FLAGS
-NM_ACCESS_POINT_WPA_FLAGS
-NM_ACCESS_POINT_RSN_FLAGS
-NM_ACCESS_POINT_SSID
-NM_ACCESS_POINT_FREQUENCY
-NM_ACCESS_POINT_HW_ADDRESS
-NM_ACCESS_POINT_MODE
-NM_ACCESS_POINT_MAX_BITRATE
-NM_ACCESS_POINT_STRENGTH
-NMAccessPoint
-NMAccessPointClass
-nm_access_point_new
-nm_access_point_get_flags
-nm_access_point_get_wpa_flags
-nm_access_point_get_rsn_flags
-nm_access_point_get_ssid
-nm_access_point_get_frequency
-nm_access_point_get_hw_address
-nm_access_point_get_mode
-nm_access_point_get_max_bitrate
-nm_access_point_get_strength
-<SUBSECTION Standard>
-NM_ACCESS_POINT
-NM_IS_ACCESS_POINT
-NM_TYPE_ACCESS_POINT
-nm_access_point_get_type
-NM_ACCESS_POINT_CLASS
-NM_IS_ACCESS_POINT_CLASS
-NM_ACCESS_POINT_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-device</FILE>
-<TITLE>NMDevice</TITLE>
-NM_DEVICE_UDI
-NM_DEVICE_INTERFACE
-NM_DEVICE_IP_INTERFACE
-NM_DEVICE_DRIVER
-NM_DEVICE_CAPABILITIES
-NM_DEVICE_MANAGED
-NM_DEVICE_FIRMWARE_MISSING
-NM_DEVICE_IP4_CONFIG
-NM_DEVICE_DHCP4_CONFIG
-NM_DEVICE_IP6_CONFIG
-NM_DEVICE_DHCP6_CONFIG
-NM_DEVICE_STATE
-NM_DEVICE_VENDOR
-NM_DEVICE_PRODUCT
-NMDevice
-NMDeviceClass
-nm_device_new
-nm_device_get_iface
-nm_device_get_ip_iface
-nm_device_get_udi
-nm_device_get_driver
-nm_device_get_capabilities
-nm_device_get_managed
-nm_device_get_firmware_missing
-nm_device_get_ip4_config
-nm_device_get_dhcp4_config
-nm_device_get_ip6_config
-nm_device_get_dhcp6_config
-nm_device_get_state
-nm_device_get_product
-nm_device_get_vendor
-NMDeviceDeactivateFn
-nm_device_disconnect
-<SUBSECTION Standard>
-NM_DEVICE
-NM_IS_DEVICE
-NM_TYPE_DEVICE
-nm_device_get_type
-NM_DEVICE_CLASS
-NM_IS_DEVICE_CLASS
-NM_DEVICE_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-device-ethernet</FILE>
-<TITLE>NMDeviceEthernet</TITLE>
-NM_DEVICE_ETHERNET_HW_ADDRESS
-NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS
-NM_DEVICE_ETHERNET_SPEED
-NM_DEVICE_ETHERNET_CARRIER
-NMDeviceEthernet
-NMDeviceEthernetClass
-nm_device_ethernet_new
-nm_device_ethernet_get_hw_address
-nm_device_ethernet_get_permanent_hw_address
-nm_device_ethernet_get_speed
-nm_device_ethernet_get_carrier
-<SUBSECTION Standard>
-NM_DEVICE_ETHERNET
-NM_IS_DEVICE_ETHERNET
-NM_TYPE_DEVICE_ETHERNET
-nm_device_ethernet_get_type
-NM_DEVICE_ETHERNET_CLASS
-NM_IS_DEVICE_ETHERNET_CLASS
-NM_DEVICE_ETHERNET_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-settings-connection-interface</FILE>
-<TITLE>NMSettingsConnection</TITLE>
-NM_SETTINGS_CONNECTION_INTERFACE_UPDATED
-NM_SETTINGS_CONNECTION_INTERFACE_REMOVED
-NMSettingsConnectionInterface
-NMSettingsConnectionInterfaceUpdateFunc
-NMSettingsConnectionInterfaceDeleteFunc
-NMSettingsConnectionInterfaceGetSecretsFunc
-nm_settings_connection_interface_update
-nm_settings_connection_interface_delete
-nm_settings_connection_interface_get_secrets
-nm_settings_connection_interface_emit_updated
+<FILE>nm-serial-device</FILE>
+<TITLE>NMSerialDevice</TITLE>
+NMSerialDevice
+NMSerialDeviceClass
+nm_serial_device_get_bytes_received
+nm_serial_device_get_bytes_sent
<SUBSECTION Standard>
-NM_SETTINGS_CONNECTION_INTERFACE
-NM_IS_SETTINGS_CONNECTION_INTERFACE
-NM_TYPE_SETTINGS_CONNECTION_INTERFACE
-nm_settings_connection_interface_get_type
-NM_SETTINGS_CONNECTION_INTERFACE_GET_INTERFACE
+NM_SERIAL_DEVICE
+NM_IS_SERIAL_DEVICE
+NM_TYPE_SERIAL_DEVICE
+nm_serial_device_get_type
+NM_SERIAL_DEVICE_CLASS
+NM_IS_SERIAL_DEVICE_CLASS
+NM_SERIAL_DEVICE_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-vpn-connection</FILE>
-<TITLE>NMVPNConnection</TITLE>
-NM_VPN_CONNECTION_VPN_STATE
-NM_VPN_CONNECTION_BANNER
-NMVPNConnection
-NMVPNConnectionClass
-nm_vpn_connection_new
-nm_vpn_connection_get_vpn_state
-nm_vpn_connection_get_banner
+<FILE>nm-settings-system-interface</FILE>
+<TITLE>NMSettingsSystem</TITLE>
+NMSettingsSystemPermissions
+NM_SETTINGS_SYSTEM_INTERFACE_HOSTNAME
+NM_SETTINGS_SYSTEM_INTERFACE_CAN_MODIFY
+NM_SETTINGS_SYSTEM_INTERFACE_CHECK_PERMISSIONS
+NMSettingsSystemInterfaceProp
+NMSettingsSystemInterface
+NMSettingsSystemSaveHostnameFunc
+NMSettingsSystemGetPermissionsFunc
+nm_settings_system_interface_save_hostname
+nm_settings_system_interface_get_permissions
<SUBSECTION Standard>
-NM_VPN_CONNECTION
-NM_IS_VPN_CONNECTION
-NM_TYPE_VPN_CONNECTION
-nm_vpn_connection_get_type
-NM_VPN_CONNECTION_CLASS
-NM_IS_VPN_CONNECTION_CLASS
-NM_VPN_CONNECTION_GET_CLASS
+NM_SETTINGS_SYSTEM_INTERFACE
+NM_IS_SETTINGS_SYSTEM_INTERFACE
+NM_TYPE_SETTINGS_SYSTEM_INTERFACE
+nm_settings_system_interface_get_type
+NM_SETTINGS_SYSTEM_INTERFACE_GET_INTERFACE
</SECTION>
<SECTION>
-<FILE>nm-vpn-plugin-ui-interface</FILE>
-<TITLE>NMVpnPluginUiWidget</TITLE>
-<TITLE>NMVpnPluginUi</TITLE>
-NMVpnPluginUiInterface
-NMVpnPluginUiWidgetInterface
-NMVpnPluginUiFactory
-nm_vpn_plugin_ui_factory
-NM_VPN_PLUGIN_UI_CAPABILITY_NONE
-NM_VPN_PLUGIN_UI_CAPABILITY_IMPORT
-NM_VPN_PLUGIN_UI_CAPABILITY_EXPORT
-NM_VPN_PLUGIN_UI_INTERFACE_NAME
-NM_VPN_PLUGIN_UI_INTERFACE_DESC
-NM_VPN_PLUGIN_UI_INTERFACE_SERVICE
-NMVpnPluginUiInterfaceProp
-nm_vpn_plugin_ui_interface_ui_factory
-nm_vpn_plugin_ui_interface_get_capabilities
-nm_vpn_plugin_ui_interface_import
-nm_vpn_plugin_ui_interface_export
-nm_vpn_plugin_ui_interface_get_suggested_name
-nm_vpn_plugin_ui_interface_delete_connection
-NM_TYPE_VPN_PLUGIN_UI_WIDGET_INTERFACE
-NM_VPN_PLUGIN_UI_WIDGET_INTERFACE
-NM_IS_VPN_PLUGIN_UI_WIDGET_INTERFACE
-NM_VPN_PLUGIN_UI_WIDGET_INTERFACE_GET_INTERFACE
-nm_vpn_plugin_ui_widget_interface_get_type
-nm_vpn_plugin_ui_widget_interface_get_widget
-nm_vpn_plugin_ui_widget_interface_update_connection
-nm_vpn_plugin_ui_widget_interface_save_secrets
+<FILE>nm-settings-service</FILE>
+<TITLE>NMSettingsService</TITLE>
+NM_SETTINGS_SERVICE_BUS
+NM_SETTINGS_SERVICE_SCOPE
+NMSettingsService
+NMSettingsServiceClass
+nm_settings_service_get_connection_by_path
+nm_settings_service_export
+nm_settings_service_export_connection
<SUBSECTION Standard>
-NM_VPN_PLUGIN_UI_INTERFACE
-NM_IS_VPN_PLUGIN_UI_INTERFACE
-NM_TYPE_VPN_PLUGIN_UI_INTERFACE
-nm_vpn_plugin_ui_interface_get_type
-NM_VPN_PLUGIN_UI_INTERFACE_GET_INTERFACE
+NM_SETTINGS_SERVICE
+NM_IS_SETTINGS_SERVICE
+NM_TYPE_SETTINGS_SERVICE
+nm_settings_service_get_type
+NM_SETTINGS_SERVICE_CLASS
+NM_IS_SETTINGS_SERVICE_CLASS
+NM_SETTINGS_SERVICE_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-ip6-config</FILE>
-<TITLE>NMIP6Config</TITLE>
-NMIP6Config
-NMIP6ConfigClass
-NM_IP6_CONFIG_ADDRESSES
-NM_IP6_CONFIG_NAMESERVERS
-NM_IP6_CONFIG_DOMAINS
-NM_IP6_CONFIG_ROUTES
-nm_ip6_config_new
-nm_ip6_config_get_addresses
-nm_ip6_config_get_nameservers
-nm_ip6_config_get_domains
-nm_ip6_config_get_routes
+<FILE>nm-object</FILE>
+<TITLE>NMObject</TITLE>
+NM_OBJECT_DBUS_CONNECTION
+NM_OBJECT_DBUS_PATH
+NMObject
+NMObjectClass
+nm_object_get_connection
+nm_object_get_path
<SUBSECTION Standard>
-NM_IP6_CONFIG
-NM_IS_IP6_CONFIG
-NM_TYPE_IP6_CONFIG
-nm_ip6_config_get_type
-NM_IP6_CONFIG_CLASS
-NM_IS_IP6_CONFIG_CLASS
-NM_IP6_CONFIG_GET_CLASS
+NM_OBJECT
+NM_IS_OBJECT
+NM_TYPE_OBJECT
+nm_object_get_type
+NM_OBJECT_CLASS
+NM_IS_OBJECT_CLASS
+NM_OBJECT_GET_CLASS
</SECTION>
<SECTION>
@@ -530,106 +601,26 @@ NM_DEVICE_BT_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-client</FILE>
-<TITLE>NMClient</TITLE>
-NM_CLIENT_STATE
-NM_CLIENT_MANAGER_RUNNING
-NM_CLIENT_NETWORKING_ENABLED
-NM_CLIENT_WIRELESS_ENABLED
-NM_CLIENT_WIRELESS_HARDWARE_ENABLED
-NM_CLIENT_WWAN_ENABLED
-NM_CLIENT_WWAN_HARDWARE_ENABLED
-NM_CLIENT_ACTIVE_CONNECTIONS
-NMClientPermission
-NMClientPermissionResult
-NMClient
-NMClientClass
-nm_client_new
-nm_client_get_devices
-nm_client_get_device_by_path
-NMClientActivateDeviceFn
-nm_client_activate_connection
-nm_client_deactivate_connection
-nm_client_networking_get_enabled
-nm_client_networking_set_enabled
-nm_client_wireless_get_enabled
-nm_client_wireless_set_enabled
-nm_client_wireless_hardware_get_enabled
-nm_client_wwan_get_enabled
-nm_client_wwan_set_enabled
-nm_client_wwan_hardware_get_enabled
-nm_client_get_state
-nm_client_get_manager_running
-nm_client_get_active_connections
-nm_client_sleep
-nm_client_get_permission_result
-<SUBSECTION Standard>
-NM_CLIENT
-NM_IS_CLIENT
-NM_TYPE_CLIENT
-nm_client_get_type
-NM_CLIENT_CLASS
-NM_IS_CLIENT_CLASS
-NM_CLIENT_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-dhcp4-config</FILE>
-<TITLE>NMDHCP4Config</TITLE>
-NMDHCP4Config
-NMDHCP4ConfigClass
-NM_DHCP4_CONFIG_OPTIONS
-nm_dhcp4_config_new
-nm_dhcp4_config_get_options
-nm_dhcp4_config_get_one_option
-<SUBSECTION Standard>
-NM_DHCP4_CONFIG
-NM_IS_DHCP4_CONFIG
-NM_TYPE_DHCP4_CONFIG
-nm_dhcp4_config_get_type
-NM_DHCP4_CONFIG_CLASS
-NM_IS_DHCP4_CONFIG_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-remote-connection</FILE>
-<TITLE>NMRemoteConnection</TITLE>
-NMRemoteConnection
-NMRemoteConnectionClass
-nm_remote_connection_new
-<SUBSECTION Standard>
-NM_REMOTE_CONNECTION
-NM_IS_REMOTE_CONNECTION
-NM_TYPE_REMOTE_CONNECTION
-nm_remote_connection_get_type
-NM_REMOTE_CONNECTION_CLASS
-NM_IS_REMOTE_CONNECTION_CLASS
-NM_REMOTE_CONNECTION_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-cdma-device</FILE>
-<TITLE>NMCdmaDevice</TITLE>
-NMCdmaDevice
-NMCdmaDeviceClass
-nm_cdma_device_new
+<FILE>nm-settings-interface</FILE>
+<TITLE>NMSettings</TITLE>
+NMSettingsInterfaceError
+NM_SETTINGS_INTERFACE_ERROR
+nm_settings_interface_error_quark
+NM_TYPE_SETTINGS_INTERFACE_ERROR
+NM_SETTINGS_INTERFACE_NEW_CONNECTION
+NM_SETTINGS_INTERFACE_CONNECTIONS_READ
+NMSettingsInterface
+NMSettingsAddConnectionFunc
+nm_settings_interface_get_type
+nm_settings_interface_list_connections
+nm_settings_interface_get_connection_by_path
+nm_settings_interface_add_connection
<SUBSECTION Standard>
-NM_CDMA_DEVICE
-NM_IS_CDMA_DEVICE
-NM_TYPE_CDMA_DEVICE
-nm_cdma_device_get_type
-NM_CDMA_DEVICE_CLASS
-NM_IS_CDMA_DEVICE_CLASS
-NM_CDMA_DEVICE_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-wimax-device-bindings</FILE>
-DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_WiMax
-org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list
-org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list_reply
-org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list_async
-dbus_g_proxy_begin_call
+NM_SETTINGS_INTERFACE
+NM_IS_SETTINGS_INTERFACE
+NM_TYPE_SETTINGS_INTERFACE
+nm_settings_interface_error_get_type
+NM_SETTINGS_INTERFACE_GET_INTERFACE
</SECTION>
<SECTION>
@@ -650,22 +641,3 @@ NM_TYPE_IP6_ROUTE_OBJECT_ARRAY
nm_ip6_route_object_array_get_type
</SECTION>
-<SECTION>
-<FILE>nm-sysconfig-connection-bindings</FILE>
-DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Settings_Connection
-org_freedesktop_NetworkManager_Settings_Connection_update
-org_freedesktop_NetworkManager_Settings_Connection_update_reply
-org_freedesktop_NetworkManager_Settings_Connection_update_async
-dbus_g_proxy_begin_call
-org_freedesktop_NetworkManager_Settings_Connection_delete
-org_freedesktop_NetworkManager_Settings_Connection_delete_reply
-org_freedesktop_NetworkManager_Settings_Connection_delete_async
-org_freedesktop_NetworkManager_Settings_Connection_get_settings
-org_freedesktop_NetworkManager_Settings_Connection_get_settings_reply
-org_freedesktop_NetworkManager_Settings_Connection_get_settings_async
-DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Settings_Connection_Secrets
-org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets
-org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets_reply
-org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets_async
-</SECTION>
-
diff --git a/docs/libnm-glib/libnm-glib.types b/docs/libnm-glib/libnm-glib.types
index 99783ba69..8b3b3d2a8 100644
--- a/docs/libnm-glib/libnm-glib.types
+++ b/docs/libnm-glib/libnm-glib.types
@@ -1,25 +1,40 @@
#include <nm-client.h>
+#include <nm-object.h>
+#include <nm-device.h>
#include <nm-device-ethernet.h>
#include <nm-device-wifi.h>
#include <nm-cdma-device.h>
#include <nm-gsm-device.h>
#include <nm-serial-device.h>
+#include <nm-device-bt.h>
#include <nm-access-point.h>
#include <nm-ip4-config.h>
#include <nm-ip6-config.h>
#include <nm-active-connection.h>
#include <nm-dhcp4-config.h>
+#include <nm-dhcp6-config.h>
+#include <nm-remote-settings.h>
+#include <nm-exported-connection.h>
+#include <nm-remote-connection.h>
+#include <nm-vpn-connection.h>
-nm_object_get_type
nm_client_get_type
+nm_object_get_type
nm_device_get_type
nm_device_ethernet_get_type
nm_device_wifi_get_type
-nm_gsm_device_get_type
nm_cdma_device_get_type
+nm_gsm_device_get_type
nm_serial_device_get_type
+nm_device_bt_get_type
nm_access_point_get_type
nm_ip4_config_get_type
+nm_ip6_config_get_type
nm_active_connection_get_type
nm_dhcp4_config_get_type
-nm_ip6_config_get_type
+nm_dhcp6_config_get_type
+nm_remote_settings_get_type
+nm_exported_connection_get_type
+nm_remote_connection_get_type
+nm_vpn_connection_get_type
+
diff --git a/docs/libnm-glib/tmpl/libnm-glib-unused.sgml b/docs/libnm-glib/tmpl/libnm-glib-unused.sgml
index 16b548cde..e69de29bb 100644
--- a/docs/libnm-glib/tmpl/libnm-glib-unused.sgml
+++ b/docs/libnm-glib/tmpl/libnm-glib-unused.sgml
@@ -1,666 +0,0 @@
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:Image ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/libnm_glib.sgml:Title ##### -->
-libnm_glib
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-connection.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-connection.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-connection.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-connection.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-connection.sgml:Title ##### -->
-NMDBusConnection
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings-system.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings-system.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings-system.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings-system.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings-system.sgml:Title ##### -->
-NMDBusSettingsSystem
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dbus-settings.sgml:Title ##### -->
-NMDBusSettings
-
-
-<!-- ##### SECTION ./tmpl/nm-device-bt-bindings.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-device-bt-bindings.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-device-bt-bindings.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-device-bt-bindings.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-device-bt-bindings.sgml:Title ##### -->
-nm-device-bt-bindings
-
-
-<!-- ##### SECTION ./tmpl/nm-dhcp6-config-bindings.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dhcp6-config-bindings.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-dhcp6-config-bindings.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dhcp6-config-bindings.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-dhcp6-config-bindings.sgml:Title ##### -->
-nm-dhcp6-config-bindings
-
-
-<!-- ##### SECTION ./tmpl/nm-ip6-config-bindings.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-ip6-config-bindings.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-ip6-config-bindings.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-ip6-config-bindings.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-ip6-config-bindings.sgml:Title ##### -->
-nm-ip6-config-bindings
-
-
-<!-- ##### SECTION ./tmpl/nm-remote-connection-private.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-remote-connection-private.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-remote-connection-private.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-remote-connection-private.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-remote-connection-private.sgml:Title ##### -->
-nm-remote-connection-private
-
-
-<!-- ##### SECTION ./tmpl/nm-settings.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-settings.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-settings.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-settings.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-settings.sgml:Title ##### -->
-NMSettings
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_DHCP6Config ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_Bluetooth ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_IP6Config ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMClient:wimax-enabled ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMClient:wimax-hardware-enabled ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT NMDBusConnection ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### STRUCT NMDBusSettings ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### STRUCT NMDBusSettingsSystem ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### ENUM NMRemoteConnectionInitResult ##### -->
-<para>
-
-</para>
-
-@NM_REMOTE_CONNECTION_INIT_RESULT_UNKNOWN:
-@NM_REMOTE_CONNECTION_INIT_RESULT_SUCCESS:
-@NM_REMOTE_CONNECTION_INIT_RESULT_ERROR:
-
-<!-- ##### STRUCT NMSettings ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### ENUM NMSettingsError ##### -->
-<para>
-
-</para>
-
-@NM_SETTINGS_ERROR_INVALID_CONNECTION:
-@NM_SETTINGS_ERROR_READ_ONLY_CONNECTION:
-@NM_SETTINGS_ERROR_INTERNAL_ERROR:
-@NM_SETTINGS_ERROR_SECRETS_UNAVAILABLE:
-@NM_SETTINGS_ERROR_SECRETS_REQUEST_CANCELED:
-@NM_SETTINGS_ERROR_PERMISSION_DENIED:
-
-<!-- ##### MACRO NM_DBUS_CONNECTION_BUS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_CONNECTION_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_CONNECTION_SCOPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_SETTINGS_DBUS_CONNECTION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_SETTINGS_SCOPE ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_SETTINGS_SYSTEM_CAN_MODIFY ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_SETTINGS_SYSTEM_HOSTNAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_DBUS_SETTINGS_SYSTEM_UNMANAGED_DEVICES ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_EXPORTED_CONNECTION_CONNECTION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_EXPORTED_CONNECTION_DBUS_METHOD_INVOCATION ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_IS_SETTINGS ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_IS_SETTINGS_CLASS ##### -->
-<para>
-
-</para>
-
-@klass:
-
-<!-- ##### MACRO NM_REMOTE_CONNECTION_INIT_RESULT ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTINGS ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_SETTINGS_CLASS ##### -->
-<para>
-
-</para>
-
-@klass:
-
-<!-- ##### MACRO NM_SETTINGS_CONNECTION_INTERFACE_GET_INTERFACE ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_SETTINGS_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTINGS_GET_CLASS ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_SETTINGS_INTERFACE_GET_INTERFACE ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_SETTINGS_SYSTEM_INTERFACE_GET_INTERFACE ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### MACRO NM_TYPE_SETTINGS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_VPN_PLUGIN_UI_INTERFACE_GET_INTERFACE ##### -->
-<para>
-
-</para>
-
-@obj:
-
-<!-- ##### USER_FUNCTION libnm_glib_callback_func ##### -->
-<para>
-
-</para>
-
-@libnm_ctx:
-@user_data:
-
-<!-- ##### TYPEDEF libnm_glib_ctx ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION libnm_glib_get_network_state ##### -->
-<para>
-
-</para>
-
-@ctx:
-@Returns:
-
-<!-- ##### FUNCTION libnm_glib_init ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION libnm_glib_register_callback ##### -->
-<para>
-
-</para>
-
-@ctx:
-@func:
-@user_data:
-@g_main_ctx:
-@Returns:
-
-<!-- ##### FUNCTION libnm_glib_shutdown ##### -->
-<para>
-
-</para>
-
-@ctx:
-
-<!-- ##### ENUM libnm_glib_state ##### -->
-<para>
-
-</para>
-
-@LIBNM_NO_DBUS:
-@LIBNM_NO_NETWORKMANAGER:
-@LIBNM_NO_NETWORK_CONNECTION:
-@LIBNM_ACTIVE_NETWORK_CONNECTION:
-@LIBNM_INVALID_CONTEXT:
-
-<!-- ##### FUNCTION libnm_glib_unregister_callback ##### -->
-<para>
-
-</para>
-
-@ctx:
-@id:
-
-<!-- ##### FUNCTION nm_dbus_connection_new ##### -->
-<para>
-
-</para>
-
-@dbus_connection:
-@scope:
-@path:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_get_connection_by_path ##### -->
-<para>
-
-</para>
-
-@self:
-@path:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_new ##### -->
-<para>
-
-</para>
-
-@dbus_connection:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_add_connection ##### -->
-<para>
-
-</para>
-
-@self:
-@connection:
-@err:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_get_can_modify ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_get_hostname ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_get_unmanaged_devices ##### -->
-<para>
-
-</para>
-
-@self:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_new ##### -->
-<para>
-
-</para>
-
-@dbus_connection:
-@Returns:
-
-<!-- ##### FUNCTION nm_dbus_settings_system_save_hostname ##### -->
-<para>
-
-</para>
-
-@self:
-@hostname:
-@err:
-@Returns:
-
-<!-- ##### FUNCTION nm_exported_connection_delete ##### -->
-<para>
-
-</para>
-
-@connection:
-@err:
-@Returns:
-
-<!-- ##### FUNCTION nm_exported_connection_get_connection ##### -->
-<para>
-
-</para>
-
-@connection:
-@Returns:
-
-<!-- ##### FUNCTION nm_exported_connection_register_object ##### -->
-<para>
-
-</para>
-
-@connection:
-@scope:
-@dbus_connection:
-
-<!-- ##### FUNCTION nm_exported_connection_signal_removed ##### -->
-<para>
-
-</para>
-
-@connection:
-
-<!-- ##### FUNCTION nm_exported_connection_signal_updated ##### -->
-<para>
-
-</para>
-
-@connection:
-@new_settings:
-
-<!-- ##### FUNCTION nm_exported_connection_update ##### -->
-<para>
-
-</para>
-
-@connection:
-@new_settings:
-@err:
-@Returns:
-
-<!-- ##### FUNCTION nm_settings_error_quark ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION nm_settings_get_type ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION nm_settings_list_connections ##### -->
-<para>
-
-</para>
-
-@settings:
-@Returns:
-
-<!-- ##### FUNCTION nm_settings_signal_new_connection ##### -->
-<para>
-
-</para>
-
-@settings:
-@connection:
-
diff --git a/docs/libnm-glib/tmpl/libnm_glib.sgml b/docs/libnm-glib/tmpl/libnm_glib.sgml
deleted file mode 100644
index 325e10cb5..000000000
--- a/docs/libnm-glib/tmpl/libnm_glib.sgml
+++ /dev/null
@@ -1,22 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-libnm_glib
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
diff --git a/docs/libnm-glib/tmpl/nm-access-point.sgml b/docs/libnm-glib/tmpl/nm-access-point.sgml
index 0963db06f..b3c2c6d66 100644
--- a/docs/libnm-glib/tmpl/nm-access-point.sgml
+++ b/docs/libnm-glib/tmpl/nm-access-point.sgml
@@ -9,11 +9,13 @@ NMAccessPoint
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-active-connection.sgml b/docs/libnm-glib/tmpl/nm-active-connection.sgml
index d357bbc75..c642d1fc7 100644
--- a/docs/libnm-glib/tmpl/nm-active-connection.sgml
+++ b/docs/libnm-glib/tmpl/nm-active-connection.sgml
@@ -9,11 +9,13 @@ NMActiveConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-cdma-device.sgml b/docs/libnm-glib/tmpl/nm-cdma-device.sgml
index 72e54281d..bcb72892f 100644
--- a/docs/libnm-glib/tmpl/nm-cdma-device.sgml
+++ b/docs/libnm-glib/tmpl/nm-cdma-device.sgml
@@ -9,11 +9,13 @@ NMCdmaDevice
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-client.sgml b/docs/libnm-glib/tmpl/nm-client.sgml
index 3a9485b72..b30dffd86 100644
--- a/docs/libnm-glib/tmpl/nm-client.sgml
+++ b/docs/libnm-glib/tmpl/nm-client.sgml
@@ -9,11 +9,13 @@ NMClient
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-dbus-connection.sgml b/docs/libnm-glib/tmpl/nm-dbus-connection.sgml
deleted file mode 100644
index dbc810624..000000000
--- a/docs/libnm-glib/tmpl/nm-dbus-connection.sgml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMDBusConnection
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
diff --git a/docs/libnm-glib/tmpl/nm-dbus-settings-system.sgml b/docs/libnm-glib/tmpl/nm-dbus-settings-system.sgml
deleted file mode 100644
index b57a582db..000000000
--- a/docs/libnm-glib/tmpl/nm-dbus-settings-system.sgml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMDBusSettingsSystem
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
diff --git a/docs/libnm-glib/tmpl/nm-dbus-settings.sgml b/docs/libnm-glib/tmpl/nm-dbus-settings.sgml
deleted file mode 100644
index 5090b3a8f..000000000
--- a/docs/libnm-glib/tmpl/nm-dbus-settings.sgml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMDBusSettings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
diff --git a/docs/libnm-glib/tmpl/nm-device-bt-bindings.sgml b/docs/libnm-glib/tmpl/nm-device-bt-bindings.sgml
deleted file mode 100644
index cc4c496ad..000000000
--- a/docs/libnm-glib/tmpl/nm-device-bt-bindings.sgml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-device-bt-bindings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_Bluetooth ##### -->
-<para>
-
-</para>
-
-
-
diff --git a/docs/libnm-glib/tmpl/nm-device-bt.sgml b/docs/libnm-glib/tmpl/nm-device-bt.sgml
index 8bdeb199c..d3ce4dc57 100644
--- a/docs/libnm-glib/tmpl/nm-device-bt.sgml
+++ b/docs/libnm-glib/tmpl/nm-device-bt.sgml
@@ -9,11 +9,13 @@ NMDeviceBt
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -46,7 +48,21 @@ NMDeviceBt
</para>
-@parent:
+
+<!-- ##### ARG NMDeviceBt:bt-capabilities ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMDeviceBt:hw-address ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMDeviceBt:name ##### -->
+<para>
+
+</para>
<!-- ##### STRUCT NMDeviceBtClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-device-ethernet.sgml b/docs/libnm-glib/tmpl/nm-device-ethernet.sgml
index 8f31943ab..ee82d5af5 100644
--- a/docs/libnm-glib/tmpl/nm-device-ethernet.sgml
+++ b/docs/libnm-glib/tmpl/nm-device-ethernet.sgml
@@ -9,11 +9,13 @@ NMDeviceEthernet
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-device-wifi.sgml b/docs/libnm-glib/tmpl/nm-device-wifi.sgml
index c84a1fbd6..0ef2031d2 100644
--- a/docs/libnm-glib/tmpl/nm-device-wifi.sgml
+++ b/docs/libnm-glib/tmpl/nm-device-wifi.sgml
@@ -9,11 +9,13 @@ NMDeviceWifi
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-device.sgml b/docs/libnm-glib/tmpl/nm-device.sgml
index 4baa86a66..7c38adf61 100644
--- a/docs/libnm-glib/tmpl/nm-device.sgml
+++ b/docs/libnm-glib/tmpl/nm-device.sgml
@@ -9,11 +9,13 @@ NMDevice
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -164,6 +166,11 @@ NMDevice
</para>
+<!-- ##### ARG NMDevice:ip-interface ##### -->
+<para>
+
+</para>
+
<!-- ##### ARG NMDevice:ip4-config ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-dhcp4-config.sgml b/docs/libnm-glib/tmpl/nm-dhcp4-config.sgml
index 40bf2bcf6..35a6e3069 100644
--- a/docs/libnm-glib/tmpl/nm-dhcp4-config.sgml
+++ b/docs/libnm-glib/tmpl/nm-dhcp4-config.sgml
@@ -9,11 +9,13 @@ NMDHCP4Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-dhcp6-config-bindings.sgml b/docs/libnm-glib/tmpl/nm-dhcp6-config-bindings.sgml
deleted file mode 100644
index 4aee648cd..000000000
--- a/docs/libnm-glib/tmpl/nm-dhcp6-config-bindings.sgml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-dhcp6-config-bindings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_DHCP6Config ##### -->
-<para>
-
-</para>
-
-
-
diff --git a/docs/libnm-glib/tmpl/nm-dhcp6-config.sgml b/docs/libnm-glib/tmpl/nm-dhcp6-config.sgml
index 4eb225061..3e00467cc 100644
--- a/docs/libnm-glib/tmpl/nm-dhcp6-config.sgml
+++ b/docs/libnm-glib/tmpl/nm-dhcp6-config.sgml
@@ -9,11 +9,13 @@ NMDHCP6Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -26,6 +28,11 @@ NMDHCP6Config
</para>
+<!-- ##### ARG NMDHCP6Config:options ##### -->
+<para>
+
+</para>
+
<!-- ##### STRUCT NMDHCP6ConfigClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-exported-connection.sgml b/docs/libnm-glib/tmpl/nm-exported-connection.sgml
index 363db251e..c2ba3b21c 100644
--- a/docs/libnm-glib/tmpl/nm-exported-connection.sgml
+++ b/docs/libnm-glib/tmpl/nm-exported-connection.sgml
@@ -9,11 +9,13 @@ NMExportedConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -25,7 +27,6 @@ NMExportedConnection
</para>
-@parent:
<!-- ##### STRUCT NMExportedConnectionClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-gsm-device.sgml b/docs/libnm-glib/tmpl/nm-gsm-device.sgml
index fb84fd44c..bb4e7232f 100644
--- a/docs/libnm-glib/tmpl/nm-gsm-device.sgml
+++ b/docs/libnm-glib/tmpl/nm-gsm-device.sgml
@@ -9,11 +9,13 @@ NMGsmDevice
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-ip4-config.sgml b/docs/libnm-glib/tmpl/nm-ip4-config.sgml
index 78dd6b471..3fd603b2f 100644
--- a/docs/libnm-glib/tmpl/nm-ip4-config.sgml
+++ b/docs/libnm-glib/tmpl/nm-ip4-config.sgml
@@ -9,11 +9,13 @@ NMIP4Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-ip6-config-bindings.sgml b/docs/libnm-glib/tmpl/nm-ip6-config-bindings.sgml
deleted file mode 100644
index 0a6ba6491..000000000
--- a/docs/libnm-glib/tmpl/nm-ip6-config-bindings.sgml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-ip6-config-bindings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_IP6Config ##### -->
-<para>
-
-</para>
-
-
-
diff --git a/docs/libnm-glib/tmpl/nm-ip6-config.sgml b/docs/libnm-glib/tmpl/nm-ip6-config.sgml
index fb125207f..a9c44abd0 100644
--- a/docs/libnm-glib/tmpl/nm-ip6-config.sgml
+++ b/docs/libnm-glib/tmpl/nm-ip6-config.sgml
@@ -9,11 +9,13 @@ NMIP6Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-object.sgml b/docs/libnm-glib/tmpl/nm-object.sgml
index 652e54cd0..d1919d391 100644
--- a/docs/libnm-glib/tmpl/nm-object.sgml
+++ b/docs/libnm-glib/tmpl/nm-object.sgml
@@ -9,11 +9,13 @@ NMObject
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-remote-connection-private.sgml b/docs/libnm-glib/tmpl/nm-remote-connection-private.sgml
deleted file mode 100644
index 3b6da6d5d..000000000
--- a/docs/libnm-glib/tmpl/nm-remote-connection-private.sgml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-remote-connection-private
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO NM_REMOTE_CONNECTION_INIT_RESULT ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### ENUM NMRemoteConnectionInitResult ##### -->
-<para>
-
-</para>
-
-@NM_REMOTE_CONNECTION_INIT_RESULT_UNKNOWN:
-@NM_REMOTE_CONNECTION_INIT_RESULT_SUCCESS:
-@NM_REMOTE_CONNECTION_INIT_RESULT_ERROR:
-
diff --git a/docs/libnm-glib/tmpl/nm-remote-connection.sgml b/docs/libnm-glib/tmpl/nm-remote-connection.sgml
index 424872406..d43534e13 100644
--- a/docs/libnm-glib/tmpl/nm-remote-connection.sgml
+++ b/docs/libnm-glib/tmpl/nm-remote-connection.sgml
@@ -9,11 +9,13 @@ NMRemoteConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -25,7 +27,16 @@ NMRemoteConnection
</para>
-@parent:
+
+<!-- ##### ARG NMRemoteConnection:bus ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMRemoteConnection:init-result ##### -->
+<para>
+
+</para>
<!-- ##### STRUCT NMRemoteConnectionClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-remote-settings-system.sgml b/docs/libnm-glib/tmpl/nm-remote-settings-system.sgml
index ed20d6046..c14d4b2e4 100644
--- a/docs/libnm-glib/tmpl/nm-remote-settings-system.sgml
+++ b/docs/libnm-glib/tmpl/nm-remote-settings-system.sgml
@@ -9,11 +9,13 @@ NMRemoteSettingsSystem
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-remote-settings.sgml b/docs/libnm-glib/tmpl/nm-remote-settings.sgml
index 29646e7f2..6f95df141 100644
--- a/docs/libnm-glib/tmpl/nm-remote-settings.sgml
+++ b/docs/libnm-glib/tmpl/nm-remote-settings.sgml
@@ -9,11 +9,13 @@ NMRemoteSettings
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -46,7 +48,21 @@ NMRemoteSettings
</para>
-@parent:
+
+<!-- ##### ARG NMRemoteSettings:bus ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMRemoteSettings:scope ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMRemoteSettings:service-running ##### -->
+<para>
+
+</para>
<!-- ##### STRUCT NMRemoteSettingsClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-serial-device.sgml b/docs/libnm-glib/tmpl/nm-serial-device.sgml
index 694332fb4..7f6403fe6 100644
--- a/docs/libnm-glib/tmpl/nm-serial-device.sgml
+++ b/docs/libnm-glib/tmpl/nm-serial-device.sgml
@@ -9,11 +9,13 @@ NMSerialDevice
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-settings-connection-interface.sgml b/docs/libnm-glib/tmpl/nm-settings-connection-interface.sgml
index 27c494fc5..9e05931ad 100644
--- a/docs/libnm-glib/tmpl/nm-settings-connection-interface.sgml
+++ b/docs/libnm-glib/tmpl/nm-settings-connection-interface.sgml
@@ -1,5 +1,5 @@
<!-- ##### SECTION Title ##### -->
-nm-settings-connection-interface
+NMSettingsConnection
<!-- ##### SECTION Short_Description ##### -->
@@ -9,11 +9,13 @@ nm-settings-connection-interface
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -39,19 +41,6 @@ nm-settings-connection-interface
</para>
-@g_iface:
-@update:
-@delete:
-@get_secrets:
-@emit_updated:
-@updated:
-@removed:
-@_reserved1:
-@_reserved2:
-@_reserved3:
-@_reserved4:
-@_reserved5:
-@_reserved6:
<!-- ##### USER_FUNCTION NMSettingsConnectionInterfaceUpdateFunc ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-settings-interface.sgml b/docs/libnm-glib/tmpl/nm-settings-interface.sgml
index fd36e19ae..846d5464e 100644
--- a/docs/libnm-glib/tmpl/nm-settings-interface.sgml
+++ b/docs/libnm-glib/tmpl/nm-settings-interface.sgml
@@ -1,5 +1,5 @@
<!-- ##### SECTION Title ##### -->
-nm-settings-interface
+NMSettings
<!-- ##### SECTION Short_Description ##### -->
@@ -9,11 +9,13 @@ nm-settings-interface
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -75,18 +77,6 @@ nm-settings-interface
</para>
-@g_iface:
-@list_connections:
-@get_connection_by_path:
-@add_connection:
-@new_connection:
-@connections_read:
-@_reserved1:
-@_reserved2:
-@_reserved3:
-@_reserved4:
-@_reserved5:
-@_reserved6:
<!-- ##### USER_FUNCTION NMSettingsAddConnectionFunc ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-settings-service.sgml b/docs/libnm-glib/tmpl/nm-settings-service.sgml
index 01c43db28..a79c966be 100644
--- a/docs/libnm-glib/tmpl/nm-settings-service.sgml
+++ b/docs/libnm-glib/tmpl/nm-settings-service.sgml
@@ -9,11 +9,13 @@ NMSettingsService
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-settings-system-interface.sgml b/docs/libnm-glib/tmpl/nm-settings-system-interface.sgml
index bded07015..9ee1ef69d 100644
--- a/docs/libnm-glib/tmpl/nm-settings-system-interface.sgml
+++ b/docs/libnm-glib/tmpl/nm-settings-system-interface.sgml
@@ -1,5 +1,5 @@
<!-- ##### SECTION Title ##### -->
-nm-settings-system-interface
+NMSettingsSystem
<!-- ##### SECTION Short_Description ##### -->
@@ -9,11 +9,13 @@ nm-settings-system-interface
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-settings.sgml b/docs/libnm-glib/tmpl/nm-settings.sgml
deleted file mode 100644
index c8f4b9515..000000000
--- a/docs/libnm-glib/tmpl/nm-settings.sgml
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMSettings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT NMExportedConnection ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### FUNCTION nm_exported_connection_new ##### -->
-<para>
-
-</para>
-
-@scope:
-@Returns:
-
-
diff --git a/docs/libnm-glib/tmpl/nm-sysconfig-connection-bindings.sgml b/docs/libnm-glib/tmpl/nm-sysconfig-connection-bindings.sgml
deleted file mode 100644
index 1be209872..000000000
--- a/docs/libnm-glib/tmpl/nm-sysconfig-connection-bindings.sgml
+++ /dev/null
@@ -1,173 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-sysconfig-connection-bindings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Settings_Connection ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_update ##### -->
-<para>
-
-</para>
-
-@proxy:
-@IN_properties:
-@Returns:
-
-
-<!-- ##### USER_FUNCTION org_freedesktop_NetworkManager_Settings_Connection_update_reply ##### -->
-<para>
-
-</para>
-
-@proxy:
-@error:
-@userdata:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_update_async ##### -->
-<para>
-
-</para>
-
-@proxy:
-@IN_properties:
-@callback:
-@Returns:
-
-
-<!-- ##### FUNCTION dbus_g_proxy_begin_call ##### -->
-<para>
-
-</para>
-
-@Param1:
-@Returns:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_delete ##### -->
-<para>
-
-</para>
-
-@proxy:
-@Returns:
-
-
-<!-- ##### USER_FUNCTION org_freedesktop_NetworkManager_Settings_Connection_delete_reply ##### -->
-<para>
-
-</para>
-
-@proxy:
-@error:
-@userdata:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_delete_async ##### -->
-<para>
-
-</para>
-
-@proxy:
-@callback:
-@Returns:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_get_settings ##### -->
-<para>
-
-</para>
-
-@proxy:
-@OUT_settings:
-@Returns:
-
-
-<!-- ##### USER_FUNCTION org_freedesktop_NetworkManager_Settings_Connection_get_settings_reply ##### -->
-<para>
-
-</para>
-
-@proxy:
-@OUT_settings:
-@error:
-@userdata:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_get_settings_async ##### -->
-<para>
-
-</para>
-
-@proxy:
-@callback:
-@Returns:
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Settings_Connection_Secrets ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets ##### -->
-<para>
-
-</para>
-
-@proxy:
-@IN_setting_name:
-@IN_hints:
-@IN_request_new:
-@OUT_secrets:
-@Returns:
-
-
-<!-- ##### USER_FUNCTION org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets_reply ##### -->
-<para>
-
-</para>
-
-@proxy:
-@OUT_secrets:
-@error:
-@userdata:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Settings_Connection_Secrets_get_secrets_async ##### -->
-<para>
-
-</para>
-
-@proxy:
-@IN_setting_name:
-@IN_hints:
-@IN_request_new:
-@callback:
-@Returns:
-
-
diff --git a/docs/libnm-glib/tmpl/nm-types.sgml b/docs/libnm-glib/tmpl/nm-types.sgml
index a96a895f5..f57d882e6 100644
--- a/docs/libnm-glib/tmpl/nm-types.sgml
+++ b/docs/libnm-glib/tmpl/nm-types.sgml
@@ -9,11 +9,13 @@ nm-types
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-vpn-connection.sgml b/docs/libnm-glib/tmpl/nm-vpn-connection.sgml
index 35bc18999..8e4e18a80 100644
--- a/docs/libnm-glib/tmpl/nm-vpn-connection.sgml
+++ b/docs/libnm-glib/tmpl/nm-vpn-connection.sgml
@@ -9,11 +9,13 @@ NMVPNConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -39,7 +41,25 @@ NMVPNConnection
</para>
-@parent:
+
+<!-- ##### SIGNAL NMVPNConnection::vpn-state-changed ##### -->
+<para>
+
+</para>
+
+@nmvpnconnection: the object which received the signal.
+@arg1:
+@arg2:
+
+<!-- ##### ARG NMVPNConnection:banner ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG NMVPNConnection:vpn-state ##### -->
+<para>
+
+</para>
<!-- ##### STRUCT NMVPNConnectionClass ##### -->
<para>
diff --git a/docs/libnm-glib/tmpl/nm-vpn-plugin-ui-interface.sgml b/docs/libnm-glib/tmpl/nm-vpn-plugin-ui-interface.sgml
index 9b3b71bf0..ace182a8d 100644
--- a/docs/libnm-glib/tmpl/nm-vpn-plugin-ui-interface.sgml
+++ b/docs/libnm-glib/tmpl/nm-vpn-plugin-ui-interface.sgml
@@ -1,5 +1,5 @@
<!-- ##### SECTION Title ##### -->
-nm-vpn-plugin-ui-interface
+NMVpnPluginUi
<!-- ##### SECTION Short_Description ##### -->
@@ -9,11 +9,13 @@ nm-vpn-plugin-ui-interface
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml b/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml
index 25869dd24..061e4edfd 100644
--- a/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml
+++ b/docs/libnm-glib/tmpl/nm-vpn-plugin.sgml
@@ -9,11 +9,13 @@ NMVPNPlugin
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-glib/tmpl/nm-wimax-device-bindings.sgml b/docs/libnm-glib/tmpl/nm-wimax-device-bindings.sgml
deleted file mode 100644
index 9b909c96e..000000000
--- a/docs/libnm-glib/tmpl/nm-wimax-device-bindings.sgml
+++ /dev/null
@@ -1,69 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-nm-wimax-device-bindings
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO DBUS_GLIB_CLIENT_WRAPPERS_org_freedesktop_NetworkManager_Device_WiMax ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list ##### -->
-<para>
-
-</para>
-
-@proxy:
-@OUT_nsps:
-@Returns:
-
-
-<!-- ##### USER_FUNCTION org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list_reply ##### -->
-<para>
-
-</para>
-
-@proxy:
-@OUT_nsps:
-@error:
-@userdata:
-
-
-<!-- ##### FUNCTION org_freedesktop_NetworkManager_Device_WiMax_get_nsp_list_async ##### -->
-<para>
-
-</para>
-
-@proxy:
-@callback:
-@Returns:
-
-
-<!-- ##### FUNCTION dbus_g_proxy_begin_call ##### -->
-<para>
-
-</para>
-
-@Param1:
-@Returns:
-
-
diff --git a/docs/libnm-util/Makefile.am b/docs/libnm-util/Makefile.am
index 59a9ef6b2..89a5db987 100644
--- a/docs/libnm-util/Makefile.am
+++ b/docs/libnm-util/Makefile.am
@@ -54,11 +54,18 @@ GTKDOC_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-GTKDOC_LIBS = $(top_builddir)/libnm-util/libnm-util.la
+GTKDOC_LIBS = \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(GLIB_LIBS)
+
# include common portion ...
include $(top_srcdir)/gtk-doc.make
-CLEANFILES += libnm-util-sections.txt
+CLEANFILES += \
+ libnm-util-sections.txt \
+ html/* \
+ tmpl/* \
+ xml/*
diff --git a/docs/libnm-util/Makefile.in b/docs/libnm-util/Makefile.in
index b66000589..63e046a43 100644
--- a/docs/libnm-util/Makefile.in
+++ b/docs/libnm-util/Makefile.in
@@ -156,6 +156,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -170,6 +174,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -300,7 +305,10 @@ GTKDOC_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-GTKDOC_LIBS = $(top_builddir)/libnm-util/libnm-util.la
+GTKDOC_LIBS = \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(GLIB_LIBS)
+
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
@@ -342,7 +350,7 @@ REPORT_FILES = \
# include common portion ...
CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \
- libnm-util-sections.txt
+ libnm-util-sections.txt html/* tmpl/* xml/*
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
diff --git a/docs/libnm-util/html/NMConnection.html b/docs/libnm-util/html/NMConnection.html
index 032f18a30..7d6600122 100644
--- a/docs/libnm-util/html/NMConnection.html
+++ b/docs/libnm-util/html/NMConnection.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="ch01.html" title="libnm-util API Reference">
@@ -74,6 +74,10 @@ enum <a class="link" href="NMConnection.html#NMConnectionError" t
<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-compare" title="nm_connection_compare ()">nm_connection_compare</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *a</code></em>,
<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</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>);
+<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-diff" title="nm_connection_diff ()">nm_connection_diff</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *a</code></em>,
+ <em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</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>,
+ <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_settings</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-verify" title="nm_connection_verify ()">nm_connection_verify</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><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="NMConnection.html#nm-connection-need-secrets" title="nm_connection_need_secrets ()">nm_connection_need_secrets</a> (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
@@ -81,7 +85,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> *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> *setting_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-scope" title="nm_connection_set_scope ()">nm_connection_set_scope</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><a class="link" href="NMConnection.html#NMConnectionScope" title="enum NMConnectionScope"><span class="type">NMConnectionScope</span></a> scope</code></em>);
@@ -555,6 +559,53 @@ each flag's behavior.
</table></div>
</div>
<hr>
+<div class="refsect2" title="nm_connection_diff ()">
+<a name="nm-connection-diff"></a><h3>nm_connection_diff ()</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_diff (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *a</code></em>,
+ <em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</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>,
+ <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_settings</code></em>);</pre>
+<p>
+Compares two <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> objects for similarity, with comparison behavior
+modified by a set of flags. See <a class="link" href="NMSetting.html#nm-setting-compare" title="nm_setting_compare ()"><code class="function">nm_setting_compare()</code></a> for a description of
+each flag's behavior. If the connections differ, settings and keys within
+each setting that differ are added to the returned <em class="parameter"><code>out_settings</code></em> hash table.
+No values are returned, only key names.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
+<td>a <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a second <a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> to compare with the first
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>compare flags, e.g. <a class="link" href="NMSetting.html#NM-SETTING-COMPARE-FLAG-EXACT:CAPS"><code class="literal">NM_SETTING_COMPARE_FLAG_EXACT</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>out_settings</code></em> :</span></p></td>
+<td>if the connections differ, on return a hash table mapping
+setting names to second-level GHashTable, which contains key names that differ
+</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 connections 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" title="nm_connection_verify ()">
<a name="nm-connection-verify"></a><h3>nm_connection_verify ()</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_verify (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
@@ -651,7 +702,7 @@ 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> *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> *setting_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
@@ -671,7 +722,7 @@ intended for that setting (deserialized from D-Bus for example).
</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>secrets</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>setting_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
</td>
diff --git a/docs/libnm-util/html/NMSetting.html b/docs/libnm-util/html/NMSetting.html
index dbfd9855d..a31c80d40 100644
--- a/docs/libnm-util/html/NMSetting.html
+++ b/docs/libnm-util/html/NMSetting.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSetting</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMConnection.html" title="NMConnection">
@@ -73,6 +73,12 @@ enum <a class="link" href="NMSetting.html#NMSettingCompareFlags"
<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>);
+enum <a class="link" href="NMSetting.html#NMSettingDiffResult" title="enum NMSettingDiffResult">NMSettingDiffResult</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-diff" title="nm_setting_diff ()">nm_setting_diff</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>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> invert_results</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> **results</code></em>);
<span class="returnvalue">void</span> <a class="link" href="NMSetting.html#nm-setting-enumerate-values" title="nm_setting_enumerate_values ()">nm_setting_enumerate_values</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 class="link" href="NMSetting.html#NMSettingValueIterFn" title="NMSettingValueIterFn ()"><span class="type">NMSettingValueIterFn</span></a> func</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>);
@@ -561,6 +567,94 @@ for a description of each flag's behavior.
</table></div>
</div>
<hr>
+<div class="refsect2" title="enum NMSettingDiffResult">
+<a name="NMSettingDiffResult"></a><h3>enum NMSettingDiffResult</h3>
+<pre class="programlisting">typedef enum {
+ NM_SETTING_DIFF_RESULT_UNKNOWN = 0x00000000,
+ NM_SETTING_DIFF_RESULT_IN_A = 0x00000001,
+ NM_SETTING_DIFF_RESULT_IN_B = 0x00000002,
+} NMSettingDiffResult;
+</pre>
+<p>
+These values indicate the result of a setting difference operation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="NM-SETTING-DIFF-RESULT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">NM_SETTING_DIFF_RESULT_UNKNOWN</code></span></p></td>
+<td>unknown result
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-DIFF-RESULT-IN-A:CAPS"></a><span class="term"><code class="literal">NM_SETTING_DIFF_RESULT_IN_A</code></span></p></td>
+<td>the property is present in setting A
+</td>
+</tr>
+<tr>
+<td><p><a name="NM-SETTING-DIFF-RESULT-IN-B:CAPS"></a><span class="term"><code class="literal">NM_SETTING_DIFF_RESULT_IN_B</code></span></p></td>
+<td>the property is present in setting B
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2" title="nm_setting_diff ()">
+<a name="nm-setting-diff"></a><h3>nm_setting_diff ()</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_diff (<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>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> invert_results</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> **results</code></em>);</pre>
+<p>
+Compares two <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> objects for similarity, with comparison behavior
+modified by a set of flags. See the documentation for <a class="link" href="NMSetting.html#NMSettingCompareFlags" title="enum NMSettingCompareFlags"><span class="type">NMSettingCompareFlags</span></a>
+for a description of each flag's behavior. If the settings differ, the keys
+of each setting that differ from the other are added to <em class="parameter"><code>results</code></em>, mapped to
+one or more <a class="link" href="NMSetting.html#NMSettingDiffResult" title="enum NMSettingDiffResult"><span class="type">NMSettingDiffResult</span></a> values.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
+<td>a <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
+<td>a second <a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> to compare with the first
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>compare flags, e.g. <a class="link" href="NMSetting.html#NM-SETTING-COMPARE-FLAG-EXACT:CAPS"><code class="literal">NM_SETTING_COMPARE_FLAG_EXACT</code></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>invert_results</code></em> :</span></p></td>
+<td>this parameter is used internally by libnm-util and should
+be set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> inverts the meaning of the <a class="link" href="NMSetting.html#NMSettingDiffResult" title="enum NMSettingDiffResult"><span class="type">NMSettingDiffResult</span></a>.
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>results</code></em> :</span></p></td>
+<td> if the settings differ, on return a
+hash table mapping the differing keys to one or more <a class="link" href="NMSetting.html#NMSettingDiffResult" title="enum NMSettingDiffResult"><span class="type">NMSettingDiffResult</span></a>
+values OR-ed together. If the settings do not differ, any hash table passed
+in is unmodified. If no hash table is passed in, a new one is created. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 guint32]</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 settings 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" title="nm_setting_enumerate_values ()">
<a name="nm-setting-enumerate-values"></a><h3>nm_setting_enumerate_values ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> nm_setting_enumerate_values (<em class="parameter"><code><a class="link" href="NMSetting.html" title="NMSetting"><span class="type">NMSetting</span></a> *setting</code></em>,
diff --git a/docs/libnm-util/html/NMSetting8021x.html b/docs/libnm-util/html/NMSetting8021x.html
index 1aa66f805..7b25578e0 100644
--- a/docs/libnm-util/html/NMSetting8021x.html
+++ b/docs/libnm-util/html/NMSetting8021x.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSetting8021x</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
diff --git a/docs/libnm-util/html/NMSettingBluetooth.html b/docs/libnm-util/html/NMSettingBluetooth.html
index d1f99a9df..068c5e833 100644
--- a/docs/libnm-util/html/NMSettingBluetooth.html
+++ b/docs/libnm-util/html/NMSettingBluetooth.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingBluetooth</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">
diff --git a/docs/libnm-util/html/NMSettingCdma.html b/docs/libnm-util/html/NMSettingCdma.html
index 8b41328eb..6ee02f0da 100644
--- a/docs/libnm-util/html/NMSettingCdma.html
+++ b/docs/libnm-util/html/NMSettingCdma.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingCdma</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingSerial.html" title="NMSettingSerial">
diff --git a/docs/libnm-util/html/NMSettingConnection.html b/docs/libnm-util/html/NMSettingConnection.html
index 29786290c..f70fdb95a 100644
--- a/docs/libnm-util/html/NMSettingConnection.html
+++ b/docs/libnm-util/html/NMSettingConnection.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingConnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSetting.html" title="NMSetting">
diff --git a/docs/libnm-util/html/NMSettingGsm.html b/docs/libnm-util/html/NMSettingGsm.html
index ddc98b8ee..c3f8c318c 100644
--- a/docs/libnm-util/html/NMSettingGsm.html
+++ b/docs/libnm-util/html/NMSettingGsm.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingGsm</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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">
@@ -659,7 +659,7 @@ GSM 03.60 Section 14.9.
<p>
DEPRECATED
</p>
-<p>Allowed values: [G_MAXULONG,5]</p>
+<p>Allowed values: [-1,5]</p>
<p>Default value: -1</p>
</div>
<hr>
@@ -695,7 +695,7 @@ 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.
</p>
-<p>Allowed values: [G_MAXULONG,3]</p>
+<p>Allowed values: [-1,3]</p>
<p>Default value: -1</p>
</div>
<hr>
diff --git a/docs/libnm-util/html/NMSettingIP4Config.html b/docs/libnm-util/html/NMSettingIP4Config.html
index 31e014990..7f0eef805 100644
--- a/docs/libnm-util/html/NMSettingIP4Config.html
+++ b/docs/libnm-util/html/NMSettingIP4Config.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingIP4Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSetting8021x.html" title="NMSetting8021x">
@@ -1656,7 +1656,7 @@ providing a static hostname for the computer. If
<a class="link" href="NMSettingIP4Config.html#NMSettingIP4Config--dhcp-hostname" title='The "dhcp-hostname" property'><span class="type">"dhcp-hostname"</span></a> is empty and this property is TRUE,
the current persistent hostname of the computer is sent.
</p>
-<p>Default value: FALSE</p>
+<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2" title='The "dns" property'>
diff --git a/docs/libnm-util/html/NMSettingIP6Config.html b/docs/libnm-util/html/NMSettingIP6Config.html
index b61a7d1f2..4e80d9054 100644
--- a/docs/libnm-util/html/NMSettingIP6Config.html
+++ b/docs/libnm-util/html/NMSettingIP6Config.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingIP6Config</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingIP4Config.html" title="NMSettingIP4Config">
diff --git a/docs/libnm-util/html/NMSettingOlpcMesh.html b/docs/libnm-util/html/NMSettingOlpcMesh.html
index 8e315c6ba..4543a9075 100644
--- a/docs/libnm-util/html/NMSettingOlpcMesh.html
+++ b/docs/libnm-util/html/NMSettingOlpcMesh.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingOlpcMesh</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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">
diff --git a/docs/libnm-util/html/NMSettingPPP.html b/docs/libnm-util/html/NMSettingPPP.html
index e52ab9700..435c5b96e 100644
--- a/docs/libnm-util/html/NMSettingPPP.html
+++ b/docs/libnm-util/html/NMSettingPPP.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingPPP</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingIP6Config.html" title="NMSettingIP6Config">
diff --git a/docs/libnm-util/html/NMSettingPPPOE.html b/docs/libnm-util/html/NMSettingPPPOE.html
index 22f9a895a..a94012fd3 100644
--- a/docs/libnm-util/html/NMSettingPPPOE.html
+++ b/docs/libnm-util/html/NMSettingPPPOE.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingPPPOE</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingPPP.html" title="NMSettingPPP">
diff --git a/docs/libnm-util/html/NMSettingSerial.html b/docs/libnm-util/html/NMSettingSerial.html
index d32d6c1cc..33a60860d 100644
--- a/docs/libnm-util/html/NMSettingSerial.html
+++ b/docs/libnm-util/html/NMSettingSerial.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingSerial</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingBluetooth.html" title="NMSettingBluetooth">
diff --git a/docs/libnm-util/html/NMSettingVPN.html b/docs/libnm-util/html/NMSettingVPN.html
index e3b96cdba..16df44cb0 100644
--- a/docs/libnm-util/html/NMSettingVPN.html
+++ b/docs/libnm-util/html/NMSettingVPN.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingVPN</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingPPPOE.html" title="NMSettingPPPOE">
diff --git a/docs/libnm-util/html/NMSettingWired.html b/docs/libnm-util/html/NMSettingWired.html
index 70fdd4b5f..f9333d3ea 100644
--- a/docs/libnm-util/html/NMSettingWired.html
+++ b/docs/libnm-util/html/NMSettingWired.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingWired</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingConnection.html" title="NMSettingConnection">
diff --git a/docs/libnm-util/html/NMSettingWireless.html b/docs/libnm-util/html/NMSettingWireless.html
index 2586678c3..368d455d5 100644
--- a/docs/libnm-util/html/NMSettingWireless.html
+++ b/docs/libnm-util/html/NMSettingWireless.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingWireless</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingWired.html" title="NMSettingWired">
diff --git a/docs/libnm-util/html/NMSettingWirelessSecurity.html b/docs/libnm-util/html/NMSettingWirelessSecurity.html
index 2fd8cd929..6e90df86e 100644
--- a/docs/libnm-util/html/NMSettingWirelessSecurity.html
+++ b/docs/libnm-util/html/NMSettingWirelessSecurity.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NMSettingWirelessSecurity</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingWireless.html" title="NMSettingWireless">
diff --git a/docs/libnm-util/html/annotation-glossary.html b/docs/libnm-util/html/annotation-glossary.html
new file mode 100644
index 000000000..68c91a18b
--- /dev/null
+++ b/docs/libnm-util/html/annotation-glossary.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="libnm-util Reference Manual">
+<link rel="up" href="index.html" title="libnm-util Reference Manual">
+<link rel="prev" href="api-index-full.html" title="API Index">
+<meta name="generator" content="GTK-Doc V1.15 (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="api-index-full.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-util Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts"><a class="shortcut" href="#glsE">E</a></td></tr>
+</table>
+<div class="glossary" title="Annotation Glossary">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
+<a name="glsE"></a><h3 class="title">E</h3>
+<dt>
+<a name="annotation-glossterm-element-type"></a>element-type</dt>
+<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.15</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libnm-util/html/api-index-full.html b/docs/libnm-util/html/api-index-full.html
index 94ef6a8f3..73178ec7f 100644
--- a/docs/libnm-util/html/api-index-full.html
+++ b/docs/libnm-util/html/api-index-full.html
@@ -3,10 +3,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="up" href="index.html" title="libnm-util Reference Manual">
<link rel="prev" href="object-tree.html" title="Object Hierarchy">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
@@ -17,7 +18,7 @@
<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-util Reference Manual</th>
-<td> </td>
+<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>
@@ -92,6 +93,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMConnection.html#nm-connection-diff" title="nm_connection_diff ()">nm_connection_diff</a>, function in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMConnection.html#nm-connection-dump" title="nm_connection_dump ()">nm_connection_dump</a>, function in <a class="link" href="NMConnection.html" title="NMConnection">NMConnection</a>
</dt>
<dd></dd>
@@ -654,6 +659,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting.html#NMSettingDiffResult" title="enum NMSettingDiffResult">NMSettingDiffResult</a>, enum in <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting.html#NMSettingError" title="enum NMSettingError">NMSettingError</a>, enum in <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
</dt>
<dd></dd>
@@ -1718,6 +1727,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="NMSetting.html#nm-setting-diff" title="nm_setting_diff ()">nm_setting_diff</a>, function in <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="NMSetting.html#nm-setting-duplicate" title="nm_setting_duplicate ()">nm_setting_duplicate</a>, function in <a class="link" href="NMSetting.html" title="NMSetting">NMSetting</a>
</dt>
<dd></dd>
diff --git a/docs/libnm-util/html/ch01.html b/docs/libnm-util/html/ch01.html
index e677349c7..a8e5f34c1 100644
--- a/docs/libnm-util/html/ch01.html
+++ b/docs/libnm-util/html/ch01.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>libnm-util API Reference</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="up" href="index.html" title="libnm-util Reference Manual">
<link rel="prev" href="index.html" title="libnm-util Reference Manual">
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter" title="libnm-util API Reference">
<div class="titlepage"><div><div><h2 class="title">
-<a name="id548911"></a>libnm-util API Reference</h2></div></div></div>
+<a name="id2603518"></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>
diff --git a/docs/libnm-util/html/index.html b/docs/libnm-util/html/index.html
index 890e9bcd6..88c9e9946 100644
--- a/docs/libnm-util/html/index.html
+++ b/docs/libnm-util/html/index.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>libnm-util Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="next" href="ch01.html" title="libnm-util API Reference">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
@@ -82,6 +82,7 @@
</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>
+<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
</dl></div>
</div>
<div class="footer">
diff --git a/docs/libnm-util/html/index.sgml b/docs/libnm-util/html/index.sgml
index 8c58af38d..ee50d977d 100644
--- a/docs/libnm-util/html/index.sgml
+++ b/docs/libnm-util/html/index.sgml
@@ -30,6 +30,7 @@
<ANCHOR id="nm-connection-get-setting-by-name" href="libnm-util/NMConnection.html#nm-connection-get-setting-by-name">
<ANCHOR id="nm-connection-replace-settings" href="libnm-util/NMConnection.html#nm-connection-replace-settings">
<ANCHOR id="nm-connection-compare" href="libnm-util/NMConnection.html#nm-connection-compare">
+<ANCHOR id="nm-connection-diff" href="libnm-util/NMConnection.html#nm-connection-diff">
<ANCHOR id="nm-connection-verify" href="libnm-util/NMConnection.html#nm-connection-verify">
<ANCHOR id="nm-connection-need-secrets" href="libnm-util/NMConnection.html#nm-connection-need-secrets">
<ANCHOR id="nm-connection-clear-secrets" href="libnm-util/NMConnection.html#nm-connection-clear-secrets">
@@ -83,6 +84,11 @@
<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">
+<ANCHOR id="NM-SETTING-DIFF-RESULT-IN-A:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-DIFF-RESULT-IN-A:CAPS">
+<ANCHOR id="NM-SETTING-DIFF-RESULT-IN-B:CAPS" href="libnm-util/NMSetting.html#NM-SETTING-DIFF-RESULT-IN-B:CAPS">
+<ANCHOR id="nm-setting-diff" href="libnm-util/NMSetting.html#nm-setting-diff">
<ANCHOR id="nm-setting-enumerate-values" href="libnm-util/NMSetting.html#nm-setting-enumerate-values">
<ANCHOR id="nm-setting-to-string" href="libnm-util/NMSetting.html#nm-setting-to-string">
<ANCHOR id="nm-setting-clear-secrets" href="libnm-util/NMSetting.html#nm-setting-clear-secrets">
@@ -948,3 +954,4 @@
<ANCHOR id="nm-utils-wifi-channel-to-freq" href="libnm-util/libnm-util-nm-utils.html#nm-utils-wifi-channel-to-freq">
<ANCHOR id="nm-utils-wifi-find-next-channel" href="libnm-util/libnm-util-nm-utils.html#nm-utils-wifi-find-next-channel">
<ANCHOR id="nm-utils-wifi-is-channel-valid" href="libnm-util/libnm-util-nm-utils.html#nm-utils-wifi-is-channel-valid">
+<ANCHOR id="annotation-glossterm-element-type" href="libnm-util/annotation-glossary.html#annotation-glossterm-element-type">
diff --git a/docs/libnm-util/html/libnm-util-nm-utils.html b/docs/libnm-util/html/libnm-util-nm-utils.html
index ca302756e..7226a31c2 100644
--- a/docs/libnm-util/html/libnm-util-nm-utils.html
+++ b/docs/libnm-util/html/libnm-util-nm-utils.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>nm-utils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<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="NMSettingVPN.html" title="NMSettingVPN">
diff --git a/docs/libnm-util/html/libnm-util.devhelp b/docs/libnm-util/html/libnm-util.devhelp
index 8648f5c6e..91d080b90 100644
--- a/docs/libnm-util/html/libnm-util.devhelp
+++ b/docs/libnm-util/html/libnm-util.devhelp
@@ -24,6 +24,7 @@
</sub>
<sub name="Object Hierarchy" link="object-tree.html"/>
<sub name="API Index" link="api-index-full.html"/>
+ <sub name="Annotation Glossary" link="annotation-glossary.html"/>
</chapters>
<functions>
<function name="enum NMConnectionScope" link="NMConnection.html#NMConnectionScope"/>
@@ -45,6 +46,7 @@
<function name="nm_connection_get_setting_by_name ()" link="NMConnection.html#nm-connection-get-setting-by-name"/>
<function name="nm_connection_replace_settings ()" link="NMConnection.html#nm-connection-replace-settings"/>
<function name="nm_connection_compare ()" link="NMConnection.html#nm-connection-compare"/>
+ <function name="nm_connection_diff ()" link="NMConnection.html#nm-connection-diff"/>
<function name="nm_connection_verify ()" link="NMConnection.html#nm-connection-verify"/>
<function name="nm_connection_need_secrets ()" link="NMConnection.html#nm-connection-need-secrets"/>
<function name="nm_connection_clear_secrets ()" link="NMConnection.html#nm-connection-clear-secrets"/>
@@ -82,6 +84,8 @@
<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"/>
<function name="nm_setting_enumerate_values ()" link="NMSetting.html#nm-setting-enumerate-values"/>
<function name="nm_setting_to_string ()" link="NMSetting.html#nm-setting-to-string"/>
<function name="nm_setting_clear_secrets ()" link="NMSetting.html#nm-setting-clear-secrets"/>
diff --git a/docs/libnm-util/html/libnm-util.devhelp2 b/docs/libnm-util/html/libnm-util.devhelp2
index 8a18c4069..3f68f0ecc 100644
--- a/docs/libnm-util/html/libnm-util.devhelp2
+++ b/docs/libnm-util/html/libnm-util.devhelp2
@@ -24,6 +24,7 @@
</sub>
<sub name="Object Hierarchy" link="object-tree.html"/>
<sub name="API Index" link="api-index-full.html"/>
+ <sub name="Annotation Glossary" link="annotation-glossary.html"/>
</chapters>
<functions>
<keyword type="enum" name="enum NMConnectionScope" link="NMConnection.html#NMConnectionScope"/>
@@ -45,6 +46,7 @@
<keyword type="function" name="nm_connection_get_setting_by_name ()" link="NMConnection.html#nm-connection-get-setting-by-name"/>
<keyword type="function" name="nm_connection_replace_settings ()" link="NMConnection.html#nm-connection-replace-settings"/>
<keyword type="function" name="nm_connection_compare ()" link="NMConnection.html#nm-connection-compare"/>
+ <keyword type="function" name="nm_connection_diff ()" link="NMConnection.html#nm-connection-diff"/>
<keyword type="function" name="nm_connection_verify ()" link="NMConnection.html#nm-connection-verify"/>
<keyword type="function" name="nm_connection_need_secrets ()" link="NMConnection.html#nm-connection-need-secrets"/>
<keyword type="function" name="nm_connection_clear_secrets ()" link="NMConnection.html#nm-connection-clear-secrets"/>
@@ -82,6 +84,8 @@
<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"/>
<keyword type="function" name="nm_setting_enumerate_values ()" link="NMSetting.html#nm-setting-enumerate-values"/>
<keyword type="function" name="nm_setting_to_string ()" link="NMSetting.html#nm-setting-to-string"/>
<keyword type="function" name="nm_setting_clear_secrets ()" link="NMSetting.html#nm-setting-clear-secrets"/>
@@ -846,6 +850,9 @@
<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_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"/>
<keyword type="constant" name="NM_SETTING_CONNECTION_ERROR_UNKNOWN" link="NMSettingConnection.html#NM-SETTING-CONNECTION-ERROR-UNKNOWN:CAPS"/>
<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"/>
diff --git a/docs/libnm-util/html/object-tree.html b/docs/libnm-util/html/object-tree.html
index 3b779efba..b6a18ffeb 100644
--- a/docs/libnm-util/html/object-tree.html
+++ b/docs/libnm-util/html/object-tree.html
@@ -3,7 +3,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="libnm-util Reference Manual">
<link rel="up" href="index.html" title="libnm-util Reference Manual">
<link rel="prev" href="libnm-util-nm-utils.html" title="nm-utils">
diff --git a/docs/libnm-util/libnm-util-sections.txt b/docs/libnm-util/libnm-util-sections.txt
index 611288201..38eef9cb2 100644
--- a/docs/libnm-util/libnm-util-sections.txt
+++ b/docs/libnm-util/libnm-util-sections.txt
@@ -1,55 +1,4 @@
<SECTION>
-<FILE>nm-setting-gsm</FILE>
-<TITLE>NMSettingGsm</TITLE>
-NM_SETTING_GSM_SETTING_NAME
-NMSettingGsmError
-NM_TYPE_SETTING_GSM_ERROR
-NM_SETTING_GSM_ERROR
-nm_setting_gsm_error_quark
-NM_SETTING_GSM_NUMBER
-NM_SETTING_GSM_USERNAME
-NM_SETTING_GSM_PASSWORD
-NM_SETTING_GSM_APN
-NM_SETTING_GSM_NETWORK_ID
-NM_SETTING_GSM_NETWORK_TYPE
-NM_SETTING_GSM_ALLOWED_BANDS
-NM_SETTING_GSM_PIN
-NM_SETTING_GSM_HOME_ONLY
-NM_SETTING_GSM_PUK
-NM_SETTING_GSM_BAND
-NM_GSM_NETWORK_ANY
-NM_GSM_NETWORK_UMTS_HSPA
-NM_GSM_NETWORK_GPRS_EDGE
-NM_GSM_NETWORK_PREFER_UMTS_HSPA
-NM_GSM_NETWORK_PREFER_GPRS_EDGE
-NMSettingGsmNetworkType
-NMSettingGsmNetworkBand
-NMSettingGsm
-NMSettingGsmClass
-nm_setting_gsm_get_type
-nm_setting_gsm_new
-nm_setting_gsm_get_number
-nm_setting_gsm_get_username
-nm_setting_gsm_get_password
-nm_setting_gsm_get_apn
-nm_setting_gsm_get_network_id
-nm_setting_gsm_get_network_type
-nm_setting_gsm_get_allowed_bands
-nm_setting_gsm_get_pin
-nm_setting_gsm_get_home_only
-nm_setting_gsm_get_puk
-nm_setting_gsm_get_band
-<SUBSECTION Standard>
-NM_SETTING_GSM
-NM_IS_SETTING_GSM
-NM_TYPE_SETTING_GSM
-nm_setting_gsm_error_get_type
-NM_SETTING_GSM_CLASS
-NM_IS_SETTING_GSM_CLASS
-NM_SETTING_GSM_GET_CLASS
-</SECTION>
-
-<SECTION>
<FILE>nm-setting-8021x</FILE>
<TITLE>NMSetting8021x</TITLE>
NMSetting8021xCKFormat
@@ -157,31 +106,180 @@ NM_SETTING_802_1X_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-setting-bluetooth</FILE>
-<TITLE>NMSettingBluetooth</TITLE>
-NM_SETTING_BLUETOOTH_SETTING_NAME
-NMSettingBluetoothError
-NM_TYPE_SETTING_BLUETOOTH_ERROR
-NM_SETTING_BLUETOOTH_ERROR
-nm_setting_bluetooth_error_quark
-NM_SETTING_BLUETOOTH_BDADDR
-NM_SETTING_BLUETOOTH_TYPE
-NM_SETTING_BLUETOOTH_TYPE_DUN
-NM_SETTING_BLUETOOTH_TYPE_PANU
-NMSettingBluetooth
-NMSettingBluetoothClass
-nm_setting_bluetooth_get_type
-nm_setting_bluetooth_new
-nm_setting_bluetooth_get_bdaddr
-nm_setting_bluetooth_get_connection_type
+<FILE>nm-connection</FILE>
+<TITLE>NMConnection</TITLE>
+NMConnectionScope
+NMConnectionError
+NM_TYPE_CONNECTION_ERROR
+NM_CONNECTION_ERROR
+nm_connection_error_quark
+NM_CONNECTION_SCOPE
+NM_CONNECTION_PATH
+NMConnection
+NMConnectionClass
+nm_connection_get_type
+nm_connection_new
+nm_connection_new_from_hash
+nm_connection_duplicate
+nm_connection_add_setting
+nm_connection_remove_setting
+nm_connection_get_setting
+nm_connection_get_setting_by_name
+nm_connection_replace_settings
+nm_connection_compare
+nm_connection_diff
+nm_connection_verify
+nm_connection_need_secrets
+nm_connection_clear_secrets
+nm_connection_update_secrets
+nm_connection_set_scope
+nm_connection_get_scope
+nm_connection_set_path
+nm_connection_get_path
+nm_connection_for_each_setting_value
+nm_connection_to_hash
+nm_connection_dump
+nm_connection_create_setting
+nm_connection_lookup_setting_type
+nm_connection_lookup_setting_type_by_quark
<SUBSECTION Standard>
-NM_SETTING_BLUETOOTH
-NM_IS_SETTING_BLUETOOTH
-NM_TYPE_SETTING_BLUETOOTH
-nm_setting_bluetooth_error_get_type
-NM_SETTING_BLUETOOTH_CLASS
-NM_IS_SETTING_BLUETOOTH_CLASS
-NM_SETTING_BLUETOOTH_GET_CLASS
+NM_CONNECTION
+NM_IS_CONNECTION
+NM_TYPE_CONNECTION
+nm_connection_error_get_type
+NM_CONNECTION_CLASS
+NM_IS_CONNECTION_CLASS
+NM_CONNECTION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting</FILE>
+<TITLE>NMSetting</TITLE>
+NMSettingError
+NM_TYPE_SETTING_ERROR
+NM_SETTING_ERROR
+nm_setting_error_quark
+NM_SETTING_PARAM_SERIALIZE
+NM_SETTING_PARAM_REQUIRED
+NM_SETTING_PARAM_SECRET
+NM_SETTING_PARAM_FUZZY_IGNORE
+NM_SETTING_NAME
+NMSetting
+NMSettingClass
+NMSettingValueIterFn
+nm_setting_get_type
+nm_setting_to_hash
+nm_setting_new_from_hash
+nm_setting_duplicate
+nm_setting_get_name
+nm_setting_verify
+NMSettingCompareFlags
+nm_setting_compare
+NMSettingDiffResult
+nm_setting_diff
+nm_setting_enumerate_values
+nm_setting_to_string
+nm_setting_clear_secrets
+nm_setting_need_secrets
+nm_setting_update_secrets
+<SUBSECTION Standard>
+NM_SETTING
+NM_IS_SETTING
+NM_TYPE_SETTING
+nm_setting_error_get_type
+NM_SETTING_CLASS
+NM_IS_SETTING_CLASS
+NM_SETTING_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting-serial</FILE>
+<TITLE>NMSettingSerial</TITLE>
+NM_SETTING_SERIAL_SETTING_NAME
+NMSettingSerialError
+NM_TYPE_SETTING_SERIAL_ERROR
+NM_SETTING_SERIAL_ERROR
+nm_setting_serial_error_quark
+NM_SETTING_SERIAL_BAUD
+NM_SETTING_SERIAL_BITS
+NM_SETTING_SERIAL_PARITY
+NM_SETTING_SERIAL_STOPBITS
+NM_SETTING_SERIAL_SEND_DELAY
+NMSettingSerial
+NMSettingSerialClass
+nm_setting_serial_get_type
+nm_setting_serial_new
+nm_setting_serial_get_baud
+nm_setting_serial_get_bits
+nm_setting_serial_get_parity
+nm_setting_serial_get_stopbits
+nm_setting_serial_get_send_delay
+<SUBSECTION Standard>
+NM_SETTING_SERIAL
+NM_IS_SETTING_SERIAL
+NM_TYPE_SETTING_SERIAL
+nm_setting_serial_error_get_type
+NM_SETTING_SERIAL_CLASS
+NM_IS_SETTING_SERIAL_CLASS
+NM_SETTING_SERIAL_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting-ppp</FILE>
+<TITLE>NMSettingPPP</TITLE>
+NM_SETTING_PPP_SETTING_NAME
+NMSettingPPPError
+NM_TYPE_SETTING_PPP_ERROR
+NM_SETTING_PPP_ERROR
+nm_setting_ppp_error_quark
+NM_SETTING_PPP_NOAUTH
+NM_SETTING_PPP_REFUSE_EAP
+NM_SETTING_PPP_REFUSE_PAP
+NM_SETTING_PPP_REFUSE_CHAP
+NM_SETTING_PPP_REFUSE_MSCHAP
+NM_SETTING_PPP_REFUSE_MSCHAPV2
+NM_SETTING_PPP_NOBSDCOMP
+NM_SETTING_PPP_NODEFLATE
+NM_SETTING_PPP_NO_VJ_COMP
+NM_SETTING_PPP_REQUIRE_MPPE
+NM_SETTING_PPP_REQUIRE_MPPE_128
+NM_SETTING_PPP_MPPE_STATEFUL
+NM_SETTING_PPP_CRTSCTS
+NM_SETTING_PPP_BAUD
+NM_SETTING_PPP_MRU
+NM_SETTING_PPP_MTU
+NM_SETTING_PPP_LCP_ECHO_FAILURE
+NM_SETTING_PPP_LCP_ECHO_INTERVAL
+NMSettingPPP
+NMSettingPPPClass
+nm_setting_ppp_get_type
+nm_setting_ppp_new
+nm_setting_ppp_get_noauth
+nm_setting_ppp_get_refuse_eap
+nm_setting_ppp_get_refuse_pap
+nm_setting_ppp_get_refuse_chap
+nm_setting_ppp_get_refuse_mschap
+nm_setting_ppp_get_refuse_mschapv2
+nm_setting_ppp_get_nobsdcomp
+nm_setting_ppp_get_nodeflate
+nm_setting_ppp_get_no_vj_comp
+nm_setting_ppp_get_require_mppe
+nm_setting_ppp_get_require_mppe_128
+nm_setting_ppp_get_mppe_stateful
+nm_setting_ppp_get_crtscts
+nm_setting_ppp_get_baud
+nm_setting_ppp_get_mru
+nm_setting_ppp_get_mtu
+nm_setting_ppp_get_lcp_echo_failure
+nm_setting_ppp_get_lcp_echo_interval
+<SUBSECTION Standard>
+NM_SETTING_PPP
+NM_IS_SETTING_PPP
+NM_TYPE_SETTING_PPP
+nm_setting_ppp_error_get_type
+NM_SETTING_PPP_CLASS
+NM_IS_SETTING_PPP_CLASS
+NM_SETTING_PPP_GET_CLASS
</SECTION>
<SECTION>
@@ -213,6 +311,101 @@ NM_SETTING_OLPC_MESH_GET_CLASS
</SECTION>
<SECTION>
+<FILE>nm-setting-wired</FILE>
+<TITLE>NMSettingWired</TITLE>
+NM_SETTING_WIRED_SETTING_NAME
+NMSettingWiredError
+NM_TYPE_SETTING_WIRED_ERROR
+NM_SETTING_WIRED_ERROR
+nm_setting_wired_error_quark
+NM_SETTING_WIRED_PORT
+NM_SETTING_WIRED_SPEED
+NM_SETTING_WIRED_DUPLEX
+NM_SETTING_WIRED_AUTO_NEGOTIATE
+NM_SETTING_WIRED_MAC_ADDRESS
+NM_SETTING_WIRED_CLONED_MAC_ADDRESS
+NM_SETTING_WIRED_MTU
+NM_SETTING_WIRED_S390_SUBCHANNELS
+NM_SETTING_WIRED_S390_NETTYPE
+NM_SETTING_WIRED_S390_OPTIONS
+NMSettingWired
+NMSettingWiredClass
+nm_setting_wired_get_type
+nm_setting_wired_new
+nm_setting_wired_get_port
+nm_setting_wired_get_speed
+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_mtu
+nm_setting_wired_get_s390_subchannels
+nm_setting_wired_get_s390_nettype
+nm_setting_wired_get_num_s390_options
+nm_setting_wired_get_s390_option
+nm_setting_wired_get_s390_option_by_key
+nm_setting_wired_add_s390_option
+nm_setting_wired_remove_s390_option
+<SUBSECTION Standard>
+NM_SETTING_WIRED
+NM_IS_SETTING_WIRED
+NM_TYPE_SETTING_WIRED
+nm_setting_wired_error_get_type
+NM_SETTING_WIRED_CLASS
+NM_IS_SETTING_WIRED_CLASS
+NM_SETTING_WIRED_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting-wireless</FILE>
+<TITLE>NMSettingWireless</TITLE>
+NM_SETTING_WIRELESS_SETTING_NAME
+NMSettingWirelessError
+NM_TYPE_SETTING_WIRELESS_ERROR
+NM_SETTING_WIRELESS_ERROR
+nm_setting_wireless_error_quark
+NM_SETTING_WIRELESS_SSID
+NM_SETTING_WIRELESS_MODE
+NM_SETTING_WIRELESS_BAND
+NM_SETTING_WIRELESS_CHANNEL
+NM_SETTING_WIRELESS_BSSID
+NM_SETTING_WIRELESS_RATE
+NM_SETTING_WIRELESS_TX_POWER
+NM_SETTING_WIRELESS_MAC_ADDRESS
+NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS
+NM_SETTING_WIRELESS_MTU
+NM_SETTING_WIRELESS_SEEN_BSSIDS
+NM_SETTING_WIRELESS_SEC
+NMSettingWireless
+NMSettingWirelessClass
+nm_setting_wireless_get_type
+nm_setting_wireless_new
+nm_setting_wireless_get_ssid
+nm_setting_wireless_get_mode
+nm_setting_wireless_get_band
+nm_setting_wireless_get_channel
+nm_setting_wireless_get_bssid
+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_mtu
+nm_setting_wireless_get_security
+nm_setting_wireless_add_seen_bssid
+nm_setting_wireless_get_num_seen_bssids
+nm_setting_wireless_get_seen_bssid
+nm_setting_wireless_ap_security_compatible
+<SUBSECTION Standard>
+NM_SETTING_WIRELESS
+NM_IS_SETTING_WIRELESS
+NM_TYPE_SETTING_WIRELESS
+nm_setting_wireless_error_get_type
+NM_SETTING_WIRELESS_CLASS
+NM_IS_SETTING_WIRELESS_CLASS
+NM_SETTING_WIRELESS_GET_CLASS
+</SECTION>
+
+<SECTION>
<FILE>nm-setting-cdma</FILE>
<TITLE>NMSettingCdma</TITLE>
NM_SETTING_CDMA_SETTING_NAME
@@ -241,35 +434,96 @@ NM_SETTING_CDMA_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-setting-serial</FILE>
-<TITLE>NMSettingSerial</TITLE>
-NM_SETTING_SERIAL_SETTING_NAME
-NMSettingSerialError
-NM_TYPE_SETTING_SERIAL_ERROR
-NM_SETTING_SERIAL_ERROR
-nm_setting_serial_error_quark
-NM_SETTING_SERIAL_BAUD
-NM_SETTING_SERIAL_BITS
-NM_SETTING_SERIAL_PARITY
-NM_SETTING_SERIAL_STOPBITS
-NM_SETTING_SERIAL_SEND_DELAY
-NMSettingSerial
-NMSettingSerialClass
-nm_setting_serial_get_type
-nm_setting_serial_new
-nm_setting_serial_get_baud
-nm_setting_serial_get_bits
-nm_setting_serial_get_parity
-nm_setting_serial_get_stopbits
-nm_setting_serial_get_send_delay
+<FILE>nm-setting-ip4-config</FILE>
+<TITLE>NMSettingIP4Config</TITLE>
+NM_SETTING_IP4_CONFIG_SETTING_NAME
+NMSettingIP4ConfigError
+NM_TYPE_SETTING_IP4_CONFIG_ERROR
+NM_SETTING_IP4_CONFIG_ERROR
+nm_setting_ip4_config_error_quark
+NM_SETTING_IP4_CONFIG_METHOD
+NM_SETTING_IP4_CONFIG_DNS
+NM_SETTING_IP4_CONFIG_DNS_SEARCH
+NM_SETTING_IP4_CONFIG_ADDRESSES
+NM_SETTING_IP4_CONFIG_ROUTES
+NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES
+NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS
+NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID
+NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME
+NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME
+NM_SETTING_IP4_CONFIG_NEVER_DEFAULT
+NM_SETTING_IP4_CONFIG_MAY_FAIL
+NM_SETTING_IP4_CONFIG_METHOD_AUTO
+NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL
+NM_SETTING_IP4_CONFIG_METHOD_MANUAL
+NM_SETTING_IP4_CONFIG_METHOD_SHARED
+NM_SETTING_IP4_CONFIG_METHOD_DISABLED
+NMIP4Address
+nm_ip4_address_new
+nm_ip4_address_dup
+nm_ip4_address_ref
+nm_ip4_address_unref
+nm_ip4_address_compare
+nm_ip4_address_get_address
+nm_ip4_address_set_address
+nm_ip4_address_get_prefix
+nm_ip4_address_set_prefix
+nm_ip4_address_get_gateway
+nm_ip4_address_set_gateway
+NMIP4Route
+nm_ip4_route_new
+nm_ip4_route_dup
+nm_ip4_route_ref
+nm_ip4_route_unref
+nm_ip4_route_compare
+nm_ip4_route_get_dest
+nm_ip4_route_set_dest
+nm_ip4_route_get_prefix
+nm_ip4_route_set_prefix
+nm_ip4_route_get_next_hop
+nm_ip4_route_set_next_hop
+nm_ip4_route_get_metric
+nm_ip4_route_set_metric
+NMSettingIP4Config
+NMSettingIP4ConfigClass
+nm_setting_ip4_config_get_type
+nm_setting_ip4_config_new
+nm_setting_ip4_config_get_method
+nm_setting_ip4_config_get_num_dns
+nm_setting_ip4_config_get_dns
+nm_setting_ip4_config_add_dns
+nm_setting_ip4_config_remove_dns
+nm_setting_ip4_config_clear_dns
+nm_setting_ip4_config_get_num_dns_searches
+nm_setting_ip4_config_get_dns_search
+nm_setting_ip4_config_add_dns_search
+nm_setting_ip4_config_remove_dns_search
+nm_setting_ip4_config_clear_dns_searches
+nm_setting_ip4_config_get_num_addresses
+nm_setting_ip4_config_get_address
+nm_setting_ip4_config_add_address
+nm_setting_ip4_config_remove_address
+nm_setting_ip4_config_clear_addresses
+nm_setting_ip4_config_get_num_routes
+nm_setting_ip4_config_get_route
+nm_setting_ip4_config_add_route
+nm_setting_ip4_config_remove_route
+nm_setting_ip4_config_clear_routes
+nm_setting_ip4_config_get_ignore_auto_routes
+nm_setting_ip4_config_get_ignore_auto_dns
+nm_setting_ip4_config_get_dhcp_client_id
+nm_setting_ip4_config_get_dhcp_send_hostname
+nm_setting_ip4_config_get_dhcp_hostname
+nm_setting_ip4_config_get_never_default
+nm_setting_ip4_config_get_may_fail
<SUBSECTION Standard>
-NM_SETTING_SERIAL
-NM_IS_SETTING_SERIAL
-NM_TYPE_SETTING_SERIAL
-nm_setting_serial_error_get_type
-NM_SETTING_SERIAL_CLASS
-NM_IS_SETTING_SERIAL_CLASS
-NM_SETTING_SERIAL_GET_CLASS
+NM_SETTING_IP4_CONFIG
+NM_IS_SETTING_IP4_CONFIG
+NM_TYPE_SETTING_IP4_CONFIG
+nm_setting_ip4_config_error_get_type
+NM_SETTING_IP4_CONFIG_CLASS
+NM_IS_SETTING_IP4_CONFIG_CLASS
+NM_SETTING_IP4_CONFIG_GET_CLASS
</SECTION>
<SECTION>
@@ -334,6 +588,119 @@ NM_SETTING_WIRELESS_SECURITY_GET_CLASS
</SECTION>
<SECTION>
+<FILE>nm-setting-pppoe</FILE>
+<TITLE>NMSettingPPPOE</TITLE>
+NM_SETTING_PPPOE_SETTING_NAME
+NMSettingPPPOEError
+NM_TYPE_SETTING_PPPOE_ERROR
+NM_SETTING_PPPOE_ERROR
+nm_setting_pppoe_error_quark
+NM_SETTING_PPPOE_SERVICE
+NM_SETTING_PPPOE_USERNAME
+NM_SETTING_PPPOE_PASSWORD
+NMSettingPPPOE
+NMSettingPPPOEClass
+nm_setting_pppoe_get_type
+nm_setting_pppoe_new
+nm_setting_pppoe_get_service
+nm_setting_pppoe_get_username
+nm_setting_pppoe_get_password
+<SUBSECTION Standard>
+NM_SETTING_PPPOE
+NM_IS_SETTING_PPPOE
+NM_TYPE_SETTING_PPPOE
+nm_setting_pppoe_error_get_type
+NM_SETTING_PPPOE_CLASS
+NM_IS_SETTING_PPPOE_CLASS
+NM_SETTING_PPPOE_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting-connection</FILE>
+<TITLE>NMSettingConnection</TITLE>
+NM_SETTING_CONNECTION_SETTING_NAME
+NMSettingConnectionError
+NM_TYPE_SETTING_CONNECTION_ERROR
+NM_SETTING_CONNECTION_ERROR
+nm_setting_connection_error_quark
+NM_SETTING_CONNECTION_ID
+NM_SETTING_CONNECTION_UUID
+NM_SETTING_CONNECTION_TYPE
+NM_SETTING_CONNECTION_AUTOCONNECT
+NM_SETTING_CONNECTION_TIMESTAMP
+NM_SETTING_CONNECTION_READ_ONLY
+NMSettingConnection
+NMSettingConnectionClass
+nm_setting_connection_get_type
+nm_setting_connection_new
+nm_setting_connection_get_id
+nm_setting_connection_get_uuid
+nm_setting_connection_get_connection_type
+nm_setting_connection_get_autoconnect
+nm_setting_connection_get_timestamp
+nm_setting_connection_get_read_only
+<SUBSECTION Standard>
+NM_SETTING_CONNECTION
+NM_IS_SETTING_CONNECTION
+NM_TYPE_SETTING_CONNECTION
+nm_setting_connection_error_get_type
+NM_SETTING_CONNECTION_CLASS
+NM_IS_SETTING_CONNECTION_CLASS
+NM_SETTING_CONNECTION_GET_CLASS
+</SECTION>
+
+<SECTION>
+<FILE>nm-setting-gsm</FILE>
+<TITLE>NMSettingGsm</TITLE>
+NM_SETTING_GSM_SETTING_NAME
+NMSettingGsmError
+NM_TYPE_SETTING_GSM_ERROR
+NM_SETTING_GSM_ERROR
+nm_setting_gsm_error_quark
+NM_SETTING_GSM_NUMBER
+NM_SETTING_GSM_USERNAME
+NM_SETTING_GSM_PASSWORD
+NM_SETTING_GSM_APN
+NM_SETTING_GSM_NETWORK_ID
+NM_SETTING_GSM_NETWORK_TYPE
+NM_SETTING_GSM_ALLOWED_BANDS
+NM_SETTING_GSM_PIN
+NM_SETTING_GSM_HOME_ONLY
+NM_SETTING_GSM_PUK
+NM_SETTING_GSM_BAND
+NM_GSM_NETWORK_ANY
+NM_GSM_NETWORK_UMTS_HSPA
+NM_GSM_NETWORK_GPRS_EDGE
+NM_GSM_NETWORK_PREFER_UMTS_HSPA
+NM_GSM_NETWORK_PREFER_GPRS_EDGE
+NMSettingGsmNetworkType
+NMSettingGsmNetworkBand
+NMSettingGsm
+NMSettingGsmClass
+nm_setting_gsm_get_type
+nm_setting_gsm_new
+nm_setting_gsm_get_number
+nm_setting_gsm_get_username
+nm_setting_gsm_get_password
+nm_setting_gsm_get_apn
+nm_setting_gsm_get_network_id
+nm_setting_gsm_get_network_type
+nm_setting_gsm_get_allowed_bands
+nm_setting_gsm_get_pin
+nm_setting_gsm_get_home_only
+nm_setting_gsm_get_puk
+nm_setting_gsm_get_band
+<SUBSECTION Standard>
+NM_SETTING_GSM
+NM_IS_SETTING_GSM
+NM_TYPE_SETTING_GSM
+nm_setting_gsm_error_get_type
+NM_SETTING_GSM_CLASS
+NM_IS_SETTING_GSM_CLASS
+NM_SETTING_GSM_GET_CLASS
+</SECTION>
+
+<SECTION>
<FILE>nm-setting-ip6-config</FILE>
<TITLE>NMSettingIP6Config</TITLE>
NM_SETTING_IP6_CONFIG_SETTING_NAME
@@ -422,346 +789,31 @@ NM_SETTING_IP6_CONFIG_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-setting-ip4-config</FILE>
-<TITLE>NMSettingIP4Config</TITLE>
-NM_SETTING_IP4_CONFIG_SETTING_NAME
-NMSettingIP4ConfigError
-NM_TYPE_SETTING_IP4_CONFIG_ERROR
-NM_SETTING_IP4_CONFIG_ERROR
-nm_setting_ip4_config_error_quark
-NM_SETTING_IP4_CONFIG_METHOD
-NM_SETTING_IP4_CONFIG_DNS
-NM_SETTING_IP4_CONFIG_DNS_SEARCH
-NM_SETTING_IP4_CONFIG_ADDRESSES
-NM_SETTING_IP4_CONFIG_ROUTES
-NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES
-NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS
-NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID
-NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME
-NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME
-NM_SETTING_IP4_CONFIG_NEVER_DEFAULT
-NM_SETTING_IP4_CONFIG_MAY_FAIL
-NM_SETTING_IP4_CONFIG_METHOD_AUTO
-NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL
-NM_SETTING_IP4_CONFIG_METHOD_MANUAL
-NM_SETTING_IP4_CONFIG_METHOD_SHARED
-NM_SETTING_IP4_CONFIG_METHOD_DISABLED
-NMIP4Address
-nm_ip4_address_new
-nm_ip4_address_dup
-nm_ip4_address_ref
-nm_ip4_address_unref
-nm_ip4_address_compare
-nm_ip4_address_get_address
-nm_ip4_address_set_address
-nm_ip4_address_get_prefix
-nm_ip4_address_set_prefix
-nm_ip4_address_get_gateway
-nm_ip4_address_set_gateway
-NMIP4Route
-nm_ip4_route_new
-nm_ip4_route_dup
-nm_ip4_route_ref
-nm_ip4_route_unref
-nm_ip4_route_compare
-nm_ip4_route_get_dest
-nm_ip4_route_set_dest
-nm_ip4_route_get_prefix
-nm_ip4_route_set_prefix
-nm_ip4_route_get_next_hop
-nm_ip4_route_set_next_hop
-nm_ip4_route_get_metric
-nm_ip4_route_set_metric
-NMSettingIP4Config
-NMSettingIP4ConfigClass
-nm_setting_ip4_config_get_type
-nm_setting_ip4_config_new
-nm_setting_ip4_config_get_method
-nm_setting_ip4_config_get_num_dns
-nm_setting_ip4_config_get_dns
-nm_setting_ip4_config_add_dns
-nm_setting_ip4_config_remove_dns
-nm_setting_ip4_config_clear_dns
-nm_setting_ip4_config_get_num_dns_searches
-nm_setting_ip4_config_get_dns_search
-nm_setting_ip4_config_add_dns_search
-nm_setting_ip4_config_remove_dns_search
-nm_setting_ip4_config_clear_dns_searches
-nm_setting_ip4_config_get_num_addresses
-nm_setting_ip4_config_get_address
-nm_setting_ip4_config_add_address
-nm_setting_ip4_config_remove_address
-nm_setting_ip4_config_clear_addresses
-nm_setting_ip4_config_get_num_routes
-nm_setting_ip4_config_get_route
-nm_setting_ip4_config_add_route
-nm_setting_ip4_config_remove_route
-nm_setting_ip4_config_clear_routes
-nm_setting_ip4_config_get_ignore_auto_routes
-nm_setting_ip4_config_get_ignore_auto_dns
-nm_setting_ip4_config_get_dhcp_client_id
-nm_setting_ip4_config_get_dhcp_send_hostname
-nm_setting_ip4_config_get_dhcp_hostname
-nm_setting_ip4_config_get_never_default
-nm_setting_ip4_config_get_may_fail
-<SUBSECTION Standard>
-NM_SETTING_IP4_CONFIG
-NM_IS_SETTING_IP4_CONFIG
-NM_TYPE_SETTING_IP4_CONFIG
-nm_setting_ip4_config_error_get_type
-NM_SETTING_IP4_CONFIG_CLASS
-NM_IS_SETTING_IP4_CONFIG_CLASS
-NM_SETTING_IP4_CONFIG_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-setting-wired</FILE>
-<TITLE>NMSettingWired</TITLE>
-NM_SETTING_WIRED_SETTING_NAME
-NMSettingWiredError
-NM_TYPE_SETTING_WIRED_ERROR
-NM_SETTING_WIRED_ERROR
-nm_setting_wired_error_quark
-NM_SETTING_WIRED_PORT
-NM_SETTING_WIRED_SPEED
-NM_SETTING_WIRED_DUPLEX
-NM_SETTING_WIRED_AUTO_NEGOTIATE
-NM_SETTING_WIRED_MAC_ADDRESS
-NM_SETTING_WIRED_CLONED_MAC_ADDRESS
-NM_SETTING_WIRED_MTU
-NM_SETTING_WIRED_S390_SUBCHANNELS
-NM_SETTING_WIRED_S390_NETTYPE
-NM_SETTING_WIRED_S390_OPTIONS
-NMSettingWired
-NMSettingWiredClass
-nm_setting_wired_get_type
-nm_setting_wired_new
-nm_setting_wired_get_port
-nm_setting_wired_get_speed
-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_mtu
-nm_setting_wired_get_s390_subchannels
-nm_setting_wired_get_s390_nettype
-nm_setting_wired_get_num_s390_options
-nm_setting_wired_get_s390_option
-nm_setting_wired_get_s390_option_by_key
-nm_setting_wired_add_s390_option
-nm_setting_wired_remove_s390_option
-<SUBSECTION Standard>
-NM_SETTING_WIRED
-NM_IS_SETTING_WIRED
-NM_TYPE_SETTING_WIRED
-nm_setting_wired_error_get_type
-NM_SETTING_WIRED_CLASS
-NM_IS_SETTING_WIRED_CLASS
-NM_SETTING_WIRED_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-setting-connection</FILE>
-<TITLE>NMSettingConnection</TITLE>
-NM_SETTING_CONNECTION_SETTING_NAME
-NMSettingConnectionError
-NM_TYPE_SETTING_CONNECTION_ERROR
-NM_SETTING_CONNECTION_ERROR
-nm_setting_connection_error_quark
-NM_SETTING_CONNECTION_ID
-NM_SETTING_CONNECTION_UUID
-NM_SETTING_CONNECTION_TYPE
-NM_SETTING_CONNECTION_AUTOCONNECT
-NM_SETTING_CONNECTION_TIMESTAMP
-NM_SETTING_CONNECTION_READ_ONLY
-NMSettingConnection
-NMSettingConnectionClass
-nm_setting_connection_get_type
-nm_setting_connection_new
-nm_setting_connection_get_id
-nm_setting_connection_get_uuid
-nm_setting_connection_get_connection_type
-nm_setting_connection_get_autoconnect
-nm_setting_connection_get_timestamp
-nm_setting_connection_get_read_only
-<SUBSECTION Standard>
-NM_SETTING_CONNECTION
-NM_IS_SETTING_CONNECTION
-NM_TYPE_SETTING_CONNECTION
-nm_setting_connection_error_get_type
-NM_SETTING_CONNECTION_CLASS
-NM_IS_SETTING_CONNECTION_CLASS
-NM_SETTING_CONNECTION_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-setting</FILE>
-<TITLE>NMSetting</TITLE>
-NMSettingError
-NM_TYPE_SETTING_ERROR
-NM_SETTING_ERROR
-nm_setting_error_quark
-NM_SETTING_PARAM_SERIALIZE
-NM_SETTING_PARAM_REQUIRED
-NM_SETTING_PARAM_SECRET
-NM_SETTING_PARAM_FUZZY_IGNORE
-NM_SETTING_NAME
-NMSetting
-NMSettingClass
-NMSettingValueIterFn
-nm_setting_get_type
-nm_setting_to_hash
-nm_setting_new_from_hash
-nm_setting_duplicate
-nm_setting_get_name
-nm_setting_verify
-NMSettingCompareFlags
-nm_setting_compare
-nm_setting_enumerate_values
-nm_setting_to_string
-nm_setting_clear_secrets
-nm_setting_need_secrets
-nm_setting_update_secrets
-<SUBSECTION Standard>
-NM_SETTING
-NM_IS_SETTING
-NM_TYPE_SETTING
-nm_setting_error_get_type
-NM_SETTING_CLASS
-NM_IS_SETTING_CLASS
-NM_SETTING_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-setting-ppp</FILE>
-<TITLE>NMSettingPPP</TITLE>
-NM_SETTING_PPP_SETTING_NAME
-NMSettingPPPError
-NM_TYPE_SETTING_PPP_ERROR
-NM_SETTING_PPP_ERROR
-nm_setting_ppp_error_quark
-NM_SETTING_PPP_NOAUTH
-NM_SETTING_PPP_REFUSE_EAP
-NM_SETTING_PPP_REFUSE_PAP
-NM_SETTING_PPP_REFUSE_CHAP
-NM_SETTING_PPP_REFUSE_MSCHAP
-NM_SETTING_PPP_REFUSE_MSCHAPV2
-NM_SETTING_PPP_NOBSDCOMP
-NM_SETTING_PPP_NODEFLATE
-NM_SETTING_PPP_NO_VJ_COMP
-NM_SETTING_PPP_REQUIRE_MPPE
-NM_SETTING_PPP_REQUIRE_MPPE_128
-NM_SETTING_PPP_MPPE_STATEFUL
-NM_SETTING_PPP_CRTSCTS
-NM_SETTING_PPP_BAUD
-NM_SETTING_PPP_MRU
-NM_SETTING_PPP_MTU
-NM_SETTING_PPP_LCP_ECHO_FAILURE
-NM_SETTING_PPP_LCP_ECHO_INTERVAL
-NMSettingPPP
-NMSettingPPPClass
-nm_setting_ppp_get_type
-nm_setting_ppp_new
-nm_setting_ppp_get_noauth
-nm_setting_ppp_get_refuse_eap
-nm_setting_ppp_get_refuse_pap
-nm_setting_ppp_get_refuse_chap
-nm_setting_ppp_get_refuse_mschap
-nm_setting_ppp_get_refuse_mschapv2
-nm_setting_ppp_get_nobsdcomp
-nm_setting_ppp_get_nodeflate
-nm_setting_ppp_get_no_vj_comp
-nm_setting_ppp_get_require_mppe
-nm_setting_ppp_get_require_mppe_128
-nm_setting_ppp_get_mppe_stateful
-nm_setting_ppp_get_crtscts
-nm_setting_ppp_get_baud
-nm_setting_ppp_get_mru
-nm_setting_ppp_get_mtu
-nm_setting_ppp_get_lcp_echo_failure
-nm_setting_ppp_get_lcp_echo_interval
-<SUBSECTION Standard>
-NM_SETTING_PPP
-NM_IS_SETTING_PPP
-NM_TYPE_SETTING_PPP
-nm_setting_ppp_error_get_type
-NM_SETTING_PPP_CLASS
-NM_IS_SETTING_PPP_CLASS
-NM_SETTING_PPP_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-connection</FILE>
-<TITLE>NMConnection</TITLE>
-NMConnectionScope
-NMConnectionError
-NM_TYPE_CONNECTION_ERROR
-NM_CONNECTION_ERROR
-nm_connection_error_quark
-NM_CONNECTION_SCOPE
-NM_CONNECTION_PATH
-NMConnection
-NMConnectionClass
-nm_connection_get_type
-nm_connection_new
-nm_connection_new_from_hash
-nm_connection_duplicate
-nm_connection_add_setting
-nm_connection_remove_setting
-nm_connection_get_setting
-nm_connection_get_setting_by_name
-nm_connection_replace_settings
-nm_connection_compare
-nm_connection_verify
-nm_connection_need_secrets
-nm_connection_clear_secrets
-nm_connection_update_secrets
-nm_connection_set_scope
-nm_connection_get_scope
-nm_connection_set_path
-nm_connection_get_path
-nm_connection_for_each_setting_value
-nm_connection_to_hash
-nm_connection_dump
-nm_connection_create_setting
-nm_connection_lookup_setting_type
-nm_connection_lookup_setting_type_by_quark
-<SUBSECTION Standard>
-NM_CONNECTION
-NM_IS_CONNECTION
-NM_TYPE_CONNECTION
-nm_connection_error_get_type
-NM_CONNECTION_CLASS
-NM_IS_CONNECTION_CLASS
-NM_CONNECTION_GET_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>nm-setting-pppoe</FILE>
-<TITLE>NMSettingPPPOE</TITLE>
-NM_SETTING_PPPOE_SETTING_NAME
-NMSettingPPPOEError
-NM_TYPE_SETTING_PPPOE_ERROR
-NM_SETTING_PPPOE_ERROR
-nm_setting_pppoe_error_quark
-NM_SETTING_PPPOE_SERVICE
-NM_SETTING_PPPOE_USERNAME
-NM_SETTING_PPPOE_PASSWORD
-NMSettingPPPOE
-NMSettingPPPOEClass
-nm_setting_pppoe_get_type
-nm_setting_pppoe_new
-nm_setting_pppoe_get_service
-nm_setting_pppoe_get_username
-nm_setting_pppoe_get_password
+<FILE>nm-setting-bluetooth</FILE>
+<TITLE>NMSettingBluetooth</TITLE>
+NM_SETTING_BLUETOOTH_SETTING_NAME
+NMSettingBluetoothError
+NM_TYPE_SETTING_BLUETOOTH_ERROR
+NM_SETTING_BLUETOOTH_ERROR
+nm_setting_bluetooth_error_quark
+NM_SETTING_BLUETOOTH_BDADDR
+NM_SETTING_BLUETOOTH_TYPE
+NM_SETTING_BLUETOOTH_TYPE_DUN
+NM_SETTING_BLUETOOTH_TYPE_PANU
+NMSettingBluetooth
+NMSettingBluetoothClass
+nm_setting_bluetooth_get_type
+nm_setting_bluetooth_new
+nm_setting_bluetooth_get_bdaddr
+nm_setting_bluetooth_get_connection_type
<SUBSECTION Standard>
-NM_SETTING_PPPOE
-NM_IS_SETTING_PPPOE
-NM_TYPE_SETTING_PPPOE
-nm_setting_pppoe_error_get_type
-NM_SETTING_PPPOE_CLASS
-NM_IS_SETTING_PPPOE_CLASS
-NM_SETTING_PPPOE_GET_CLASS
+NM_SETTING_BLUETOOTH
+NM_IS_SETTING_BLUETOOTH
+NM_TYPE_SETTING_BLUETOOTH
+nm_setting_bluetooth_error_get_type
+NM_SETTING_BLUETOOTH_CLASS
+NM_IS_SETTING_BLUETOOTH_CLASS
+NM_SETTING_BLUETOOTH_GET_CLASS
</SECTION>
<SECTION>
@@ -802,55 +854,6 @@ NM_SETTING_VPN_GET_CLASS
</SECTION>
<SECTION>
-<FILE>nm-setting-wireless</FILE>
-<TITLE>NMSettingWireless</TITLE>
-NM_SETTING_WIRELESS_SETTING_NAME
-NMSettingWirelessError
-NM_TYPE_SETTING_WIRELESS_ERROR
-NM_SETTING_WIRELESS_ERROR
-nm_setting_wireless_error_quark
-NM_SETTING_WIRELESS_SSID
-NM_SETTING_WIRELESS_MODE
-NM_SETTING_WIRELESS_BAND
-NM_SETTING_WIRELESS_CHANNEL
-NM_SETTING_WIRELESS_BSSID
-NM_SETTING_WIRELESS_RATE
-NM_SETTING_WIRELESS_TX_POWER
-NM_SETTING_WIRELESS_MAC_ADDRESS
-NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS
-NM_SETTING_WIRELESS_MTU
-NM_SETTING_WIRELESS_SEEN_BSSIDS
-NM_SETTING_WIRELESS_SEC
-NMSettingWireless
-NMSettingWirelessClass
-nm_setting_wireless_get_type
-nm_setting_wireless_new
-nm_setting_wireless_get_ssid
-nm_setting_wireless_get_mode
-nm_setting_wireless_get_band
-nm_setting_wireless_get_channel
-nm_setting_wireless_get_bssid
-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_mtu
-nm_setting_wireless_get_security
-nm_setting_wireless_add_seen_bssid
-nm_setting_wireless_get_num_seen_bssids
-nm_setting_wireless_get_seen_bssid
-nm_setting_wireless_ap_security_compatible
-<SUBSECTION Standard>
-NM_SETTING_WIRELESS
-NM_IS_SETTING_WIRELESS
-NM_TYPE_SETTING_WIRELESS
-nm_setting_wireless_error_get_type
-NM_SETTING_WIRELESS_CLASS
-NM_IS_SETTING_WIRELESS_CLASS
-NM_SETTING_WIRELESS_GET_CLASS
-</SECTION>
-
-<SECTION>
<FILE>nm-utils</FILE>
nm_print_backtrace
nm_get_timestamp
diff --git a/docs/libnm-util/tmpl/libnm-util-unused.sgml b/docs/libnm-util/tmpl/libnm-util-unused.sgml
index 14ec2d318..e69de29bb 100644
--- a/docs/libnm-util/tmpl/libnm-util-unused.sgml
+++ b/docs/libnm-util/tmpl/libnm-util-unused.sgml
@@ -1,564 +0,0 @@
-<!-- ##### SECTION ./tmpl/nm-setting-bridge.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-bridge.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-bridge.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-bridge.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-bridge.sgml:Title ##### -->
-NMSettingBridge
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:Image ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/nm-setting-wimax.sgml:Title ##### -->
-NMSettingWimax
-
-
-<!-- ##### ARG NMSetting8021x:ca-cert-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSetting8021x:client-cert-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSetting8021x:phase2-ca-cert-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSetting8021x:phase2-client-cert-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSetting8021x:phase2-private-key-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSetting8021x:private-key-path ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT NMSettingBridge ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingBridge:ifname ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingBridge:members ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ENUM NMSettingBridgeError ##### -->
-<para>
-
-</para>
-
-@NM_SETTING_BRIDGE_ERROR_UNKNOWN:
-@NM_SETTING_BRIDGE_ERROR_INVALID_PROPERTY:
-@NM_SETTING_BRIDGE_ERROR_MISSING_PROPERTY:
-
-<!-- ##### ARG NMSettingConnection:permissions ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ENUM NMSettingGsmNetworkMode ##### -->
-<para>
-
-</para>
-
-@NM_SETTING_GSM_NETWORK_ANY:
-@NM_SETTING_GSM_NETWORK_UMTS_HSPA:
-@NM_SETTING_GSM_NETWORK_GPRS_EDGE:
-@NM_SETTING_GSM_NETWORK_PREFER_UMTS_HSPA:
-@NM_SETTING_GSM_NETWORK_PREFER_GPRS_EDGE:
-
-<!-- ##### STRUCT NMSettingWimax ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWimax:mac-address ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWimax:network-name ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### STRUCT NMSettingWimaxClass ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### ENUM NMSettingWimaxError ##### -->
-<para>
-
-</para>
-
-@NM_SETTING_WIMAX_ERROR_UNKNOWN:
-@NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY:
-@NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY:
-
-<!-- ##### ARG NMSettingWired:s390-port-name ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWired:s390-port-number ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWired:s390-qeth-layer ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWired:zvm-subchannels ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTINGS_CONNECTION_PERMISSION_PREFIX_GROUP ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTINGS_CONNECTION_PERMISSION_PREFIX_USER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_CA_CERT_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_CLIENT_CERT_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_PHASE2_CA_CERT_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_802_1X_PRIVATE_KEY_PATH ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_IFNAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_MEMBERS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_SETTING_NAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_CONNECTION_PERMISSIONS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_MAC_ADDRESS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_NETWORK_NAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_SETTING_NAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIRED_S390_PORT_NAME ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIRED_S390_PORT_NUMBER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIRED_S390_QETH_LAYER ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_SETTING_WIRED_ZVM_SUBCHANNELS ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_TYPE_SETTING_BRIDGE_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO NM_TYPE_SETTING_WIMAX_ERROR ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_ca_cert_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_cert:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_client_cert_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_cert:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_phase2_ca_cert_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_cert:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_phase2_client_cert_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_cert:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_phase2_private_key_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_file:
-@password:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_802_1x_set_private_key_path ##### -->
-<para>
-
-</para>
-
-@setting:
-@path_to_file:
-@password:
-@out_ck_type:
-@error:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_add_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@uuid:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_clear_members ##### -->
-<para>
-
-</para>
-
-@setting:
-
-<!-- ##### FUNCTION nm_setting_bridge_error_quark ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_get_ifname ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_get_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@i:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_get_num_members ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_get_type ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_bridge_remove_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@i:
-
-<!-- ##### FUNCTION nm_setting_connection_get_num_permissions ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_connection_get_permission ##### -->
-<para>
-
-</para>
-
-@setting:
-@index:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_connection_get_permission_entry ##### -->
-<para>
-
-</para>
-
-@setting:
-@index:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wimax_error_quark ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wimax_get_mac_address ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wimax_get_network_name ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wimax_get_type ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wimax_new ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wired_get_s390_port_name ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wired_get_s390_port_number ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wired_get_s390_qeth_layer ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-<!-- ##### FUNCTION nm_setting_wired_get_zvm_subchannels ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
diff --git a/docs/libnm-util/tmpl/nm-connection.sgml b/docs/libnm-util/tmpl/nm-connection.sgml
index 649e62c70..f9d52c981 100644
--- a/docs/libnm-util/tmpl/nm-connection.sgml
+++ b/docs/libnm-util/tmpl/nm-connection.sgml
@@ -9,11 +9,13 @@ NMConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -203,6 +205,18 @@ NMConnection
@Returns:
+<!-- ##### FUNCTION nm_connection_diff ##### -->
+<para>
+
+</para>
+
+@a:
+@b:
+@flags:
+@out_settings:
+@Returns:
+
+
<!-- ##### FUNCTION nm_connection_verify ##### -->
<para>
@@ -238,7 +252,7 @@ NMConnection
@connection:
@setting_name:
-@secrets:
+@setting_secrets:
@error:
@Returns:
diff --git a/docs/libnm-util/tmpl/nm-setting-8021x.sgml b/docs/libnm-util/tmpl/nm-setting-8021x.sgml
index d759e94f0..c6742d9b9 100644
--- a/docs/libnm-util/tmpl/nm-setting-8021x.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-8021x.sgml
@@ -9,11 +9,13 @@ NMSetting8021x
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-bluetooth.sgml b/docs/libnm-util/tmpl/nm-setting-bluetooth.sgml
index 255435e8f..e698b78c3 100644
--- a/docs/libnm-util/tmpl/nm-setting-bluetooth.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-bluetooth.sgml
@@ -9,11 +9,13 @@ NMSettingBluetooth
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-bridge.sgml b/docs/libnm-util/tmpl/nm-setting-bridge.sgml
deleted file mode 100644
index 15d757c3b..000000000
--- a/docs/libnm-util/tmpl/nm-setting-bridge.sgml
+++ /dev/null
@@ -1,160 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMSettingBridge
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_SETTING_NAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### ENUM NMSettingBridgeError ##### -->
-<para>
-
-</para>
-
-@NM_SETTING_BRIDGE_ERROR_UNKNOWN:
-@NM_SETTING_BRIDGE_ERROR_INVALID_PROPERTY:
-@NM_SETTING_BRIDGE_ERROR_MISSING_PROPERTY:
-
-<!-- ##### MACRO NM_TYPE_SETTING_BRIDGE_ERROR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_ERROR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION nm_setting_bridge_error_quark ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_IFNAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO NM_SETTING_BRIDGE_MEMBERS ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### STRUCT NMSettingBridge ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingBridge:ifname ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG NMSettingBridge:members ##### -->
-<para>
-
-</para>
-
-<!-- ##### FUNCTION nm_setting_bridge_get_type ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_new ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_get_ifname ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_get_num_members ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_get_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@i:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_add_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@uuid:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_remove_member ##### -->
-<para>
-
-</para>
-
-@setting:
-@i:
-
-
-<!-- ##### FUNCTION nm_setting_bridge_clear_members ##### -->
-<para>
-
-</para>
-
-@setting:
-
-
diff --git a/docs/libnm-util/tmpl/nm-setting-cdma.sgml b/docs/libnm-util/tmpl/nm-setting-cdma.sgml
index 21fa4c35a..7cd8fbc73 100644
--- a/docs/libnm-util/tmpl/nm-setting-cdma.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-cdma.sgml
@@ -9,11 +9,13 @@ NMSettingCdma
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-connection.sgml b/docs/libnm-util/tmpl/nm-setting-connection.sgml
index 58473e016..ad17800f1 100644
--- a/docs/libnm-util/tmpl/nm-setting-connection.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-connection.sgml
@@ -9,11 +9,13 @@ NMSettingConnection
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-gsm.sgml b/docs/libnm-util/tmpl/nm-setting-gsm.sgml
index fe91c0822..fd7dc209a 100644
--- a/docs/libnm-util/tmpl/nm-setting-gsm.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-gsm.sgml
@@ -9,11 +9,13 @@ NMSettingGsm
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-ip4-config.sgml b/docs/libnm-util/tmpl/nm-setting-ip4-config.sgml
index b374a2b1f..41fc9aabd 100644
--- a/docs/libnm-util/tmpl/nm-setting-ip4-config.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-ip4-config.sgml
@@ -9,11 +9,13 @@ NMSettingIP4Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-ip6-config.sgml b/docs/libnm-util/tmpl/nm-setting-ip6-config.sgml
index cb06ed92d..456b5f293 100644
--- a/docs/libnm-util/tmpl/nm-setting-ip6-config.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-ip6-config.sgml
@@ -9,11 +9,13 @@ NMSettingIP6Config
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-olpc-mesh.sgml b/docs/libnm-util/tmpl/nm-setting-olpc-mesh.sgml
index d9194bd1b..7c44977c8 100644
--- a/docs/libnm-util/tmpl/nm-setting-olpc-mesh.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-olpc-mesh.sgml
@@ -9,11 +9,13 @@ NMSettingOlpcMesh
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-ppp.sgml b/docs/libnm-util/tmpl/nm-setting-ppp.sgml
index 9c48f890c..bc80c47b6 100644
--- a/docs/libnm-util/tmpl/nm-setting-ppp.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-ppp.sgml
@@ -9,11 +9,13 @@ NMSettingPPP
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-pppoe.sgml b/docs/libnm-util/tmpl/nm-setting-pppoe.sgml
index 5bd2666c0..7bd9fd387 100644
--- a/docs/libnm-util/tmpl/nm-setting-pppoe.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-pppoe.sgml
@@ -9,11 +9,13 @@ NMSettingPPPOE
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-serial.sgml b/docs/libnm-util/tmpl/nm-setting-serial.sgml
index c5aeb6fc3..20e684128 100644
--- a/docs/libnm-util/tmpl/nm-setting-serial.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-serial.sgml
@@ -9,11 +9,13 @@ NMSettingSerial
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-vpn.sgml b/docs/libnm-util/tmpl/nm-setting-vpn.sgml
index f30f01f9a..ad33652a1 100644
--- a/docs/libnm-util/tmpl/nm-setting-vpn.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-vpn.sgml
@@ -9,11 +9,13 @@ NMSettingVPN
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-wimax.sgml b/docs/libnm-util/tmpl/nm-setting-wimax.sgml
deleted file mode 100644
index 07d54af42..000000000
--- a/docs/libnm-util/tmpl/nm-setting-wimax.sgml
+++ /dev/null
@@ -1,136 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-NMSettingWimax
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_SETTING_NAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### ENUM NMSettingWimaxError ##### -->
-<para>
-
-</para>
-
-@NM_SETTING_WIMAX_ERROR_UNKNOWN:
-@NM_SETTING_WIMAX_ERROR_INVALID_PROPERTY:
-@NM_SETTING_WIMAX_ERROR_MISSING_PROPERTY:
-
-<!-- ##### MACRO NM_TYPE_SETTING_WIMAX_ERROR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_ERROR ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION nm_setting_wimax_error_quark ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_NETWORK_NAME ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO NM_SETTING_WIMAX_MAC_ADDRESS ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### STRUCT NMSettingWimax ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ARG NMSettingWimax:mac-address ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG NMSettingWimax:network-name ##### -->
-<para>
-
-</para>
-
-<!-- ##### STRUCT NMSettingWimaxClass ##### -->
-<para>
-
-</para>
-
-@parent:
-
-<!-- ##### FUNCTION nm_setting_wimax_get_type ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_wimax_new ##### -->
-<para>
-
-</para>
-
-@void:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_wimax_get_network_name ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-
-<!-- ##### FUNCTION nm_setting_wimax_get_mac_address ##### -->
-<para>
-
-</para>
-
-@setting:
-@Returns:
-
-
diff --git a/docs/libnm-util/tmpl/nm-setting-wired.sgml b/docs/libnm-util/tmpl/nm-setting-wired.sgml
index ef5c784bd..8b5242476 100644
--- a/docs/libnm-util/tmpl/nm-setting-wired.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-wired.sgml
@@ -9,11 +9,13 @@ NMSettingWired
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-wireless-security.sgml b/docs/libnm-util/tmpl/nm-setting-wireless-security.sgml
index 7ebd57d57..eb576bb91 100644
--- a/docs/libnm-util/tmpl/nm-setting-wireless-security.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-wireless-security.sgml
@@ -9,11 +9,13 @@ NMSettingWirelessSecurity
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting-wireless.sgml b/docs/libnm-util/tmpl/nm-setting-wireless.sgml
index caf738c26..69a60b5b9 100644
--- a/docs/libnm-util/tmpl/nm-setting-wireless.sgml
+++ b/docs/libnm-util/tmpl/nm-setting-wireless.sgml
@@ -9,11 +9,13 @@ NMSettingWireless
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/libnm-util/tmpl/nm-setting.sgml b/docs/libnm-util/tmpl/nm-setting.sgml
index 989e71d1d..832a29c6c 100644
--- a/docs/libnm-util/tmpl/nm-setting.sgml
+++ b/docs/libnm-util/tmpl/nm-setting.sgml
@@ -9,11 +9,13 @@ NMSetting
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
@@ -203,6 +205,28 @@ NMSetting
@Returns:
+<!-- ##### ENUM NMSettingDiffResult ##### -->
+<para>
+
+</para>
+
+@NM_SETTING_DIFF_RESULT_UNKNOWN:
+@NM_SETTING_DIFF_RESULT_IN_A:
+@NM_SETTING_DIFF_RESULT_IN_B:
+
+<!-- ##### FUNCTION nm_setting_diff ##### -->
+<para>
+
+</para>
+
+@a:
+@b:
+@flags:
+@invert_results:
+@results:
+@Returns:
+
+
<!-- ##### FUNCTION nm_setting_enumerate_values ##### -->
<para>
diff --git a/docs/libnm-util/tmpl/nm-utils.sgml b/docs/libnm-util/tmpl/nm-utils.sgml
index b8a48acfa..15c82f33d 100644
--- a/docs/libnm-util/tmpl/nm-utils.sgml
+++ b/docs/libnm-util/tmpl/nm-utils.sgml
@@ -9,11 +9,13 @@ nm-utils
</para>
+
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
+
<!-- ##### SECTION Stability_Level ##### -->
diff --git a/docs/settings-spec.html b/docs/settings-spec.html
index 80fce7862..cfe0441b8 100644
--- a/docs/settings-spec.html
+++ b/docs/settings-spec.html
@@ -1,6 +1,6 @@
<html>
<head>
-<title>NetworkManager 0.8.2 Settings Specification</title></head>
+<title>NetworkManager 0.8.3.998 Settings Specification</title></head>
<body>
<p><h2>Setting name: '802-1x'</h2></p>
<table cellspacing=10 border=0 cellpadding=2>
@@ -157,7 +157,7 @@
<td><strong>type</strong></td>
<td>string</td>
<td></td>
-<td>Either 'dun' for Dial-Up Networking connections (not yet supported) or 'panu' for Personal Area Networking connections.</td>
+<td>Either 'dun' for Dial-Up Networking connections or 'panu' for Personal Area Networking connections.</td>
</tr>
</table><br/>
<p><h2>Setting name: 'cdma'</h2></p>
@@ -382,7 +382,7 @@
<tr align=left valign=top>
<td><strong>dhcp-send-hostname</strong></td>
<td>boolean</td>
-<td>FALSE</td>
+<td>TRUE</td>
<td>If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the 'dhcp-hostname' property is empty and this property is TRUE, the current persistent hostname of the computer is sent.</td>
</tr>
<tr align=left valign=top>
diff --git a/docs/spec.html b/docs/spec.html
index 07ac632fb..3873a98c9 100644
--- a/docs/spec.html
+++ b/docs/spec.html
@@ -112,7 +112,7 @@ General Public License for more details.</p>
<p>You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
-</div><h2>Interfaces</h2><ul><li><code><a href="#org.freedesktop.NetworkManager">org.freedesktop.NetworkManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.AccessPoint">org.freedesktop.NetworkManager.AccessPoint</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device">org.freedesktop.NetworkManager.Device</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wired">org.freedesktop.NetworkManager.Device.Wired</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wireless">org.freedesktop.NetworkManager.Device.Wireless</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Cdma">org.freedesktop.NetworkManager.Device.Cdma</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Gsm">org.freedesktop.NetworkManager.Device.Gsm</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Serial">org.freedesktop.NetworkManager.Device.Serial</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bluetooth">org.freedesktop.NetworkManager.Device.Bluetooth</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.OlpcMesh">org.freedesktop.NetworkManager.Device.OlpcMesh</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP4Config">org.freedesktop.NetworkManager.IP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP6Config">org.freedesktop.NetworkManager.IP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP4Config">org.freedesktop.NetworkManager.DHCP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP6Config">org.freedesktop.NetworkManager.DHCP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings">org.freedesktop.NetworkManagerSettings</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection">org.freedesktop.NetworkManagerSettings.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection.Secrets">org.freedesktop.NetworkManagerSettings.Connection.Secrets</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Connection">org.freedesktop.NetworkManager.VPN.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Plugin">org.freedesktop.NetworkManager.VPN.Plugin</a></code></li></ul>
+</div><h2>Interfaces</h2><ul><li><code><a href="#org.freedesktop.NetworkManager">org.freedesktop.NetworkManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.AccessPoint">org.freedesktop.NetworkManager.AccessPoint</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device">org.freedesktop.NetworkManager.Device</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wired">org.freedesktop.NetworkManager.Device.Wired</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wireless">org.freedesktop.NetworkManager.Device.Wireless</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Cdma">org.freedesktop.NetworkManager.Device.Cdma</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Gsm">org.freedesktop.NetworkManager.Device.Gsm</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Serial">org.freedesktop.NetworkManager.Device.Serial</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bluetooth">org.freedesktop.NetworkManager.Device.Bluetooth</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.OlpcMesh">org.freedesktop.NetworkManager.Device.OlpcMesh</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP4Config">org.freedesktop.NetworkManager.IP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP6Config">org.freedesktop.NetworkManager.IP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP4Config">org.freedesktop.NetworkManager.DHCP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP6Config">org.freedesktop.NetworkManager.DHCP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings">org.freedesktop.NetworkManagerSettings</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.System">org.freedesktop.NetworkManagerSettings.System</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection">org.freedesktop.NetworkManagerSettings.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection.Secrets">org.freedesktop.NetworkManagerSettings.Connection.Secrets</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Connection">org.freedesktop.NetworkManager.VPN.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Plugin">org.freedesktop.NetworkManager.VPN.Plugin</a></code></li></ul>
<h1><a name="org.freedesktop.NetworkManager" id="org.freedesktop.NetworkManager"></a>org.freedesktop.NetworkManager</h1><h2>Methods:</h2><div class="method"><h3><a name="org.freedesktop.NetworkManager.GetDevices" id="org.freedesktop.NetworkManager.GetDevices">GetDevices</a> (
) &#8594;
@@ -439,6 +439,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<code>o</code> -
<code>(read)</code></dt><dd>
Object path of the Ip6Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
+ </dd><dt><code>Dhcp6Config</code> -
+ <code>o</code> -
+ <code>(read)</code></dt><dd>
+ Object path of the Dhcp6Config object describing the DHCP options
+ returned by the DHCP server. Only valid when the device is in the
+ NM_DEVICE_STATE_ACTIVATED state.
</dd><dt><code>Managed</code> -
<code>b</code> -
<code>(read)</code></dt><dd>
@@ -822,6 +828,47 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
Object path of the new connection.
</dd></dl></div></div><p>Interface has no properties.</p>
+ <h1><a name="org.freedesktop.NetworkManagerSettings.System" id="org.freedesktop.NetworkManagerSettings.System"></a>org.freedesktop.NetworkManagerSettings.System</h1>
+ Implemented by the system settings service to provide additional settings to NetworkManager.
+ <h2>Methods:</h2><div class="method"><h3><a name="org.freedesktop.NetworkManagerSettings.System.SaveHostname" id="org.freedesktop.NetworkManagerSettings.System.SaveHostname">SaveHostname</a> (
+ s: hostname
+ ) &#8594;
+ nothing</h3><div class="docstring">
+ Save the hostname to persistent configuration.
+ </div><div><h4>Parameters</h4><dl><dt><code>hostname</code> -
+ <code>s</code></dt><dd>
+ The hostname to save to persistent configuration. If blank, the persistent hostname is cleared.
+ </dd></dl></div></div><div class="method"><h3><a name="org.freedesktop.NetworkManagerSettings.System.GetPermissions" id="org.freedesktop.NetworkManagerSettings.System.GetPermissions">GetPermissions</a> (
+
+ ) &#8594;
+ u</h3><div class="docstring">
+ Returns a bitfield indicating certain operations the caller is permitted to perform. Some of these operations may require authorization by the user.
+ </div><div><h4>Returns</h4><dl><dt><code>permissions</code> -
+ <code>u</code>
+ (<a xmlns="" href="#type-NM_SETTINGS_SYSTEM_PERMISSIONS">NM_SETTINGS_SYSTEM_PERMISSIONS</a>)
+ </dt><dd>
+ A bitfield of permitted operations. Some of these operations may require the user to authorize via password entry or other means.
+ </dd></dl></div></div><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManagerSettings.System.PropertiesChanged" id="org.freedesktop.NetworkManagerSettings.System.PropertiesChanged">PropertiesChanged</a> (
+ a{sv}: properties
+ )</h3><div class="docstring"></div><div><h4>Parameters</h4><dl><dt><code>properties</code> -
+ <code>a{sv}</code>
+ (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>)
+ </dt><dd>
+ A dictionary mapping property names to variant boxed values
+ </dd></dl></div></div><div class="signal"><h3><a name="org.freedesktop.NetworkManagerSettings.System.CheckPermissions" id="org.freedesktop.NetworkManagerSettings.System.CheckPermissions">CheckPermissions</a> (
+
+ )</h3><div class="docstring">
+ Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.
+ </div></div><h2>Properties:</h2><dl><dt><code>Hostname</code> -
+ <code>s</code> -
+ <code>(read)</code></dt><dd>
+ The machine hostname stored in persistent configuration.
+ </dd><dt><code>CanModify</code> -
+ <code>b</code> -
+ <code>(read)</code></dt><dd>
+ If true, adding and modifying connections is supported.
+ </dd></dl><h2>Sets of flags:</h2><h3 xmlns=""><a name="type-NM_SETTINGS_SYSTEM_PERMISSIONS" id="type-NM_SETTINGS_SYSTEM_PERMISSIONS">NM_SETTINGS_SYSTEM_PERMISSIONS</a></h3><dl><dt><code>NM_SETTINGS_SYSTEM_PERMISSION_NONE = 0x0</code></dt><dd>No permissions.</dd><dt><code>NM_SETTINGS_SYSTEM_PERMISSION_CONNECTION_MODIFY = 0x1</code></dt><dd>Can modify/add/delete connections.</dd><dt><code>NM_SETTINGS_SYSTEM_PERMISSION_WIFI_SHARING_PROTECTED = 0x2</code></dt><dd>Can share connections via a encrypted user-created WiFi network.</dd><dt><code>NM_SETTINGS_SYSTEM_PERMISSION_WIFI_SHARING_OPEN = 0x4</code></dt><dd>Can share connections via a open/unencrypted user-created WiFi network.</dd><dt><code>NM_SETTINGS_SYSTEM_PERMISSION_HOSTNAME_MODIFY = 0x8</code></dt><dd>Can modify the persistent system hostname.</dd></dl>
+
<h1><a name="org.freedesktop.NetworkManagerSettings.Connection" id="org.freedesktop.NetworkManagerSettings.Connection"></a>org.freedesktop.NetworkManagerSettings.Connection</h1>
Represents a single network connection configuration.
@@ -921,31 +968,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
The connection is activated.
</dd></dl>
- <h1><a name="org.freedesktop.NetworkManager.Connection.Active" id="org.freedesktop.NetworkManager.Connection.Active"></a>org.freedesktop.NetworkManager.Connection.Active</h1><p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.Connection.Active.PropertiesChanged" id="org.freedesktop.NetworkManager.Connection.Active.PropertiesChanged">PropertiesChanged</a> (
- a{sv}: properties
- )</h3><div class="docstring"></div><div><h4>Parameters</h4><dl><dt><code>properties</code> -
- <code>a{sv}</code>
- (<a xmlns="" href="#type-String_Variant_Map">String_Variant_Map</a>)
- </dt><dd>
- A dictionary mapping property names to variant boxed values
- </dd></dl></div></div><h2>Properties:</h2><dl><dt><code>ServiceName</code> -
- <code>s</code> -
- <code>(read)</code></dt><dd>The D-Bus service name providing this connection.</dd><dt><code>Connection</code> -
- <code>o</code> -
- <code>(read)</code></dt><dd>The path of the connection.</dd><dt><code>SpecificObject</code> -
- <code>o</code> -
- <code>(read)</code></dt><dd>A specific object associated with the active connection.</dd><dt><code>Devices</code> -
- <code>ao</code> -
- <code>(read)</code></dt><dd>Array of object paths representing devices which are part of this active connection.</dd><dt><code>State</code> -
- <code>u</code> -
- <code>(read)</code>
- (<a xmlns="" href="#type-NM_ACTIVE_CONNECTION_STATE">NM_ACTIVE_CONNECTION_STATE</a>)
- </dt><dd>The state of this active connection.</dd><dt><code>Default</code> -
- <code>b</code> -
- <code>(read)</code></dt><dd>Whether this active connection is the default connection, i.e. whether it currently owns the default route.</dd><dt><code>Vpn</code> -
- <code>b</code> -
- <code>(read)</code></dt><dd>Whether this active connection is also a VPN connection.</dd></dl>
-
<h1><a name="org.freedesktop.NetworkManager.VPN.Connection" id="org.freedesktop.NetworkManager.VPN.Connection"></a>org.freedesktop.NetworkManager.VPN.Connection</h1>
Represents an active connection to a Virtual Private Network.
<p>Interface has no methods.</p><h2>Signals:</h2><div class="signal"><h3><a name="org.freedesktop.NetworkManager.VPN.Connection.PropertiesChanged" id="org.freedesktop.NetworkManager.VPN.Connection.PropertiesChanged">PropertiesChanged</a> (
@@ -1011,6 +1033,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
Starting the service starting the service providing the VPN connection failed.
</dd><dt><code>NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS = 9</code></dt><dd>
Necessary secrets for the VPN connection were not provided.
+ </dd><dt><code>NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED = 10</code></dt><dd>
+ Authentication to the VPN server failed.
+ </dd><dt><code>NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED = 11</code></dt><dd>
+ The connection was deleted from settings.
</dd></dl>
<h1><a name="org.freedesktop.NetworkManager.VPN.Plugin" id="org.freedesktop.NetworkManager.VPN.Plugin"></a>org.freedesktop.NetworkManager.VPN.Plugin</h1>
@@ -1160,7 +1186,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<h2><a name="org.freedesktop.NetworkManager.VPN.Error.BadArguments" id="org.freedesktop.NetworkManager.VPN.Error.BadArguments"></a>org.freedesktop.NetworkManager.VPN.Error.BadArguments</h2>Invalid arguments were passed with the request. FIXME: too general.
<h2><a name="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed" id="org.freedesktop.NetworkManager.VPN.Error.LaunchFailed"></a>org.freedesktop.NetworkManager.VPN.Error.LaunchFailed</h2>A binary providing the service failed to launch.
<h2><a name="org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid" id="org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid"></a>org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid</h2>The request could not be processed because the VPN connection settings were invalid.
-<h1>Index</h1><h2>Index of interfaces</h2><ul><li><code><a href="#org.freedesktop.NetworkManager">org.freedesktop.NetworkManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.AccessPoint">org.freedesktop.NetworkManager.AccessPoint</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device">org.freedesktop.NetworkManager.Device</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wired">org.freedesktop.NetworkManager.Device.Wired</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wireless">org.freedesktop.NetworkManager.Device.Wireless</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Cdma">org.freedesktop.NetworkManager.Device.Cdma</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Gsm">org.freedesktop.NetworkManager.Device.Gsm</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Serial">org.freedesktop.NetworkManager.Device.Serial</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bluetooth">org.freedesktop.NetworkManager.Device.Bluetooth</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.OlpcMesh">org.freedesktop.NetworkManager.Device.OlpcMesh</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP4Config">org.freedesktop.NetworkManager.IP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP6Config">org.freedesktop.NetworkManager.IP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP4Config">org.freedesktop.NetworkManager.DHCP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP6Config">org.freedesktop.NetworkManager.DHCP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings">org.freedesktop.NetworkManagerSettings</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection">org.freedesktop.NetworkManagerSettings.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection.Secrets">org.freedesktop.NetworkManagerSettings.Connection.Secrets</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Connection">org.freedesktop.NetworkManager.VPN.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Plugin">org.freedesktop.NetworkManager.VPN.Plugin</a></code></li></ul><h2>Index of types</h2><ul><li><code><a href="#type-NM_802_11_AP_FLAGS">NM_802_11_AP_FLAGS</a></code>
+<h1>Index</h1><h2>Index of interfaces</h2><ul><li><code><a href="#org.freedesktop.NetworkManager">org.freedesktop.NetworkManager</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.AccessPoint">org.freedesktop.NetworkManager.AccessPoint</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device">org.freedesktop.NetworkManager.Device</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wired">org.freedesktop.NetworkManager.Device.Wired</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Wireless">org.freedesktop.NetworkManager.Device.Wireless</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Cdma">org.freedesktop.NetworkManager.Device.Cdma</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Gsm">org.freedesktop.NetworkManager.Device.Gsm</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Serial">org.freedesktop.NetworkManager.Device.Serial</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.Bluetooth">org.freedesktop.NetworkManager.Device.Bluetooth</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Device.OlpcMesh">org.freedesktop.NetworkManager.Device.OlpcMesh</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP4Config">org.freedesktop.NetworkManager.IP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.IP6Config">org.freedesktop.NetworkManager.IP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP4Config">org.freedesktop.NetworkManager.DHCP4Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.DHCP6Config">org.freedesktop.NetworkManager.DHCP6Config</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings">org.freedesktop.NetworkManagerSettings</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.System">org.freedesktop.NetworkManagerSettings.System</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection">org.freedesktop.NetworkManagerSettings.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManagerSettings.Connection.Secrets">org.freedesktop.NetworkManagerSettings.Connection.Secrets</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.Connection.Active">org.freedesktop.NetworkManager.Connection.Active</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Connection">org.freedesktop.NetworkManager.VPN.Connection</a></code></li><li><code><a href="#org.freedesktop.NetworkManager.VPN.Plugin">org.freedesktop.NetworkManager.VPN.Plugin</a></code></li></ul><h2>Index of types</h2><ul><li><code><a href="#type-NM_802_11_AP_FLAGS">NM_802_11_AP_FLAGS</a></code>
- u</li><li><code><a href="#type-NM_802_11_AP_SEC">NM_802_11_AP_SEC</a></code>
- u</li><li><code><a href="#type-NM_802_11_DEVICE_CAP">NM_802_11_DEVICE_CAP</a></code>
- u</li><li><code><a href="#type-NM_802_11_MODE">NM_802_11_MODE</a></code>
@@ -1170,6 +1196,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
- u</li><li><code><a href="#type-NM_DEVICE_STATE">NM_DEVICE_STATE</a></code>
- u</li><li><code><a href="#type-NM_DEVICE_STATE_REASON">NM_DEVICE_STATE_REASON</a></code>
- u</li><li><code><a href="#type-NM_DEVICE_TYPE">NM_DEVICE_TYPE</a></code>
+ - u</li><li><code><a href="#type-NM_SETTINGS_SYSTEM_PERMISSIONS">NM_SETTINGS_SYSTEM_PERMISSIONS</a></code>
- u</li><li><code><a href="#type-NM_STATE">NM_STATE</a></code>
- u</li><li><code><a href="#type-NM_VPN_CONNECTION_STATE">NM_VPN_CONNECTION_STATE</a></code>
- u</li><li><code><a href="#type-NM_VPN_CONNECTION_STATE_REASON">NM_VPN_CONNECTION_STATE_REASON</a></code>
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 494a268d4..ce7a12e56 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -189,6 +189,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -203,6 +207,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/examples/python/Makefile.am b/examples/python/Makefile.am
index dec8b571f..5650ed833 100644
--- a/examples/python/Makefile.am
+++ b/examples/python/Makefile.am
@@ -1,6 +1,7 @@
EXTRA_DIST = \
nm-state.py \
add-system-connection.py \
+ add-system-wifi-connection.py
vpn.py \
list-connections.py \
show-bssids.py \
diff --git a/examples/python/Makefile.in b/examples/python/Makefile.in
index 49b50c0c3..e6fdf88f6 100644
--- a/examples/python/Makefile.in
+++ b/examples/python/Makefile.in
@@ -149,6 +149,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -163,6 +167,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -241,10 +246,7 @@ top_srcdir = @top_srcdir@
EXTRA_DIST = \
nm-state.py \
add-system-connection.py \
- vpn.py \
- list-connections.py \
- show-bssids.py \
- disconnect-device.py
+ add-system-wifi-connection.py
all: all-am
@@ -430,6 +432,10 @@ uninstall-am:
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+ vpn.py \
+ list-connections.py \
+ show-bssids.py \
+ disconnect-device.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/examples/python/add-system-wifi-connection.py b/examples/python/add-system-wifi-connection.py
new file mode 100755
index 000000000..f12723d15
--- /dev/null
+++ b/examples/python/add-system-wifi-connection.py
@@ -0,0 +1,64 @@
+#!/bin/env python
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Copyright (C) 2010 Red Hat, Inc.
+#
+
+import dbus
+
+def path_to_value(path):
+ return dbus.ByteArray("file://" + path + "\0")
+
+s_con = dbus.Dictionary({
+ 'type': '802-11-wireless',
+ 'uuid': '7371bb78-c1f7-42a3-a9db-5b9566e8ca07',
+ 'id': 'My Wifi'})
+
+s_wifi = dbus.Dictionary({
+ 'ssid': dbus.ByteArray("homewifi"),
+ 'security': '802-11-wireless-security'})
+
+s_wsec = dbus.Dictionary({'key-mgmt': 'wpa-eap'})
+
+s_8021x = dbus.Dictionary({
+ 'eap': ['tls'],
+ 'identity': 'Bill Smith',
+ 'client-cert': path_to_value("/some/place/client.pem"),
+ 'ca-cert': path_to_value("/some/place/ca-cert.pem"),
+ 'private-key': path_to_value("/some/place/privkey.pem"),
+ 'private-key-password': "12345testing"})
+
+s_ip4 = dbus.Dictionary({'method': 'auto'})
+s_ip6 = dbus.Dictionary({'method': 'ignore'})
+
+con = dbus.Dictionary({
+ 'connection': s_con,
+ '802-11-wireless': s_wifi,
+ '802-11-wireless-security': s_wsec,
+ '802-1x': s_8021x,
+ 'ipv4': s_ip4,
+ 'ipv6': s_ip6
+ })
+
+
+bus = dbus.SystemBus()
+
+print con
+proxy = bus.get_object("org.freedesktop.NetworkManagerSystemSettings", "/org/freedesktop/NetworkManagerSettings")
+settings = dbus.Interface(proxy, "org.freedesktop.NetworkManagerSettings")
+
+settings.AddConnection(con)
+
diff --git a/examples/python/disconnect-device.py b/examples/python/disconnect-device.py
deleted file mode 100755
index f88549514..000000000
--- a/examples/python/disconnect-device.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/env python
-# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; 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.
-#
-# Copyright (C) 2010 Red Hat, Inc.
-#
-
-import dbus, sys
-
-# This example takes a device interface name as a parameter and tells
-# NetworkManager to disconnect that device, closing down any network
-# connection it may have
-
-if len(sys.argv) != 2:
- raise Exception("Usage: %s <interface>" % sys.argv[0])
-
-bus = dbus.SystemBus()
-
-# Get a proxy for the base NetworkManager object
-proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager")
-manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager")
-
-dpath = None
-
-# Find the device the user wants to disconnect
-devices = manager.GetDevices()
-for d in devices:
- dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
- prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
- iface = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")
- if iface == sys.argv[1]:
- dpath = d
- break
-
-if not dpath or not len(dpath):
- raise Exception("NetworkManager knows nothing about %s" % sys.argv[1])
-
-dev_proxy = bus.get_object("org.freedesktop.NetworkManager", dpath)
-dev_iface = dbus.Interface(dev_proxy, "org.freedesktop.NetworkManager.Device")
-prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
-
-# Make sure the device is connected before we try to disconnect it
-state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")
-if state <= 3:
- raise Exception("Device %s isn't connected" % sys.argv[1])
-
-# Tell NM to disconnect it
-dev_iface.Disconnect()
-
diff --git a/examples/python/list-connections.py b/examples/python/list-connections.py
deleted file mode 100644
index ad8d9047c..000000000
--- a/examples/python/list-connections.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/env python
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright (C) 2010 Red Hat, Inc.
-#
-
-import dbus
-
-# This example asks both the system settings service and the user settings
-# service for all configured connections. It also asks for secrets, demonstrating
-# the mechanisms each settings service uses to prevent unauthorized access to
-# a user's network passwords
-
-bus = dbus.SystemBus()
-
-def merge_secrets(proxy, config, setting_name):
- try:
- # returns a dict of dicts mapping name::setting, where setting is a dict
- # mapping key::value. Each member of the 'setting' dict is a secret
- secrets = proxy.GetSecrets(setting_name, [], False)
-
- # Copy the secrets into our connection config
- for setting in secrets:
- for key in secrets[setting]:
- config[setting_name][key] = setting[key]
- except Exception, e:
- pass
-
-def dict_to_string(d, indent):
- # Try to trivially translate a dictionary's elements into nice string
- # formatting.
- dstr = ""
- for key in d:
- val = d[key]
- str_val = ""
- add_string = True
- if type(val) == type(dbus.Array([])):
- for elt in val:
- if type(elt) == type(dbus.Byte(1)):
- str_val += "%s " % int(elt)
- elif type(elt) == type(dbus.String("")):
- str_val += "%s" % elt
- elif type(val) == type(dbus.Dictionary({})):
- dstr += dict_to_string(val, indent + " ")
- add_string = False
- else:
- str_val = val
- if add_string:
- dstr += "%s%s: %s\n" % (indent, key, str_val)
- return dstr
-
-def connection_to_string(config):
- # dump a connection configuration to a the console
- for setting_name in config:
- print " Setting: %s" % setting_name
- print dict_to_string(config[setting_name], " ")
- print ""
-
-
-def print_one_services_connections(service_name, desc):
- # Ask the settings service for the list of connections it provides
- proxy = bus.get_object(service_name, "/org/freedesktop/NetworkManagerSettings")
- settings = dbus.Interface(proxy, "org.freedesktop.NetworkManagerSettings")
- connection_paths = settings.ListConnections()
-
- print "%s connections --------------------------------------------\n" % desc
-
- # List each connection's name, UUID, and type
- for path in connection_paths:
- con_proxy = bus.get_object(service_name, path)
- connection = dbus.Interface(con_proxy, "org.freedesktop.NetworkManagerSettings.Connection")
- config = connection.GetSettings()
-
- # Now get secrets too; we grab the secrets for each type of connection
- # (since there isn't a "get all secrets" call because most of the time
- # you only need 'wifi' secrets or '802.1x' secrets, not everything) and
- # merge that into the configuration data
- connection_secrets = dbus.Interface(con_proxy, "org.freedesktop.NetworkManagerSettings.Connection.Secrets")
- merge_secrets(connection_secrets, config, '802-11-wireless')
- merge_secrets(connection_secrets, config, '802-11-wireless-security')
- merge_secrets(connection_secrets, config, '802-1x')
- merge_secrets(connection_secrets, config, 'gsm')
- merge_secrets(connection_secrets, config, 'cdma')
- merge_secrets(connection_secrets, config, 'ppp')
-
- # Get the details of the 'connection' setting
- s_con = config['connection']
- print "name: %s" % s_con['id']
- print " uuid: %s" % s_con['uuid']
- print " type: %s" % s_con['type']
- print " ----------------------------"
- connection_to_string(config)
-
- print ""
-
-# Print out connection information for all connections
-print_one_services_connections("org.freedesktop.NetworkManagerSystemSettings", "System")
-print_one_services_connections("org.freedesktop.NetworkManagerUserSettings", "User")
-
diff --git a/examples/python/nm-state.py b/examples/python/nm-state.py
index fddd2da62..2bbdd2db4 100644
--- a/examples/python/nm-state.py
+++ b/examples/python/nm-state.py
@@ -47,13 +47,13 @@ active = manager_prop_iface.Get("org.freedesktop.NetworkManager", "ActiveConnect
for a in active:
ac_proxy = bus.get_object("org.freedesktop.NetworkManager", a)
prop_iface = dbus.Interface(ac_proxy, "org.freedesktop.DBus.Properties")
- state = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "State")
+ state = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "State")
# Connections in NM are a collection of settings that describe everything
# needed to connect to a specific network. Lets get those details so we
# can find the user-readable name of the connection.
- con_path = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "Connection")
- con_service = prop_iface.Get("org.freedesktop.NetworkManager.ActiveConnection", "ServiceName")
+ con_path = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "Connection")
+ con_service = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "ServiceName")
# ask the provider of the connection for its details
service_proxy = bus.get_object(con_service, con_path)
diff --git a/examples/python/show-bssids.py b/examples/python/show-bssids.py
deleted file mode 100644
index 5d8778c73..000000000
--- a/examples/python/show-bssids.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/env python
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright (C) 2010 Red Hat, Inc.
-#
-
-
-# This example prints out all the AP BSSIDs that all WiFi devices on the
-# machine can see. Useful for location-based services like Skyhook that
-# can geolocate you based on the APs you can see.
-
-import dbus
-
-bus = dbus.SystemBus()
-
-# Get a proxy for the base NetworkManager object
-proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager")
-manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager")
-
-all_aps = []
-
-print "Associated APs:"
-
-# Get all network devices
-devices = manager.GetDevices()
-for d in devices:
- dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
- prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
-
- # Make sure the device is enabled before we try to use it
- state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")
- if state <= 2:
- continue
-
- # Get device's type; we only want wifi devices
- iface = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")
- dtype = prop_iface.Get("org.freedesktop.NetworkManager.Device", "DeviceType")
- if dtype == 2: # WiFi
- # Get a proxy for the wifi interface
- wifi_iface = dbus.Interface(dev_proxy, "org.freedesktop.NetworkManager.Device.Wireless")
- wifi_prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
-
- # Get the associated AP's object path
- connected_path = wifi_prop_iface.Get("org.freedesktop.NetworkManager.Device.Wireless", "ActiveAccessPoint")
-
- # Get all APs the card can see
- aps = wifi_iface.GetAccessPoints()
- for path in aps:
- ap_proxy = bus.get_object("org.freedesktop.NetworkManager", path)
- ap_prop_iface = dbus.Interface(ap_proxy, "org.freedesktop.DBus.Properties")
- bssid = ap_prop_iface.Get("org.freedesktop.NetworkManager.AccessPoint", "HwAddress")
-
- # Cache the BSSID
- if not bssid in all_aps:
- all_aps.append(bssid)
-
- # Print the current AP's BSSID
- if path == connected_path:
- print "%s (%s)" % (bssid, iface)
-
-# and print out all APs the wifi devices can see
-print"\nFound APs:"
-for bssid in all_aps:
- print bssid
-
diff --git a/examples/python/vpn.py b/examples/python/vpn.py
deleted file mode 100644
index 4b4057fc2..000000000
--- a/examples/python/vpn.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/python
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright (C) 2009 Novell, Inc.
-# Copyright (C) 2009 Red Hat, Inc.
-#
-
-# Run this script without any arguments to list the available connection uuids.
-
-# The uuid of the connection to activate
-CONNECTION_UUID="ac6dc9b2-85ef-4311-83d8-add5d7db3f59"
-
-# UID to use. Note that NM only allows the owner of the connection to activate it.
-#UID=1000
-UID=0
-
-import sys
-import os
-import dbus
-from dbus.mainloop.glib import DBusGMainLoop
-import gobject
-
-DBusGMainLoop(set_as_default=True)
-
-def get_connections():
- bus = dbus.SystemBus()
- proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', '/org/freedesktop/NetworkManagerSettings')
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings')
- return iface.ListConnections()
-
-
-def get_connection_by_uuid(uuid):
- bus = dbus.SystemBus()
- for c in get_connections():
- proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', c)
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
- settings = iface.GetSettings()
- if settings['connection']['uuid'] == uuid:
- return c
-
- return None
-
-
-def list_uuids():
- bus = dbus.SystemBus()
- for c in get_connections():
- proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', c)
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
- settings = iface.GetSettings()
- conn = settings['connection']
- print "%s - %s (%s)" % (conn['uuid'], conn['id'], conn['type'])
-
-
-def get_active_connection_path(uuid):
- bus = dbus.SystemBus()
- proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
- active_connections = iface.Get('org.freedesktop.NetworkManager', 'ActiveConnections')
- all_connections = get_connections()
-
- for a in active_connections:
- proxy = bus.get_object('org.freedesktop.NetworkManager', a)
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
- path = iface.Get('org.freedesktop.NetworkManager.Connection.Active', 'Connection')
-
- proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', path)
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
- settings = iface.GetSettings()
-
- if settings['connection']['uuid'] == uuid:
- return a
-
- return None
-
-
-def get_wifi_device_path():
- bus = dbus.SystemBus()
- proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager')
- devices = iface.GetDevices()
- for d in devices:
- proxy = bus.get_object('org.freedesktop.NetworkManager', d)
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
- devtype = iface.Get('org.freedesktop.NetworkManager.Device', 'DeviceType')
- if devtype == 2:
- return d
- return None
-
-def activate_connection(connection_path, device_path):
-
- def reply_handler(opath):
- print "Success: device activating"
- sys.exit(0)
-
- def error_handler(*args):
- print "Error activating device: %s" % args
- sys.exit(1)
-
- bus = dbus.SystemBus()
- proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
- iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager')
- iface.ActivateConnection('org.freedesktop.NetworkManagerUserSettings',
- connection_path,
- device_path,
- "/",
- reply_handler=reply_handler,
- error_handler=error_handler)
-
-
-# Change the UID first if required
-if UID != 0:
- os.setuid(UID)
-
-# Are we configured?
-if not len(CONNECTION_UUID):
- print "missing connection UUID"
- sys.exit(0)
-
-connection_path = get_connection_by_uuid(CONNECTION_UUID)
-if not connection_path:
- # Configured VPN connection is not known to NM, check CONNECTION_UUID.
- print "couldn't find the connection"
- sys.exit(1)
-
-device_path = get_wifi_device_path()
-if not device_path:
- print "no wifi device found"
- sys.exit(1)
-
-# Is it already activated?
-if get_active_connection_path(CONNECTION_UUID):
- print "already connected"
- sys.exit(0)
-
-print "Activating connection..."
-activate_connection(connection_path, device_path)
-loop = gobject.MainLoop()
-loop.run()
-
diff --git a/include/Makefile.am b/include/Makefile.am
index 54c4d1dc8..b2f24ae81 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -4,11 +4,13 @@ EXTRA_DIST = \
wireless-helper.h \
nm-dbus-glib-types.h \
nm-glib-compat.h \
- nm-test-helpers.h
+ nm-test-helpers.h \
+ nm-version.h.in
NetworkManagerincludedir=$(includedir)/NetworkManager
NetworkManagerinclude_HEADERS = \
NetworkManager.h \
- NetworkManagerVPN.h
+ NetworkManagerVPN.h \
+ nm-version.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 198944c7f..df62f1a6b 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -36,7 +36,7 @@ build_triplet = @build@
host_triplet = @host@
subdir = include
DIST_COMMON = $(NetworkManagerinclude_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in
+ $(srcdir)/Makefile.in $(srcdir)/nm-version.h.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
@@ -48,7 +48,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 = nm-version.h
CONFIG_CLEAN_VPATH_FILES =
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
@@ -176,6 +176,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -190,6 +194,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -271,12 +276,14 @@ EXTRA_DIST = \
wireless-helper.h \
nm-dbus-glib-types.h \
nm-glib-compat.h \
- nm-test-helpers.h
+ nm-test-helpers.h \
+ nm-version.h.in
NetworkManagerincludedir = $(includedir)/NetworkManager
NetworkManagerinclude_HEADERS = \
NetworkManager.h \
- NetworkManagerVPN.h
+ NetworkManagerVPN.h \
+ nm-version.h
all: all-am
@@ -311,6 +318,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):
+nm-version.h: $(top_builddir)/config.status $(srcdir)/nm-version.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
mostlyclean-libtool:
-rm -f *.lo
diff --git a/include/NetworkManager.h b/include/NetworkManager.h
index f58b84bcd..30444e66b 100644
--- a/include/NetworkManager.h
+++ b/include/NetworkManager.h
@@ -22,6 +22,8 @@
#ifndef NETWORK_MANAGER_H
#define NETWORK_MANAGER_H
+#include "nm-version.h"
+
/*
* dbus services details
*/
diff --git a/include/nm-version.h b/include/nm-version.h
new file mode 100644
index 000000000..3abab46e0
--- /dev/null
+++ b/include/nm-version.h
@@ -0,0 +1,63 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ */
+
+#ifndef NM_VERSION_H
+#define NM_VERSION_H
+
+/**
+ * NM_MAJOR_VERSION:
+ *
+ * Evaluates to the major version number of NetworkManager which this source
+ * is compiled against.
+ */
+#define NM_MAJOR_VERSION (0)
+
+/**
+ * NM_MINOR_VERSION:
+ *
+ * Evaluates to the minor version number of NetworkManager which this source
+ * is compiled against.
+ */
+#define NM_MINOR_VERSION (8)
+
+/**
+ * NM_MICRO_VERSION:
+ *
+ * Evaluates to the micro version number of NetworkManager which this source
+ * compiled against.
+ */
+#define NM_MICRO_VERSION (3)
+
+/**
+ * NM_CHECK_VERSION:
+ * @major: major version (e.g. 1 for version 1.2.5)
+ * @minor: minor version (e.g. 2 for version 1.2.5)
+ * @micro: micro version (e.g. 5 for version 1.2.5)
+ *
+ * Returns %TRUE if the version of the NetworkManager header files
+ * is the same as or newer than the passed-in version.
+ */
+#define NM_CHECK_VERSION(major,minor,micro) \
+ (NM_MAJOR_VERSION > (major) || \
+ (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION > (minor)) || \
+ (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION == (minor) && NM_MICRO_VERSION >= (micro)))
+
+#endif /* NM_VERSION_H */
+
diff --git a/include/nm-version.h.in b/include/nm-version.h.in
new file mode 100644
index 000000000..ee2e1080e
--- /dev/null
+++ b/include/nm-version.h.in
@@ -0,0 +1,63 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2011 Red Hat, Inc.
+ */
+
+#ifndef NM_VERSION_H
+#define NM_VERSION_H
+
+/**
+ * NM_MAJOR_VERSION:
+ *
+ * Evaluates to the major version number of NetworkManager which this source
+ * is compiled against.
+ */
+#define NM_MAJOR_VERSION (@NM_MAJOR_VERSION@)
+
+/**
+ * NM_MINOR_VERSION:
+ *
+ * Evaluates to the minor version number of NetworkManager which this source
+ * is compiled against.
+ */
+#define NM_MINOR_VERSION (@NM_MINOR_VERSION@)
+
+/**
+ * NM_MICRO_VERSION:
+ *
+ * Evaluates to the micro version number of NetworkManager which this source
+ * compiled against.
+ */
+#define NM_MICRO_VERSION (@NM_MICRO_VERSION@)
+
+/**
+ * NM_CHECK_VERSION:
+ * @major: major version (e.g. 1 for version 1.2.5)
+ * @minor: minor version (e.g. 2 for version 1.2.5)
+ * @micro: micro version (e.g. 5 for version 1.2.5)
+ *
+ * Returns %TRUE if the version of the NetworkManager header files
+ * is the same as or newer than the passed-in version.
+ */
+#define NM_CHECK_VERSION(major,minor,micro) \
+ (NM_MAJOR_VERSION > (major) || \
+ (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION > (minor)) || \
+ (NM_MAJOR_VERSION == (major) && NM_MINOR_VERSION == (minor) && NM_MICRO_VERSION >= (micro)))
+
+#endif /* NM_VERSION_H */
+
diff --git a/initscript/Arch/Makefile.in b/initscript/Arch/Makefile.in
index 843d7fa6b..f2561855c 100644
--- a/initscript/Arch/Makefile.in
+++ b/initscript/Arch/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Arch/networkmanager b/initscript/Arch/networkmanager
index f16876811..60874f22d 100644
--- a/initscript/Arch/networkmanager
+++ b/initscript/Arch/networkmanager
@@ -17,6 +17,7 @@ PID=`pidof -o %PPID $NETWORKMANAGER_BIN`
case "$1" in
start)
stat_busy "Starting NetworkManager"
+ [ ! -d /var/run/NetworkManager ] && install -d /var/run/NetworkManager
if [ -z "$PID" ]; then
$NETWORKMANAGER_BIN
fi
diff --git a/initscript/Arch/networkmanager.in b/initscript/Arch/networkmanager.in
index c3b2bfe52..4846427a4 100644
--- a/initscript/Arch/networkmanager.in
+++ b/initscript/Arch/networkmanager.in
@@ -17,6 +17,7 @@ PID=`pidof -o %PPID $NETWORKMANAGER_BIN`
case "$1" in
start)
stat_busy "Starting NetworkManager"
+ [ ! -d /var/run/NetworkManager ] && install -d /var/run/NetworkManager
if [ -z "$PID" ]; then
$NETWORKMANAGER_BIN
fi
diff --git a/initscript/Debian/Makefile.in b/initscript/Debian/Makefile.in
index b5ba6976c..12b99d352 100644
--- a/initscript/Debian/Makefile.in
+++ b/initscript/Debian/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Gentoo/Makefile.in b/initscript/Gentoo/Makefile.in
index 3166046f4..e87643afc 100644
--- a/initscript/Gentoo/Makefile.in
+++ b/initscript/Gentoo/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Makefile.in b/initscript/Makefile.in
index ac8828801..84b2370e1 100644
--- a/initscript/Makefile.in
+++ b/initscript/Makefile.in
@@ -199,6 +199,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -213,6 +217,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Mandriva/Makefile.in b/initscript/Mandriva/Makefile.in
index 44957d918..eb8827817 100644
--- a/initscript/Mandriva/Makefile.in
+++ b/initscript/Mandriva/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/RedHat/Makefile.in b/initscript/RedHat/Makefile.in
index d550dddd8..9e3bc4993 100644
--- a/initscript/RedHat/Makefile.in
+++ b/initscript/RedHat/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/SUSE/Makefile.in b/initscript/SUSE/Makefile.in
index f2cd58b7f..8e2c45de2 100644
--- a/initscript/SUSE/Makefile.in
+++ b/initscript/SUSE/Makefile.in
@@ -150,6 +150,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -164,6 +168,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Slackware/Makefile.in b/initscript/Slackware/Makefile.in
index 1fd1196f9..58f85f476 100644
--- a/initscript/Slackware/Makefile.in
+++ b/initscript/Slackware/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/Slackware/rc.networkmanager b/initscript/Slackware/rc.networkmanager
index 87df6ff11..5ab01ea14 100644
--- a/initscript/Slackware/rc.networkmanager
+++ b/initscript/Slackware/rc.networkmanager
@@ -27,11 +27,6 @@ nm_start()
return
fi
- if [ "`pgrep hald`" = "" ]; then
- echo "HAL must be running to start NetworkManager"
- return
- fi
-
# Just in case the pidfile is still there, we may need to nuke it.
if [ -e "$PIDFILE" ]; then
rm -f $PIDFILE
@@ -67,6 +62,7 @@ nm_stop()
nm_restart()
{
nm_stop
+ sleep 2
nm_start
}
diff --git a/initscript/Slackware/rc.networkmanager.in b/initscript/Slackware/rc.networkmanager.in
index 048903847..6eed87e19 100644
--- a/initscript/Slackware/rc.networkmanager.in
+++ b/initscript/Slackware/rc.networkmanager.in
@@ -27,11 +27,6 @@ nm_start()
return
fi
- if [ "`pgrep hald`" = "" ]; then
- echo "HAL must be running to start NetworkManager"
- return
- fi
-
# Just in case the pidfile is still there, we may need to nuke it.
if [ -e "$PIDFILE" ]; then
rm -f $PIDFILE
@@ -67,6 +62,7 @@ nm_stop()
nm_restart()
{
nm_stop
+ sleep 2
nm_start
}
diff --git a/initscript/linexa/Makefile.in b/initscript/linexa/Makefile.in
index c06e2281a..49f99dae9 100644
--- a/initscript/linexa/Makefile.in
+++ b/initscript/linexa/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/initscript/paldo/Makefile.in b/initscript/paldo/Makefile.in
index bf3a3ae23..4f8570cef 100644
--- a/initscript/paldo/Makefile.in
+++ b/initscript/paldo/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/introspection/Makefile.in b/introspection/Makefile.in
index 3644aad66..0a37f352d 100644
--- a/introspection/Makefile.in
+++ b/introspection/Makefile.in
@@ -149,6 +149,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -163,6 +167,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/introspection/all.xml b/introspection/all.xml
index d6b2f2367..1c32f3f3f 100644
--- a/introspection/all.xml
+++ b/introspection/all.xml
@@ -40,6 +40,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="nm-dhcp4-config.xml"/>
<xi:include href="nm-dhcp6-config.xml"/>
<xi:include href="nm-settings.xml"/>
+<xi:include href="nm-settings-system.xml"/>
<xi:include href="nm-exported-connection.xml"/>
<xi:include href="nm-active-connection.xml"/>
<xi:include href="nm-vpn-connection.xml"/>
diff --git a/introspection/nm-device.xml b/introspection/nm-device.xml
index 016c121e7..eaebdf351 100644
--- a/introspection/nm-device.xml
+++ b/introspection/nm-device.xml
@@ -55,6 +55,13 @@
Object path of the Ip6Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
</tp:docstring>
</property>
+ <property name="Dhcp6Config" type="o" access="read">
+ <tp:docstring>
+ Object path of the Dhcp6Config object describing the DHCP options
+ returned by the DHCP server. Only valid when the device is in the
+ NM_DEVICE_STATE_ACTIVATED state.
+ </tp:docstring>
+ </property>
<property name="Managed" type="b" access="read">
<tp:docstring>
Whether or not this device is managed by NetworkManager.
diff --git a/introspection/nm-vpn-connection.xml b/introspection/nm-vpn-connection.xml
index 3a47cdf1b..65b917854 100644
--- a/introspection/nm-vpn-connection.xml
+++ b/introspection/nm-vpn-connection.xml
@@ -1,38 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
- <interface name="org.freedesktop.NetworkManager.Connection.Active">
- <property name="ServiceName" type="s" access="read">
- <tp:docstring>The D-Bus service name providing this connection.</tp:docstring>
- </property>
- <property name="Connection" type="o" access="read">
- <tp:docstring>The path of the connection.</tp:docstring>
- </property>
- <property name="SpecificObject" type="o" access="read">
- <tp:docstring>A specific object associated with the active connection.</tp:docstring>
- </property>
- <property name="Devices" type="ao" access="read">
- <tp:docstring>Array of object paths representing devices which are part of this active connection.</tp:docstring>
- </property>
- <property name="State" type="u" access="read" tp:type="NM_ACTIVE_CONNECTION_STATE">
- <tp:docstring>The state of this active connection.</tp:docstring>
- </property>
- <property name="Default" type="b" access="read">
- <tp:docstring>Whether this active connection is the default connection, i.e. whether it currently owns the default route.</tp:docstring>
- </property>
- <property name="Vpn" type="b" access="read">
- <tp:docstring>Whether this active connection is also a VPN connection.</tp:docstring>
- </property>
-
- <signal name="PropertiesChanged">
- <arg name="properties" type="a{sv}" tp:type="String_Variant_Map">
- <tp:docstring>
- A dictionary mapping property names to variant boxed values
- </tp:docstring>
- </arg>
- </signal>
- </interface>
-
<interface name="org.freedesktop.NetworkManager.VPN.Connection">
<tp:docstring>
Represents an active connection to a Virtual Private Network.
@@ -162,6 +130,16 @@
Necessary secrets for the VPN connection were not provided.
</tp:docstring>
</tp:enumvalue>
+ <tp:enumvalue suffix="LOGIN_FAILED" value="10">
+ <tp:docstring>
+ Authentication to the VPN server failed.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="CONNECTION_REMOVED" value="11">
+ <tp:docstring>
+ The connection was deleted from settings.
+ </tp:docstring>
+ </tp:enumvalue>
</tp:enum>
</interface>
</node>
diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am
index ec21a328e..0c5fa137f 100644
--- a/libnm-glib/Makefile.am
+++ b/libnm-glib/Makefile.am
@@ -52,7 +52,6 @@ lib_LTLIBRARIES = libnm-glib.la libnm-glib-vpn.la
libnm_glib_la_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS) \
- $(GCONF_CFLAGS) \
$(GUDEV_CFLAGS)
libnmincludedir = $(includedir)/libnm-glib
@@ -128,11 +127,10 @@ libnm_glib_la_LIBADD = \
$(builddir)/libdeprecated-nm-glib.la \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(GCONF_LIBS) \
$(GUDEV_LIBS)
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \
- -version-info "6:2:4"
+ -version-info "6:3:4"
noinst_PROGRAMS = libnm-glib-test
diff --git a/libnm-glib/Makefile.in b/libnm-glib/Makefile.in
index 1c8af1a2f..822974dc4 100644
--- a/libnm-glib/Makefile.in
+++ b/libnm-glib/Makefile.in
@@ -269,6 +269,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -283,6 +287,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -410,7 +415,6 @@ lib_LTLIBRARIES = libnm-glib.la libnm-glib-vpn.la
libnm_glib_la_CFLAGS = \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS) \
- $(GCONF_CFLAGS) \
$(GUDEV_CFLAGS)
libnmincludedir = $(includedir)/libnm-glib
@@ -485,11 +489,10 @@ libnm_glib_la_LIBADD = \
$(builddir)/libdeprecated-nm-glib.la \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(GCONF_LIBS) \
$(GUDEV_LIBS)
libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \
- -version-info "6:2:4"
+ -version-info "6:3:4"
libnm_glib_test_SOURCES = libnm-glib-test.c
libnm_glib_test_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS)
diff --git a/libnm-glib/libnm-glib-test.c b/libnm-glib/libnm-glib-test.c
index 3ac0a24cd..6284fecab 100644
--- a/libnm-glib/libnm-glib-test.c
+++ b/libnm-glib/libnm-glib-test.c
@@ -203,7 +203,7 @@ dump_wireless (NMDeviceWifi *device)
g_print ("AccessPoints:\n");
aps = nm_device_wifi_get_access_points (device);
- for (i = 0; i < aps->len; i++) {
+ for (i = 0; aps && (i < aps->len); i++) {
dump_access_point (NM_ACCESS_POINT (g_ptr_array_index (aps, i)));
g_print ("\n");
}
@@ -320,7 +320,8 @@ test_get_active_connections (NMClient *client)
g_print (" %s\n", nm_object_get_path (g_ptr_array_index (connections, i)));
devices = nm_active_connection_get_devices (g_ptr_array_index (connections, i));
- g_ptr_array_foreach ((GPtrArray *) devices, show_active_connection_device, NULL);
+ if (devices)
+ g_ptr_array_foreach ((GPtrArray *) devices, show_active_connection_device, NULL);
}
}
diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver
index 1596afaad..22fc0e240 100644
--- a/libnm-glib/libnm-glib.ver
+++ b/libnm-glib/libnm-glib.ver
@@ -69,6 +69,7 @@ global:
nm_device_ethernet_new;
nm_device_get_capabilities;
nm_device_get_dhcp4_config;
+ nm_device_get_dhcp6_config;
nm_device_get_driver;
nm_device_get_firmware_missing;
nm_device_get_iface;
@@ -95,6 +96,10 @@ global:
nm_dhcp4_config_get_options;
nm_dhcp4_config_get_type;
nm_dhcp4_config_new;
+ nm_dhcp6_config_get_one_option;
+ nm_dhcp6_config_get_options;
+ nm_dhcp6_config_get_type;
+ nm_dhcp6_config_new;
nm_exported_connection_export;
nm_exported_connection_get_type;
nm_exported_connection_new;
diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c
index 88fe15b55..1de7b863c 100644
--- a/libnm-glib/nm-client.c
+++ b/libnm-glib/nm-client.c
@@ -18,7 +18,7 @@
* Boston, MA 02110-1301 USA.
*
* Copyright (C) 2007 - 2008 Novell, Inc.
- * Copyright (C) 2007 - 2010 Red Hat, Inc.
+ * Copyright (C) 2007 - 2011 Red Hat, Inc.
*/
#include <dbus/dbus-glib.h>
@@ -1244,7 +1244,7 @@ nm_client_get_state (NMClient *client)
*
* Whether networking is enabled or disabled.
*
- * Returns: %TRUE if networking is disabled, %FALSE if networking is enabled
+ * Returns: %TRUE if networking is enabled, %FALSE if networking is disabled
**/
gboolean
nm_client_networking_get_enabled (NMClient *client)
diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
index ea2a91d1c..b8998f70b 100644
--- a/libnm-glib/nm-device.c
+++ b/libnm-glib/nm-device.c
@@ -477,6 +477,20 @@ nm_device_class_init (NMDeviceClass *device_class)
G_PARAM_READABLE));
/**
+ * NMDevice:ip-interface:
+ *
+ * The IP interface of the device which should be used for all IP-related
+ * operations like addressing and routing.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_IP_INTERFACE,
+ g_param_spec_string (NM_DEVICE_IP_INTERFACE,
+ "IP Interface",
+ "IP Interface name",
+ NULL,
+ G_PARAM_READABLE));
+
+ /**
* NMDevice:udi:
*
* The Unique Device Identifier of the device.
diff --git a/libnm-glib/nm-exported-connection.c b/libnm-glib/nm-exported-connection.c
index 3a8e51ce7..b0e974cdc 100644
--- a/libnm-glib/nm-exported-connection.c
+++ b/libnm-glib/nm-exported-connection.c
@@ -17,7 +17,7 @@
* Boston, MA 02110-1301 USA.
*
* (C) Copyright 2008 Novell, Inc.
- * (C) Copyright 2008 - 2009 Red Hat, Inc.
+ * (C) Copyright 2008 - 2011 Red Hat, Inc.
*/
#include <NetworkManager.h>
@@ -64,11 +64,16 @@ typedef struct {
/**************************************************************/
+/* Has to be the same as NM_SYSCONFIG_SETTINGS_TIMESTAMP_TAG in nm-sysconfig-settings.h */
+#define CONNECTION_TIMESTAMP_TAG "timestamp-tag"
+
static GHashTable *
real_get_settings (NMExportedConnection *self, GError **error)
{
NMConnection *no_secrets;
GHashTable *settings;
+ NMSettingConnection *s_con;
+ guint64 *timestamp;
/* Secrets should *never* be returned by the GetSettings method, they
* get returned by the GetSecrets method which can be better
@@ -77,6 +82,20 @@ real_get_settings (NMExportedConnection *self, GError **error)
no_secrets = nm_connection_duplicate (NM_CONNECTION (self));
g_assert (no_secrets);
nm_connection_clear_secrets (no_secrets);
+
+ /* Timestamp is not updated internally in connection's 'timestamp'
+ * property, because it would force updating the connection and in turn
+ * writing to /etc periodically, which we want to avoid. Rather real
+ * timestamps are kept track of in data associated with GObject.
+ * Here we substitute connection's timestamp with the real one.
+ */
+ timestamp = (guint64 *) g_object_get_data (G_OBJECT (self), CONNECTION_TIMESTAMP_TAG);
+ if (timestamp) {
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (NM_CONNECTION (no_secrets), NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+ g_object_set (s_con, NM_SETTING_CONNECTION_TIMESTAMP, *timestamp, NULL);
+ }
+
settings = nm_connection_to_hash (no_secrets);
g_assert (settings);
g_object_unref (no_secrets);
diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am
index f43fb6024..a2d4d2b26 100644
--- a/libnm-util/Makefile.am
+++ b/libnm-util/Makefile.am
@@ -59,7 +59,7 @@ libnm_util_la_SOURCES= \
libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS)
libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \
- -version-info "7:0:6"
+ -version-info "7:1:6"
if WITH_GNUTLS
libnm_util_la_SOURCES += crypto_gnutls.c
diff --git a/libnm-util/Makefile.in b/libnm-util/Makefile.in
index 284543295..dcea77bff 100644
--- a/libnm-util/Makefile.in
+++ b/libnm-util/Makefile.in
@@ -313,6 +313,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -327,6 +331,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -440,7 +445,7 @@ libnm_util_la_SOURCES = crypto.c crypto.h nm-connection.c \
libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) \
$(am__append_3) $(am__append_6)
libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \
- -version-info "7:0:6"
+ -version-info "7:1:6"
libnm_util_includedir = $(includedir)/NetworkManager
diff --git a/libnm-util/libnm-util.ver b/libnm-util/libnm-util.ver
index 6c2b9fc71..354a0f7b7 100644
--- a/libnm-util/libnm-util.ver
+++ b/libnm-util/libnm-util.ver
@@ -4,6 +4,7 @@ global:
nm_connection_clear_secrets;
nm_connection_compare;
nm_connection_create_setting;
+ nm_connection_diff;
nm_connection_dump;
nm_connection_duplicate;
nm_connection_error_get_type;
@@ -115,6 +116,7 @@ global:
nm_setting_connection_get_autoconnect;
nm_setting_connection_get_timestamp;
nm_setting_connection_get_read_only;
+ nm_setting_diff;
nm_setting_duplicate;
nm_setting_enumerate_values;
nm_setting_error_get_type;
diff --git a/libnm-util/nm-connection.c b/libnm-util/nm-connection.c
index 33790a636..3f339dbcb 100644
--- a/libnm-util/nm-connection.c
+++ b/libnm-util/nm-connection.c
@@ -556,6 +556,89 @@ nm_connection_compare (NMConnection *a,
return info.failed ? FALSE : TRUE;
}
+
+static void
+diff_one_connection (NMConnection *a,
+ NMConnection *b,
+ NMSettingCompareFlags flags,
+ gboolean invert_results,
+ GHashTable *diffs)
+{
+ NMConnectionPrivate *priv = NM_CONNECTION_GET_PRIVATE (a);
+ GHashTableIter iter;
+ NMSetting *a_setting = NULL;
+
+ g_hash_table_iter_init (&iter, priv->settings);
+ while (g_hash_table_iter_next (&iter, NULL, (gpointer) &a_setting)) {
+ NMSetting *b_setting = NULL;
+ const char *setting_name = nm_setting_get_name (a_setting);
+ GHashTable *results;
+ gboolean new_results = TRUE;
+
+ if (b)
+ b_setting = nm_connection_get_setting (b, G_OBJECT_TYPE (a_setting));
+
+ results = g_hash_table_lookup (diffs, setting_name);
+ if (results)
+ new_results = FALSE;
+
+ if (!nm_setting_diff (a_setting, b_setting, flags, invert_results, &results)) {
+ if (new_results)
+ g_hash_table_insert (diffs, g_strdup (setting_name), results);
+ }
+ }
+}
+
+/**
+ * nm_connection_diff:
+ * @a: a #NMConnection
+ * @b: a second #NMConnection to compare with the first
+ * @flags: compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+ * @out_settings: if the connections differ, on return a hash table mapping
+ * setting names to second-level GHashTable, which contains key names that differ
+ *
+ * Compares two #NMConnection objects for similarity, with comparison behavior
+ * modified by a set of flags. See nm_setting_compare() for a description of
+ * each flag's behavior. If the connections differ, settings and keys within
+ * each setting that differ are added to the returned @out_settings hash table.
+ * No values are returned, only key names.
+ *
+ * Returns: %TRUE if the connections contain the same values, %FALSE if they do
+ * not
+ **/
+gboolean
+nm_connection_diff (NMConnection *a,
+ NMConnection *b,
+ NMSettingCompareFlags flags,
+ GHashTable **out_settings)
+{
+ GHashTable *diffs;
+
+ g_return_val_if_fail (a != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_CONNECTION (a), FALSE);
+ g_return_val_if_fail (out_settings != NULL, FALSE);
+ g_return_val_if_fail (*out_settings == NULL, FALSE);
+ if (b)
+ g_return_val_if_fail (NM_IS_CONNECTION (b), FALSE);
+
+ if (a == b)
+ return TRUE;
+
+ diffs = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_hash_table_destroy);
+
+ /* Diff A to B, then B to A to capture keys in B that aren't in A */
+ diff_one_connection (a, b, flags, FALSE, diffs);
+ if (b)
+ diff_one_connection (b, a, flags, TRUE, diffs);
+
+ if (g_hash_table_size (diffs) == 0)
+ g_hash_table_destroy (diffs);
+ else
+ *out_settings = diffs;
+
+ return *out_settings ? FALSE : TRUE;
+}
+
/**
* nm_connection_verify:
* @connection: the #NMConnection to verify
@@ -624,7 +707,7 @@ 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
- * @secrets: a #GHashTable mapping string:#GValue of setting property names and
+ * @setting_secrets: a #GHashTable mapping string:#GValue of setting property names and
* secrets
* @error: location to store error, or %NULL
*
@@ -637,7 +720,7 @@ nm_connection_verify (NMConnection *connection, GError **error)
gboolean
nm_connection_update_secrets (NMConnection *connection,
const char *setting_name,
- GHashTable *secrets,
+ GHashTable *setting_secrets,
GError **error)
{
NMSetting *setting;
@@ -646,19 +729,20 @@ nm_connection_update_secrets (NMConnection *connection,
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 (secrets != NULL, FALSE);
+ g_return_val_if_fail (setting_secrets != NULL, FALSE);
if (error)
g_return_val_if_fail (*error == NULL, FALSE);
setting = nm_connection_get_setting (connection, nm_connection_lookup_setting_type (setting_name));
if (!setting) {
- g_set_error (error, NM_CONNECTION_ERROR,
- NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
- "%s", setting_name);
+ g_set_error_literal (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND,
+ setting_name);
return FALSE;
}
- success = nm_setting_update_secrets (setting, secrets, error);
+ success = nm_setting_update_secrets (setting, setting_secrets, error);
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 576db0498..83d62d9b1 100644
--- a/libnm-util/nm-connection.h
+++ b/libnm-util/nm-connection.h
@@ -127,6 +127,11 @@ gboolean nm_connection_compare (NMConnection *a,
NMConnection *b,
NMSettingCompareFlags flags);
+gboolean nm_connection_diff (NMConnection *a,
+ NMConnection *b,
+ NMSettingCompareFlags flags,
+ GHashTable **out_settings);
+
gboolean nm_connection_verify (NMConnection *connection, GError **error);
const char * nm_connection_need_secrets (NMConnection *connection,
@@ -136,7 +141,7 @@ void nm_connection_clear_secrets (NMConnection *connection);
gboolean nm_connection_update_secrets (NMConnection *connection,
const char *setting_name,
- GHashTable *secrets,
+ GHashTable *setting_secrets,
GError **error);
void nm_connection_set_scope (NMConnection *connection,
diff --git a/libnm-util/nm-setting-bluetooth.c b/libnm-util/nm-setting-bluetooth.c
index 70840df90..e3cebe2ee 100644
--- a/libnm-util/nm-setting-bluetooth.c
+++ b/libnm-util/nm-setting-bluetooth.c
@@ -274,8 +274,8 @@ nm_setting_bluetooth_class_init (NMSettingBluetoothClass *setting_class)
g_param_spec_string (NM_SETTING_BLUETOOTH_TYPE,
"Connection type",
"Either '" NM_SETTING_BLUETOOTH_TYPE_DUN "' for "
- "Dial-Up Networking connections (not yet supported) "
- " or '" NM_SETTING_BLUETOOTH_TYPE_PANU "' for "
+ "Dial-Up Networking connections or "
+ "'" NM_SETTING_BLUETOOTH_TYPE_PANU "' for "
"Personal Area Networking connections.",
NULL,
G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE));
diff --git a/libnm-util/nm-setting-cdma.c b/libnm-util/nm-setting-cdma.c
index 7255eb915..cff8dff47 100644
--- a/libnm-util/nm-setting-cdma.c
+++ b/libnm-util/nm-setting-cdma.c
@@ -23,7 +23,6 @@
#include <string.h>
#include "nm-setting-cdma.h"
-#include "nm-setting-serial.h"
#include "nm-utils.h"
/**
@@ -69,7 +68,7 @@ nm_setting_cdma_error_get_type (void)
ENUM_ENTRY (NM_SETTING_CDMA_ERROR_INVALID_PROPERTY, "InvalidProperty"),
/* The specified property was missing and is required. */
ENUM_ENTRY (NM_SETTING_CDMA_ERROR_MISSING_PROPERTY, "MissingProperty"),
- /* The required serial setting is missing */
+ /* The required serial setting is missing (DEPRECATED) */
ENUM_ENTRY (NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING, "MissingSerialSetting"),
{ 0, 0, 0 }
};
@@ -153,30 +152,11 @@ nm_setting_cdma_get_password (NMSettingCdma *setting)
return NM_SETTING_CDMA_GET_PRIVATE (setting)->password;
}
-static gint
-find_setting_by_name (gconstpointer a, gconstpointer b)
-{
- NMSetting *setting = NM_SETTING (a);
- const char *str = (const char *) b;
-
- return strcmp (nm_setting_get_name (setting), str);
-}
-
static gboolean
verify (NMSetting *setting, GSList *all_settings, GError **error)
{
NMSettingCdmaPrivate *priv = NM_SETTING_CDMA_GET_PRIVATE (setting);
- /* Serial connections require a PPP setting */
- if (all_settings &&
- !g_slist_find_custom (all_settings, NM_SETTING_SERIAL_SETTING_NAME, find_setting_by_name)) {
- g_set_error (error,
- NM_SETTING_CDMA_ERROR,
- NM_SETTING_CDMA_ERROR_MISSING_SERIAL_SETTING,
- NULL);
- return FALSE;
- }
-
if (!priv->number) {
g_set_error (error,
NM_SETTING_CDMA_ERROR,
diff --git a/libnm-util/nm-setting-gsm.c b/libnm-util/nm-setting-gsm.c
index 9f24265d8..aff8be085 100644
--- a/libnm-util/nm-setting-gsm.c
+++ b/libnm-util/nm-setting-gsm.c
@@ -26,7 +26,6 @@
#include <string.h>
#include <ctype.h>
#include "nm-setting-gsm.h"
-#include "nm-setting-serial.h"
#include "nm-utils.h"
GQuark
@@ -55,7 +54,7 @@ nm_setting_gsm_error_get_type (void)
ENUM_ENTRY (NM_SETTING_GSM_ERROR_INVALID_PROPERTY, "InvalidProperty"),
/* The specified property was missing and is required. */
ENUM_ENTRY (NM_SETTING_GSM_ERROR_MISSING_PROPERTY, "MissingProperty"),
- /* The required serial setting is missing */
+ /* The required serial setting is missing (DEPRECATED) */
ENUM_ENTRY (NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING, "MissingSerialSetting"),
{ 0, 0, 0 }
};
@@ -107,15 +106,6 @@ nm_setting_gsm_new (void)
return (NMSetting *) g_object_new (NM_TYPE_SETTING_GSM, NULL);
}
-static gint
-find_setting_by_name (gconstpointer a, gconstpointer b)
-{
- NMSetting *setting = NM_SETTING (a);
- const char *str = (const char *) b;
-
- return strcmp (nm_setting_get_name (setting), str);
-}
-
const char *
nm_setting_gsm_get_number (NMSettingGsm *setting)
{
@@ -207,16 +197,6 @@ verify (NMSetting *setting, GSList *all_settings, GError **error)
{
NMSettingGsmPrivate *priv = NM_SETTING_GSM_GET_PRIVATE (setting);
- /* Serial connections require a PPP setting */
- if (all_settings &&
- !g_slist_find_custom (all_settings, NM_SETTING_SERIAL_SETTING_NAME, find_setting_by_name)) {
- g_set_error (error,
- NM_SETTING_GSM_ERROR,
- NM_SETTING_GSM_ERROR_MISSING_SERIAL_SETTING,
- NULL);
- return FALSE;
- }
-
if (!priv->number) {
g_set_error (error,
NM_SETTING_GSM_ERROR,
diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c
index 186e41e24..ec8de7ce3 100644
--- a/libnm-util/nm-setting-ip4-config.c
+++ b/libnm-util/nm-setting-ip4-config.c
@@ -950,7 +950,7 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class)
"the 'dhcp-hostname' property is empty and this "
"property is TRUE, the current persistent hostname "
"of the computer is sent.",
- FALSE,
+ TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | NM_SETTING_PARAM_SERIALIZE));
/**
diff --git a/libnm-util/nm-setting-serial.c b/libnm-util/nm-setting-serial.c
index 779e53a8d..d1d1445e5 100644
--- a/libnm-util/nm-setting-serial.c
+++ b/libnm-util/nm-setting-serial.c
@@ -19,14 +19,13 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * (C) Copyright 2007 - 2008 Red Hat, Inc.
+ * (C) Copyright 2007 - 2011 Red Hat, Inc.
* (C) Copyright 2007 - 2008 Novell, Inc.
*/
#include <string.h>
#include "nm-setting-serial.h"
-#include "nm-setting-ppp.h"
GQuark
nm_setting_serial_error_quark (void)
@@ -54,7 +53,7 @@ nm_setting_serial_error_get_type (void)
ENUM_ENTRY (NM_SETTING_SERIAL_ERROR_INVALID_PROPERTY, "InvalidProperty"),
/* The specified property was missing and is required. */
ENUM_ENTRY (NM_SETTING_SERIAL_ERROR_MISSING_PROPERTY, "MissingProperty"),
- /* The required PPP setting is missing */
+ /* The required PPP setting is missing (DEPRECATED) */
ENUM_ENTRY (NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING, "MissingPPPSetting"),
{ 0, 0, 0 }
};
@@ -134,28 +133,9 @@ nm_setting_serial_get_send_delay (NMSettingSerial *setting)
return NM_SETTING_SERIAL_GET_PRIVATE (setting)->send_delay;
}
-static gint
-find_setting_by_name (gconstpointer a, gconstpointer b)
-{
- NMSetting *setting = NM_SETTING (a);
- const char *str = (const char *) b;
-
- return strcmp (nm_setting_get_name (setting), str);
-}
-
static gboolean
verify (NMSetting *setting, GSList *all_settings, GError **error)
{
- /* Serial connections require a PPP setting */
- if (all_settings &&
- !g_slist_find_custom (all_settings, NM_SETTING_PPP_SETTING_NAME, find_setting_by_name)) {
- g_set_error_literal (error,
- NM_SETTING_SERIAL_ERROR,
- NM_SETTING_SERIAL_ERROR_MISSING_PPP_SETTING,
- "Missing required PPP setting");
- return FALSE;
- }
-
return TRUE;
}
diff --git a/libnm-util/nm-setting.c b/libnm-util/nm-setting.c
index 06994c73d..6f014bffb 100644
--- a/libnm-util/nm-setting.c
+++ b/libnm-util/nm-setting.c
@@ -317,6 +317,29 @@ 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)
+{
+ /* 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;
+
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS)
+ && (prop_flags & NM_SETTING_PARAM_SECRET))
+ return FALSE;
+
+ if ( (comp_flags & NM_SETTING_COMPARE_FLAG_IGNORE_ID)
+ && NM_IS_SETTING_CONNECTION (setting)
+ && !strcmp (prop_name, NM_SETTING_CONNECTION_ID))
+ return FALSE;
+
+ return TRUE;
+}
+
/**
* nm_setting_compare:
* @a: a #NMSetting
@@ -355,19 +378,8 @@ nm_setting_compare (NMSetting *a,
GValue value1 = { 0 };
GValue value2 = { 0 };
- /* 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;
-
- if ((flags & NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS) && (prop_spec->flags & NM_SETTING_PARAM_SECRET))
- continue;
-
- if ( (flags & NM_SETTING_COMPARE_FLAG_IGNORE_ID)
- && !strcmp (nm_setting_get_name (a), NM_SETTING_CONNECTION_SETTING_NAME)
- && !strcmp (prop_spec->name, NM_SETTING_CONNECTION_ID))
+ /* Handle compare flags */
+ if (!should_compare_prop (a, prop_spec->name, flags, prop_spec->flags))
continue;
g_value_init (&value1, prop_spec->value_type);
@@ -388,6 +400,118 @@ nm_setting_compare (NMSetting *a,
}
/**
+ * nm_setting_diff:
+ * @a: a #NMSetting
+ * @b: a second #NMSetting to compare with the first
+ * @flags: compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+ * @invert_results: this parameter is used internally by libnm-util and should
+ * be set to %FALSE. If %TRUE inverts the meaning of the #NMSettingDiffResult.
+ * @results: (element-type utf8 guint32): if the settings differ, on return a
+ * hash table mapping the differing keys to one or more #NMSettingDiffResult
+ * values OR-ed together. If the settings do not differ, any hash table passed
+ * in is unmodified. If no hash table is passed in, a new one is created.
+ *
+ * Compares two #NMSetting objects for similarity, with comparison behavior
+ * modified by a set of flags. See the documentation for #NMSettingCompareFlags
+ * for a description of each flag's behavior. If the settings differ, the keys
+ * of each setting that differ from the other are added to @results, mapped to
+ * one or more #NMSettingDiffResult values.
+ *
+ * Returns: %TRUE if the settings contain the same values, %FALSE if they do not
+ **/
+gboolean
+nm_setting_diff (NMSetting *a,
+ NMSetting *b,
+ NMSettingCompareFlags flags,
+ gboolean invert_results,
+ GHashTable **results)
+{
+ GParamSpec **property_specs;
+ guint n_property_specs;
+ guint i;
+ NMSettingDiffResult a_result = NM_SETTING_DIFF_RESULT_IN_A;
+ NMSettingDiffResult b_result = NM_SETTING_DIFF_RESULT_IN_B;
+ gboolean results_created = FALSE;
+
+ g_return_val_if_fail (results != NULL, FALSE);
+ g_return_val_if_fail (a != NULL, FALSE);
+ g_return_val_if_fail (NM_IS_SETTING (a), FALSE);
+ if (b) {
+ g_return_val_if_fail (NM_IS_SETTING (b), FALSE);
+ g_return_val_if_fail (G_OBJECT_TYPE (a) == G_OBJECT_TYPE (b), FALSE);
+ }
+
+ /* If the caller is calling this function in a pattern like this to get
+ * complete diffs:
+ *
+ * nm_setting_diff (A, B, FALSE, &results);
+ * nm_setting_diff (B, A, TRUE, &results);
+ *
+ * and wants us to invert the results so that the second invocation comes
+ * out correctly, do that here.
+ */
+ if (invert_results) {
+ a_result = NM_SETTING_DIFF_RESULT_IN_B;
+ b_result = NM_SETTING_DIFF_RESULT_IN_A;
+ }
+
+ if (*results == NULL) {
+ *results = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ results_created = TRUE;
+ }
+
+ /* And now all properties */
+ property_specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (a), &n_property_specs);
+
+ for (i = 0; i < n_property_specs; i++) {
+ GParamSpec *prop_spec = property_specs[i];
+ GValue a_value = { 0 }, b_value = { 0 };
+ NMSettingDiffResult r = NM_SETTING_DIFF_RESULT_UNKNOWN, tmp;
+ gboolean different = TRUE;
+
+ /* Handle compare flags */
+ if (!should_compare_prop (a, prop_spec->name, flags, prop_spec->flags))
+ continue;
+ if (strcmp (prop_spec->name, NM_SETTING_NAME) == 0)
+ continue;
+
+ if (b) {
+ g_value_init (&a_value, prop_spec->value_type);
+ g_object_get_property (G_OBJECT (a), prop_spec->name, &a_value);
+
+ g_value_init (&b_value, prop_spec->value_type);
+ g_object_get_property (G_OBJECT (b), prop_spec->name, &b_value);
+
+ different = !!g_param_values_cmp (prop_spec, &a_value, &b_value);
+ if (different) {
+ if (!g_param_value_defaults (prop_spec, &a_value))
+ r |= a_result;
+ if (!g_param_value_defaults (prop_spec, &b_value))
+ r |= b_result;
+ }
+
+ g_value_unset (&a_value);
+ g_value_unset (&b_value);
+ } else
+ r = a_result; /* only in A */
+
+ if (different) {
+ tmp = GPOINTER_TO_UINT (g_hash_table_lookup (*results, prop_spec->name));
+ g_hash_table_insert (*results, g_strdup (prop_spec->name), GUINT_TO_POINTER (tmp | r));
+ }
+ }
+ g_free (property_specs);
+
+ /* Don't return an empty hash table */
+ if (results_created && !g_hash_table_size (*results)) {
+ g_hash_table_destroy (*results);
+ *results = NULL;
+ }
+
+ return !(*results);
+}
+
+/**
* nm_setting_enumerate_values:
* @setting: the #NMSetting
* @func: user-supplied function called for each property of the setting
@@ -483,11 +607,6 @@ nm_setting_need_secrets (NMSetting *setting)
return secrets;
}
-typedef struct {
- NMSetting *setting;
- GError **error;
-} UpdateSecretsInfo;
-
static gboolean
update_one_secret (NMSetting *setting, const char *key, GValue *value, GError **error)
{
@@ -504,13 +623,9 @@ update_one_secret (NMSetting *setting, const char *key, GValue *value, GError **
return FALSE;
}
- if (!(prop_spec->flags & NM_SETTING_PARAM_SECRET)) {
- g_set_error (error,
- NM_SETTING_ERROR,
- NM_SETTING_ERROR_PROPERTY_NOT_SECRET,
- "%s", key);
- return FALSE;
- }
+ /* Silently ignore non-secrets */
+ if (!(prop_spec->flags & NM_SETTING_PARAM_SECRET))
+ return TRUE;
if (g_value_type_compatible (G_VALUE_TYPE (value), G_PARAM_SPEC_VALUE_TYPE (prop_spec))) {
g_object_set_property (G_OBJECT (setting), prop_spec->name, value);
@@ -528,17 +643,6 @@ update_one_secret (NMSetting *setting, const char *key, GValue *value, GError **
return success;
}
-static void
-update_one_cb (gpointer key, gpointer val, gpointer user_data)
-{
- UpdateSecretsInfo *info = user_data;
- const char *secret_key = (const char *) key;
- GValue *secret_value = (GValue *) val;
-
- if (*(info->error) == NULL)
- NM_SETTING_GET_CLASS (info->setting)->update_one_secret (info->setting, secret_key, secret_value, info->error);
-}
-
/**
* nm_setting_update_secrets:
* @setting: the #NMSetting
@@ -555,8 +659,9 @@ update_one_cb (gpointer key, gpointer val, gpointer user_data)
gboolean
nm_setting_update_secrets (NMSetting *setting, GHashTable *secrets, GError **error)
{
- UpdateSecretsInfo *info;
- gboolean success;
+ GHashTableIter iter;
+ gpointer key, data;
+ GError *tmp_error = NULL;
g_return_val_if_fail (setting != NULL, FALSE);
g_return_val_if_fail (NM_IS_SETTING (setting), FALSE);
@@ -564,14 +669,19 @@ nm_setting_update_secrets (NMSetting *setting, GHashTable *secrets, GError **err
if (error)
g_return_val_if_fail (*error == NULL, FALSE);
- info = g_malloc0 (sizeof (UpdateSecretsInfo));
- info->setting = setting;
- info->error = error;
- g_hash_table_foreach (secrets, update_one_cb, info);
- success = *(info->error) ? FALSE : TRUE;
- g_free (info);
+ g_hash_table_iter_init (&iter, secrets);
+ while (g_hash_table_iter_next (&iter, &key, &data)) {
+ const char *secret_key = (const char *) key;
+ GValue *secret_value = (GValue *) data;
- return success;
+ NM_SETTING_GET_CLASS (setting)->update_one_secret (setting, secret_key, secret_value, &tmp_error);
+ if (tmp_error) {
+ g_propagate_error (error, tmp_error);
+ return FALSE;
+ }
+ }
+
+ return TRUE;
}
/**
@@ -620,6 +730,8 @@ nm_setting_to_string (NMSetting *setting)
is_serializable = prop_spec->flags & NM_SETTING_PARAM_SERIALIZE;
is_default = g_param_value_defaults (prop_spec, &value);
+ g_value_unset (&value);
+
if (is_serializable || is_default) {
g_string_append (string, " (");
diff --git a/libnm-util/nm-setting.h b/libnm-util/nm-setting.h
index de5657eea..6b7e92ab0 100644
--- a/libnm-util/nm-setting.h
+++ b/libnm-util/nm-setting.h
@@ -160,6 +160,26 @@ gboolean nm_setting_compare (NMSetting *a,
NMSetting *b,
NMSettingCompareFlags flags);
+/**
+ * NMSettingDiffResult:
+ * @NM_SETTING_DIFF_RESULT_UNKNOWN: unknown result
+ * @NM_SETTING_DIFF_RESULT_IN_A: the property is present in setting A
+ * @NM_SETTING_DIFF_RESULT_IN_B: the property is present in setting B
+ *
+ * These values indicate the result of a setting difference operation.
+ **/
+typedef enum {
+ NM_SETTING_DIFF_RESULT_UNKNOWN = 0x00000000,
+ NM_SETTING_DIFF_RESULT_IN_A = 0x00000001,
+ NM_SETTING_DIFF_RESULT_IN_B = 0x00000002,
+} NMSettingDiffResult;
+
+gboolean nm_setting_diff (NMSetting *a,
+ NMSetting *b,
+ NMSettingCompareFlags flags,
+ gboolean invert_results,
+ GHashTable **results);
+
void nm_setting_enumerate_values (NMSetting *setting,
NMSettingValueIterFn func,
gpointer user_data);
diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c
index ce13da3c8..9c3662f47 100644
--- a/libnm-util/nm-utils.c
+++ b/libnm-util/nm-utils.c
@@ -1269,14 +1269,24 @@ nm_utils_security_valid (NMUtilsSecurityType type,
if (!(wifi_caps & NM_WIFI_DEVICE_CAP_WPA))
return FALSE;
if (have_ap) {
- /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
- if ((ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) || adhoc) {
- if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP)
+ /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and
+ * they don't have any pairwise ciphers. */
+ if (adhoc) {
+ if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_TKIP)
&& (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
return TRUE;
- if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP)
+ if ( (ap_wpa & NM_802_11_AP_SEC_GROUP_CCMP)
&& (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
return TRUE;
+ } else {
+ if (ap_wpa & NM_802_11_AP_SEC_KEY_MGMT_PSK) {
+ if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_TKIP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
+ return TRUE;
+ if ( (ap_wpa & NM_802_11_AP_SEC_PAIR_CCMP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
+ return TRUE;
+ }
}
return FALSE;
}
@@ -1285,14 +1295,22 @@ nm_utils_security_valid (NMUtilsSecurityType type,
if (!(wifi_caps & NM_WIFI_DEVICE_CAP_RSN))
return FALSE;
if (have_ap) {
- /* Ad-Hoc WPA APs won't necessarily have the PSK flag set */
- if ((ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_PSK) || adhoc) {
- if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP)
- && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
+ /* Ad-Hoc WPA APs won't necessarily have the PSK flag set, and
+ * they don't have any pairwise ciphers, nor any RSA flags yet. */
+ if (adhoc) {
+ if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP)
return TRUE;
- if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP)
- && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
+ if (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP)
return TRUE;
+ } else {
+ if (ap_rsn & NM_802_11_AP_SEC_KEY_MGMT_PSK) {
+ if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_TKIP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_TKIP))
+ return TRUE;
+ if ( (ap_rsn & NM_802_11_AP_SEC_PAIR_CCMP)
+ && (wifi_caps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP))
+ return TRUE;
+ }
}
return FALSE;
}
diff --git a/libnm-util/tests/Makefile.am b/libnm-util/tests/Makefile.am
index 378a7388a..a0b4779c2 100644
--- a/libnm-util/tests/Makefile.am
+++ b/libnm-util/tests/Makefile.am
@@ -7,7 +7,7 @@ INCLUDES = \
noinst_PROGRAMS = \
test-settings-defaults \
test-crypto \
- test-need-secrets \
+ test-secrets \
test-general \
test-setting-8021x
@@ -34,15 +34,15 @@ test_crypto_LDADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(GLIB_LIBS)
-test_need_secrets_SOURCES = \
- test-need-secrets.c
+test_secrets_SOURCES = \
+ test-secrets.c
-test_need_secrets_CPPFLAGS = \
+test_secrets_CPPFLAGS = \
-DTEST_CERT_DIR=\"$(top_srcdir)/libnm-util/tests/certs/\" \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-test_need_secrets_LDADD = \
+test_secrets_LDADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(GLIB_LIBS) \
$(DBUS_LIBS)
@@ -73,9 +73,9 @@ test_setting_8021x_LDADD = \
if WITH_TESTS
-check-local: test-settings-defaults test-crypto test-need-secrets
+check-local: test-settings-defaults test-crypto test-secrets
$(abs_builddir)/test-settings-defaults
- $(abs_builddir)/test-need-secrets
+ $(abs_builddir)/test-secrets
$(abs_builddir)/test-general
# Private key and CA certificate in the same file (PEM)
diff --git a/libnm-util/tests/Makefile.in b/libnm-util/tests/Makefile.in
index bf6968852..766aa9798 100644
--- a/libnm-util/tests/Makefile.in
+++ b/libnm-util/tests/Makefile.in
@@ -35,7 +35,7 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
noinst_PROGRAMS = test-settings-defaults$(EXEEXT) test-crypto$(EXEEXT) \
- test-need-secrets$(EXEEXT) test-general$(EXEEXT) \
+ test-secrets$(EXEEXT) test-general$(EXEEXT) \
test-setting-8021x$(EXEEXT)
subdir = libnm-util/tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -66,12 +66,10 @@ am_test_general_OBJECTS = test_general-test-general.$(OBJEXT)
test_general_OBJECTS = $(am_test_general_OBJECTS)
test_general_DEPENDENCIES = $(top_builddir)/libnm-util/libnm-util.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-am_test_need_secrets_OBJECTS = \
- test_need_secrets-test-need-secrets.$(OBJEXT)
-test_need_secrets_OBJECTS = $(am_test_need_secrets_OBJECTS)
-test_need_secrets_DEPENDENCIES = \
- $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
+am_test_secrets_OBJECTS = test_secrets-test-secrets.$(OBJEXT)
+test_secrets_OBJECTS = $(am_test_secrets_OBJECTS)
+test_secrets_DEPENDENCIES = $(top_builddir)/libnm-util/libnm-util.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_test_setting_8021x_OBJECTS = \
test_setting_8021x-test-setting-8021x.$(OBJEXT)
test_setting_8021x_OBJECTS = $(am_test_setting_8021x_OBJECTS)
@@ -111,10 +109,10 @@ AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(test_crypto_SOURCES) $(test_general_SOURCES) \
- $(test_need_secrets_SOURCES) $(test_setting_8021x_SOURCES) \
+ $(test_secrets_SOURCES) $(test_setting_8021x_SOURCES) \
$(test_settings_defaults_SOURCES)
DIST_SOURCES = $(test_crypto_SOURCES) $(test_general_SOURCES) \
- $(test_need_secrets_SOURCES) $(test_setting_8021x_SOURCES) \
+ $(test_secrets_SOURCES) $(test_setting_8021x_SOURCES) \
$(test_settings_defaults_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
@@ -249,6 +247,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -263,6 +265,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -366,15 +369,15 @@ test_crypto_LDADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(GLIB_LIBS)
-test_need_secrets_SOURCES = \
- test-need-secrets.c
+test_secrets_SOURCES = \
+ test-secrets.c
-test_need_secrets_CPPFLAGS = \
+test_secrets_CPPFLAGS = \
-DTEST_CERT_DIR=\"$(top_srcdir)/libnm-util/tests/certs/\" \
$(GLIB_CFLAGS) \
$(DBUS_CFLAGS)
-test_need_secrets_LDADD = \
+test_secrets_LDADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(GLIB_LIBS) \
$(DBUS_LIBS)
@@ -452,9 +455,9 @@ test-crypto$(EXEEXT): $(test_crypto_OBJECTS) $(test_crypto_DEPENDENCIES)
test-general$(EXEEXT): $(test_general_OBJECTS) $(test_general_DEPENDENCIES)
@rm -f test-general$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_general_OBJECTS) $(test_general_LDADD) $(LIBS)
-test-need-secrets$(EXEEXT): $(test_need_secrets_OBJECTS) $(test_need_secrets_DEPENDENCIES)
- @rm -f test-need-secrets$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test_need_secrets_OBJECTS) $(test_need_secrets_LDADD) $(LIBS)
+test-secrets$(EXEEXT): $(test_secrets_OBJECTS) $(test_secrets_DEPENDENCIES)
+ @rm -f test-secrets$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_secrets_OBJECTS) $(test_secrets_LDADD) $(LIBS)
test-setting-8021x$(EXEEXT): $(test_setting_8021x_OBJECTS) $(test_setting_8021x_DEPENDENCIES)
@rm -f test-setting-8021x$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_setting_8021x_OBJECTS) $(test_setting_8021x_LDADD) $(LIBS)
@@ -470,7 +473,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_crypto-test-crypto.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_general-test-general.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_need_secrets-test-need-secrets.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_secrets-test-secrets.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_setting_8021x-test-setting-8021x.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_settings_defaults-test-settings-defaults.Po@am__quote@
@@ -533,21 +536,21 @@ test_general-test-general.obj: test-general.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_general_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_general-test-general.obj `if test -f 'test-general.c'; then $(CYGPATH_W) 'test-general.c'; else $(CYGPATH_W) '$(srcdir)/test-general.c'; fi`
-test_need_secrets-test-need-secrets.o: test-need-secrets.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_need_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_need_secrets-test-need-secrets.o -MD -MP -MF $(DEPDIR)/test_need_secrets-test-need-secrets.Tpo -c -o test_need_secrets-test-need-secrets.o `test -f 'test-need-secrets.c' || echo '$(srcdir)/'`test-need-secrets.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_need_secrets-test-need-secrets.Tpo $(DEPDIR)/test_need_secrets-test-need-secrets.Po
+test_secrets-test-secrets.o: test-secrets.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_secrets-test-secrets.o -MD -MP -MF $(DEPDIR)/test_secrets-test-secrets.Tpo -c -o test_secrets-test-secrets.o `test -f 'test-secrets.c' || echo '$(srcdir)/'`test-secrets.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_secrets-test-secrets.Tpo $(DEPDIR)/test_secrets-test-secrets.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-need-secrets.c' object='test_need_secrets-test-need-secrets.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-secrets.c' object='test_secrets-test-secrets.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_need_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_need_secrets-test-need-secrets.o `test -f 'test-need-secrets.c' || echo '$(srcdir)/'`test-need-secrets.c
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_secrets-test-secrets.o `test -f 'test-secrets.c' || echo '$(srcdir)/'`test-secrets.c
-test_need_secrets-test-need-secrets.obj: test-need-secrets.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_need_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_need_secrets-test-need-secrets.obj -MD -MP -MF $(DEPDIR)/test_need_secrets-test-need-secrets.Tpo -c -o test_need_secrets-test-need-secrets.obj `if test -f 'test-need-secrets.c'; then $(CYGPATH_W) 'test-need-secrets.c'; else $(CYGPATH_W) '$(srcdir)/test-need-secrets.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_need_secrets-test-need-secrets.Tpo $(DEPDIR)/test_need_secrets-test-need-secrets.Po
+test_secrets-test-secrets.obj: test-secrets.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_secrets-test-secrets.obj -MD -MP -MF $(DEPDIR)/test_secrets-test-secrets.Tpo -c -o test_secrets-test-secrets.obj `if test -f 'test-secrets.c'; then $(CYGPATH_W) 'test-secrets.c'; else $(CYGPATH_W) '$(srcdir)/test-secrets.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_secrets-test-secrets.Tpo $(DEPDIR)/test_secrets-test-secrets.Po
@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-need-secrets.c' object='test_need_secrets-test-need-secrets.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-secrets.c' object='test_secrets-test-secrets.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_need_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_need_secrets-test-need-secrets.obj `if test -f 'test-need-secrets.c'; then $(CYGPATH_W) 'test-need-secrets.c'; else $(CYGPATH_W) '$(srcdir)/test-need-secrets.c'; fi`
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_secrets_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_secrets-test-secrets.obj `if test -f 'test-secrets.c'; then $(CYGPATH_W) 'test-secrets.c'; else $(CYGPATH_W) '$(srcdir)/test-secrets.c'; fi`
test_setting_8021x-test-setting-8021x.o: test-setting-8021x.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_setting_8021x_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_setting_8021x-test-setting-8021x.o -MD -MP -MF $(DEPDIR)/test_setting_8021x-test-setting-8021x.Tpo -c -o test_setting_8021x-test-setting-8021x.o `test -f 'test-setting-8021x.c' || echo '$(srcdir)/'`test-setting-8021x.c
@@ -902,9 +905,9 @@ uninstall-am:
tags tags-recursive uninstall uninstall-am
-@WITH_TESTS_TRUE@check-local: test-settings-defaults test-crypto test-need-secrets
+@WITH_TESTS_TRUE@check-local: test-settings-defaults test-crypto test-secrets
@WITH_TESTS_TRUE@ $(abs_builddir)/test-settings-defaults
-@WITH_TESTS_TRUE@ $(abs_builddir)/test-need-secrets
+@WITH_TESTS_TRUE@ $(abs_builddir)/test-secrets
@WITH_TESTS_TRUE@ $(abs_builddir)/test-general
# Private key and CA certificate in the same file (PEM)
diff --git a/libnm-util/tests/certs/Makefile.in b/libnm-util/tests/certs/Makefile.in
index 860d05de1..d49619f7e 100644
--- a/libnm-util/tests/certs/Makefile.in
+++ b/libnm-util/tests/certs/Makefile.in
@@ -158,6 +158,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -172,6 +176,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/libnm-util/tests/test-general.c b/libnm-util/tests/test-general.c
index e91e2b5ce..c7421faff 100644
--- a/libnm-util/tests/test-general.c
+++ b/libnm-util/tests/test-general.c
@@ -29,7 +29,10 @@
#include "nm-setting-connection.h"
#include "nm-setting-vpn.h"
#include "nm-setting-gsm.h"
+#include "nm-setting-wired.h"
#include "nm-setting-ip6-config.h"
+#include "nm-setting-ip4-config.h"
+#include "nm-setting-pppoe.h"
#include "nm-dbus-glib-types.h"
static void
@@ -289,6 +292,240 @@ test_setting_gsm_apn_bad_chars (void)
"gsm-apn-bad-chars", "unexpectedly valid GSM setting");
}
+static NMConnection *
+new_test_connection (void)
+{
+ NMConnection *connection;
+ NMSetting *setting;
+ char *uuid;
+ gulong timestamp = time (NULL);
+
+ connection = nm_connection_new ();
+
+ setting = nm_setting_connection_new ();
+ uuid = nm_utils_uuid_generate ();
+ g_object_set (G_OBJECT (setting),
+ NM_SETTING_CONNECTION_ID, "foobar",
+ NM_SETTING_CONNECTION_UUID, uuid,
+ NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
+ NM_SETTING_CONNECTION_TIMESTAMP, timestamp,
+ NULL);
+ g_free (uuid);
+ nm_connection_add_setting (connection, setting);
+
+ setting = nm_setting_wired_new ();
+ g_object_set (G_OBJECT (setting),
+ NM_SETTING_WIRED_MTU, 1592,
+ NULL);
+ nm_connection_add_setting (connection, setting);
+
+ setting = nm_setting_ip4_config_new ();
+ g_object_set (G_OBJECT (setting),
+ NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, "eyeofthetiger",
+ NULL);
+ nm_connection_add_setting (connection, setting);
+
+ return connection;
+}
+
+typedef struct {
+ const char *key_name;
+ guint32 result;
+} DiffKey;
+
+typedef struct {
+ const char *name;
+ DiffKey keys[30];
+} DiffSetting;
+
+#define ARRAY_LEN(a) (sizeof (a) / sizeof (a[0]))
+
+static void
+ensure_diffs (GHashTable *diffs, const DiffSetting *check, gsize n_check)
+{
+ guint i;
+
+ g_assert (g_hash_table_size (diffs) == n_check);
+
+ /* Loop through the settings */
+ for (i = 0; i < n_check; i++) {
+ GHashTable *setting_hash;
+ guint z = 0;
+
+ setting_hash = g_hash_table_lookup (diffs, check[i].name);
+ g_assert (setting_hash);
+
+ /* Get the number of keys to check */
+ while (check[i].keys[z].key_name)
+ z++;
+ g_assert (g_hash_table_size (setting_hash) == z);
+
+ /* Now compare the actual keys */
+ for (z = 0; check[i].keys[z].key_name; z++) {
+ NMSettingDiffResult result;
+
+ result = GPOINTER_TO_UINT (g_hash_table_lookup (setting_hash, check[i].keys[z].key_name));
+ g_assert (result == check[i].keys[z].result);
+ }
+ }
+}
+
+static void
+test_connection_diff_a_only (void)
+{
+ NMConnection *connection;
+ GHashTable *out_diffs = NULL;
+ gboolean same;
+ const DiffSetting settings[] = {
+ { NM_SETTING_CONNECTION_SETTING_NAME, {
+ { NM_SETTING_CONNECTION_ID, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_CONNECTION_UUID, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_CONNECTION_TYPE, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_CONNECTION_TIMESTAMP, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_CONNECTION_AUTOCONNECT, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_CONNECTION_READ_ONLY, NM_SETTING_DIFF_RESULT_IN_A },
+ { 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 },
+ { NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
+ } },
+ { NM_SETTING_IP4_CONFIG_SETTING_NAME, {
+ { NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DNS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DNS_SEARCH, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_ADDRESSES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, NM_SETTING_DIFF_RESULT_IN_A },
+ { NM_SETTING_IP4_CONFIG_MAY_FAIL, NM_SETTING_DIFF_RESULT_IN_A },
+ { NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
+ } },
+ };
+
+ connection = new_test_connection ();
+
+ same = nm_connection_diff (connection, NULL, NM_SETTING_COMPARE_FLAG_EXACT, &out_diffs);
+ g_assert (same == FALSE);
+ g_assert (out_diffs != NULL);
+ g_assert (g_hash_table_size (out_diffs) > 0);
+
+ ensure_diffs (out_diffs, settings, ARRAY_LEN (settings));
+
+ g_object_unref (connection);
+}
+
+static void
+test_connection_diff_same (void)
+{
+ NMConnection *a, *b;
+ GHashTable *out_diffs = NULL;
+ gboolean same;
+
+ a = new_test_connection ();
+ b = nm_connection_duplicate (a);
+
+ same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_diffs);
+ g_assert (same == TRUE);
+ g_assert (out_diffs == NULL);
+ g_object_unref (a);
+ g_object_unref (b);
+}
+
+static void
+test_connection_diff_different (void)
+{
+ NMConnection *a, *b;
+ GHashTable *out_diffs = NULL;
+ NMSetting *s_ip4;
+ gboolean same;
+ const DiffSetting settings[] = {
+ { NM_SETTING_IP4_CONFIG_SETTING_NAME, {
+ { NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_DIFF_RESULT_IN_A | NM_SETTING_DIFF_RESULT_IN_B },
+ { NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
+ } },
+ };
+
+ a = new_test_connection ();
+ b = nm_connection_duplicate (a);
+ s_ip4 = nm_connection_get_setting (a, NM_TYPE_SETTING_IP4_CONFIG);
+ g_assert (s_ip4);
+ g_object_set (G_OBJECT (s_ip4),
+ NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_MANUAL,
+ NULL);
+
+ same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_diffs);
+ g_assert (same == FALSE);
+ g_assert (out_diffs != NULL);
+ g_assert (g_hash_table_size (out_diffs) > 0);
+
+ ensure_diffs (out_diffs, settings, ARRAY_LEN (settings));
+
+ g_object_unref (a);
+ g_object_unref (b);
+}
+
+static void
+test_connection_diff_no_secrets (void)
+{
+ NMConnection *a, *b;
+ GHashTable *out_diffs = NULL;
+ NMSetting *s_pppoe;
+ gboolean same;
+ const DiffSetting settings[] = {
+ { NM_SETTING_PPPOE_SETTING_NAME, {
+ { NM_SETTING_PPPOE_PASSWORD, NM_SETTING_DIFF_RESULT_IN_B },
+ { NULL, NM_SETTING_DIFF_RESULT_UNKNOWN },
+ } },
+ };
+
+ a = new_test_connection ();
+ s_pppoe = nm_setting_pppoe_new ();
+ g_object_set (G_OBJECT (s_pppoe),
+ NM_SETTING_PPPOE_USERNAME, "thomas",
+ NULL);
+ nm_connection_add_setting (a, s_pppoe);
+
+ b = nm_connection_duplicate (a);
+
+ /* Add a secret to B */
+ s_pppoe = nm_connection_get_setting (b, NM_TYPE_SETTING_PPPOE);
+ g_assert (s_pppoe);
+ g_object_set (G_OBJECT (s_pppoe),
+ NM_SETTING_PPPOE_PASSWORD, "secretpassword",
+ NULL);
+
+ /* Make sure the diff returns no results as secrets are ignored */
+ same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_IGNORE_SECRETS, &out_diffs);
+ g_assert (same == TRUE);
+ g_assert (out_diffs == NULL);
+
+ /* Now make sure the diff returns results if secrets are not ignored */
+ same = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_diffs);
+ g_assert (same == FALSE);
+ g_assert (out_diffs != NULL);
+ g_assert (g_hash_table_size (out_diffs) > 0);
+
+ ensure_diffs (out_diffs, settings, ARRAY_LEN (settings));
+
+ g_object_unref (a);
+ g_object_unref (b);
+}
+
int main (int argc, char **argv)
{
GError *error = NULL;
@@ -306,6 +543,10 @@ int main (int argc, char **argv)
test_setting_ip6_config_old_address_array ();
test_setting_gsm_apn_spaces ();
test_setting_gsm_apn_bad_chars ();
+ test_connection_diff_a_only ();
+ test_connection_diff_same ();
+ test_connection_diff_different ();
+ test_connection_diff_no_secrets ();
base = g_path_get_basename (argv[0]);
fprintf (stdout, "%s: SUCCESS\n", base);
diff --git a/libnm-util/tests/test-need-secrets.c b/libnm-util/tests/test-secrets.c
index 517e2e01d..da6f610d7 100644
--- a/libnm-util/tests/test-need-secrets.c
+++ b/libnm-util/tests/test-secrets.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.
*
*/
@@ -30,6 +30,7 @@
#include "nm-setting-wired.h"
#include "nm-setting-8021x.h"
#include "nm-setting-ip4-config.h"
+#include "nm-setting-wireless.h"
#include "nm-setting-wireless-security.h"
#include "nm-setting-cdma.h"
#include "nm-setting-gsm.h"
@@ -540,6 +541,109 @@ test_need_tls_phase2_secrets_blob (void)
g_object_unref (connection);
}
+static void
+value_destroy (gpointer data)
+{
+ GValue *value = (GValue *) data;
+
+ g_value_unset (value);
+ g_slice_free (GValue, value);
+}
+
+static GValue *
+string_to_gvalue (const char *str)
+{
+ GValue *val = g_slice_new0 (GValue);
+
+ g_value_init (val, G_TYPE_STRING);
+ g_value_set_string (val, str);
+ return val;
+}
+
+static GValue *
+uint_to_gvalue (guint32 i)
+{
+ GValue *val;
+
+ val = g_slice_new0 (GValue);
+ g_value_init (val, G_TYPE_UINT);
+ g_value_set_uint (val, i);
+ return val;
+}
+
+static void
+test_update_secrets_wifi (void)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSettingWireless *s_wifi;
+ NMSettingWirelessSecurity *s_wsec;
+ unsigned char tmpssid[] = { 0x31, 0x33, 0x33, 0x37 };
+ const char *wepkey = "11111111111111111111111111";
+ GHashTable *secrets;
+ GError *error = NULL;
+ char *uuid;
+ GByteArray *ssid;
+ gboolean success;
+
+ connection = nm_connection_new ();
+ g_assert (connection);
+
+ /* Connection setting */
+ s_con = (NMSettingConnection *) nm_setting_connection_new ();
+ g_assert (s_con);
+
+ uuid = nm_utils_uuid_generate ();
+ g_object_set (s_con,
+ NM_SETTING_CONNECTION_ID, "Test Wireless",
+ NM_SETTING_CONNECTION_UUID, uuid,
+ NM_SETTING_CONNECTION_AUTOCONNECT, FALSE,
+ NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRELESS_SETTING_NAME,
+ NULL);
+ g_free (uuid);
+ nm_connection_add_setting (connection, NM_SETTING (s_con));
+
+ /* Wireless setting */
+ s_wifi = (NMSettingWireless *) nm_setting_wireless_new ();
+ g_assert (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,
+ NM_SETTING_WIRELESS_SEC, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
+ NULL);
+ g_byte_array_free (ssid, TRUE);
+ nm_connection_add_setting (connection, NM_SETTING (s_wifi));
+
+ /* Wifi security */
+ s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
+ g_assert (s_wsec);
+
+ g_object_set (G_OBJECT (s_wsec),
+ NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "none",
+ NULL);
+ nm_connection_add_setting (connection, NM_SETTING (s_wsec));
+
+ /* Build up the secrets hash */
+ secrets = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, value_destroy);
+ g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
+ g_hash_table_insert (secrets, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, uint_to_gvalue (NM_WEP_KEY_TYPE_KEY));
+
+ success = nm_connection_update_secrets (connection,
+ NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
+ secrets,
+ &error);
+ if (!success) {
+ /* Print the warning message before we assert success */
+ g_assert (error);
+ g_warning ("Error updating connection secrets: %s", error->message);
+ g_clear_error (&error);
+ }
+ g_assert (success);
+}
+
+
int main (int argc, char **argv)
{
GError *error = NULL;
@@ -558,6 +662,8 @@ int main (int argc, char **argv)
test_need_tls_phase2_secrets_path ();
test_need_tls_phase2_secrets_blob ();
+ test_update_secrets_wifi ();
+
base = g_path_get_basename (argv[0]);
fprintf (stdout, "%s: SUCCESS\n", base);
g_free (base);
diff --git a/m4/compiler_warnings.m4 b/m4/compiler_warnings.m4
index 6cea2f74e..be69af278 100644
--- a/m4/compiler_warnings.m4
+++ b/m4/compiler_warnings.m4
@@ -10,7 +10,7 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
for option in -Wshadow -Wmissing-declarations -Wmissing-prototypes \
-Wdeclaration-after-statement -Wstrict-prototypes \
-Wfloat-equal -Wno-unused-parameter -Wno-sign-compare \
- -fno-strict-aliasing; do
+ -fno-strict-aliasing -Wno-unused-but-set-variable; do
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $option"
AC_MSG_CHECKING([whether gcc understands $option])
diff --git a/man/Makefile.in b/man/Makefile.in
index 828a60e80..0be51b3c9 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -182,6 +182,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -196,6 +200,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/man/NetworkManager.8 b/man/NetworkManager.8
index 4f700e9a3..92c6e5aa2 100644
--- a/man/NetworkManager.8
+++ b/man/NetworkManager.8
@@ -52,8 +52,10 @@ A VPN connection has been deactivated.
.TP
.I "hostname"
The system hostname has been updated. Use gethostname(2) to retrieve it.
+.TP
.I "dhcp4\-change"
The DHCPv4 lease has changed (renewed, rebound, etc).
+.TP
.I "dhcp6\-change"
The DHCPv6 lease has changed (renewed, rebound, etc).
.SH OPTIONS
diff --git a/man/NetworkManager.8.in b/man/NetworkManager.8.in
index 4f700e9a3..92c6e5aa2 100644
--- a/man/NetworkManager.8.in
+++ b/man/NetworkManager.8.in
@@ -52,8 +52,10 @@ A VPN connection has been deactivated.
.TP
.I "hostname"
The system hostname has been updated. Use gethostname(2) to retrieve it.
+.TP
.I "dhcp4\-change"
The DHCPv4 lease has changed (renewed, rebound, etc).
+.TP
.I "dhcp6\-change"
The DHCPv6 lease has changed (renewed, rebound, etc).
.SH OPTIONS
diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5
index ba575c941..acacb4324 100644
--- a/man/NetworkManager.conf.5
+++ b/man/NetworkManager.conf.5
@@ -2,7 +2,7 @@
.\"
.\" Copyright (C) 2010 Red Hat, Inc.
.\"
-.TH "NetworkManager.conf" "5" "16 September 2010" ""
+.TH "NetworkManager.conf" "5" "23 November 2010" ""
.SH NAME
NetworkManager.conf \- NetworkManager configuration file
.SH SYNOPSIS
@@ -129,10 +129,12 @@ Set a persistent hostname when using the \fIkeyfile\fP plugin.
.B unmanaged-devices=\fImac:<hwaddr>\fP;\fImac:<hwaddr>\fP;...
Set devices that should be ignored by NetworkManager when using the \fIkeyfile\fP
plugin. Devices are specified in the following format: "mac:<hwaddr>", where
-<hwaddr> is MAC address of the device to be ignored, in lowercase. Multiple
-entries are separated by a semicolon. Example:
+<hwaddr> is MAC address of the device to be ignored, in hex-digits-and-colons notation.
+Multiple entries are separated by a semicolon. No spaces are allowed in the value.
+.br
+Example:
.nf
-unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1e:65:30:d1:c4
+unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4
.fi
.SS [ifupdown]
This section contains ifupdown-specific options and thus only has effect when using \fIifupdown\fP plugin.
@@ -158,7 +160,7 @@ from earlier levels; thus setting the log level to INFO also logs error and
warning messages.
.TP
.B domains=\fI<domain1>,<domain2>, ...\fP
-The following log domains are available: [NONE, HW, RKILL, ETHER, WIFI, BT, MB,
+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,
USER_SET, SYS_SET, SUSPEND, CORE, DEVICE, OLPC]. When "NONE" is given by itself,
logging is disabled. MB = Mobile Broadband, USER_SET = user settings operations
diff --git a/man/NetworkManager.conf.5.in b/man/NetworkManager.conf.5.in
index ba575c941..acacb4324 100644
--- a/man/NetworkManager.conf.5.in
+++ b/man/NetworkManager.conf.5.in
@@ -2,7 +2,7 @@
.\"
.\" Copyright (C) 2010 Red Hat, Inc.
.\"
-.TH "NetworkManager.conf" "5" "16 September 2010" ""
+.TH "NetworkManager.conf" "5" "23 November 2010" ""
.SH NAME
NetworkManager.conf \- NetworkManager configuration file
.SH SYNOPSIS
@@ -129,10 +129,12 @@ Set a persistent hostname when using the \fIkeyfile\fP plugin.
.B unmanaged-devices=\fImac:<hwaddr>\fP;\fImac:<hwaddr>\fP;...
Set devices that should be ignored by NetworkManager when using the \fIkeyfile\fP
plugin. Devices are specified in the following format: "mac:<hwaddr>", where
-<hwaddr> is MAC address of the device to be ignored, in lowercase. Multiple
-entries are separated by a semicolon. Example:
+<hwaddr> is MAC address of the device to be ignored, in hex-digits-and-colons notation.
+Multiple entries are separated by a semicolon. No spaces are allowed in the value.
+.br
+Example:
.nf
-unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1e:65:30:d1:c4
+unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4
.fi
.SS [ifupdown]
This section contains ifupdown-specific options and thus only has effect when using \fIifupdown\fP plugin.
@@ -158,7 +160,7 @@ from earlier levels; thus setting the log level to INFO also logs error and
warning messages.
.TP
.B domains=\fI<domain1>,<domain2>, ...\fP
-The following log domains are available: [NONE, HW, RKILL, ETHER, WIFI, BT, MB,
+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,
USER_SET, SYS_SET, SUSPEND, CORE, DEVICE, OLPC]. When "NONE" is given by itself,
logging is disabled. MB = Mobile Broadband, USER_SET = user settings operations
diff --git a/marshallers/Makefile.in b/marshallers/Makefile.in
index d30b00b19..f299d4609 100644
--- a/marshallers/Makefile.in
+++ b/marshallers/Makefile.in
@@ -180,6 +180,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -194,6 +198,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/po/LINGUAS b/po/LINGUAS
index 242859862..f77d9c0d2 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -14,6 +14,7 @@ dz
el
en_CA
en_GB
+eo
es
et
eu
diff --git a/po/POTFILES.in b/po/POTFILES.in
index f3421b4a6..d4988c43c 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -16,6 +16,7 @@ policy/org.freedesktop.NetworkManager.policy.in
src/nm-netlink-monitor.c
src/main.c
src/dhcp-manager/nm-dhcp-dhclient.c
+src/dhcp-manager/nm-dhcp-dhclient-utils.c
src/dhcp-manager/nm-dhcp-manager.c
src/logging/nm-logging.c
src/dns-manager/nm-dns-manager.c
diff --git a/po/bg.po b/po/bg.po
index 5a1e7c1c0..b91690601 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,102 +1,109 @@
# Bulgarian translation of NetworkManager po-file
# Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
# This file is distributed under the same license as the NetworkManager package.
-# Alexander Shopov <ash@contact.bg>, 2005, 2007, 2008.
+# Alexander Shopov <ash@contact.bg>, 2005, 2007, 2008, 2011.
# Damyan Ivanov <dam+gnome@ktnx.net>, 2010.
#
msgid ""
msgstr ""
-"Project-Id-Version: NetworkManager trunk\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2010-09-20 15:25+0000\n"
-"PO-Revision-Date: 2010-09-29 23:55+0300\n"
-"Last-Translator: Damyan Ivanov <dam+gnome@ktnx.net>\n"
+"Project-Id-Version: NetworkManager master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-01-16 15:37+0200\n"
+"PO-Revision-Date: 2011-01-16 15:36+0200\n"
+"Last-Translator: Alexander Shopov <ash@contact.bg>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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:62 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:92 ../cli/src/devices.c:105 ../cli/src/devices.c:115
+#: ../cli/src/devices.c:125 ../cli/src/devices.c:138 ../cli/src/devices.c:151
+#: ../cli/src/devices.c:162 ../cli/src/devices.c:173 ../cli/src/devices.c:182
+#: ../cli/src/devices.c:191 ../cli/src/devices.c:212
msgid "NAME"
msgstr "ИМЕ"
#. 0
-#: ../cli/src/connections.c:61 ../cli/src/connections.c:76
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:79
msgid "UUID"
msgstr "УÐИВЕРСÐЛЕРИДЕÐТИФИКÐТОР"
#. 1
-#: ../cli/src/connections.c:62
+#: ../cli/src/connections.c:64
msgid "DEVICES"
msgstr "УСТРОЙСТВÐ"
#. 2
-#: ../cli/src/connections.c:63 ../cli/src/connections.c:78
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:81
msgid "SCOPE"
msgstr "ОБСЕГ"
#. 3
-#: ../cli/src/connections.c:64
+#: ../cli/src/connections.c:66
msgid "DEFAULT"
-msgstr "ПОДРÐЗ."
+msgstr "ПОДРÐЗБ."
#. 4
-#: ../cli/src/connections.c:65
+#: ../cli/src/connections.c:67
msgid "DBUS-SERVICE"
msgstr "УСЛУГÐ-DBUS"
#. 5
-#: ../cli/src/connections.c:66
+#: ../cli/src/connections.c:68
msgid "SPEC-OBJECT"
msgstr "СПЕЦИФИКÐЦ."
#. 6
-#: ../cli/src/connections.c:67
+#: ../cli/src/connections.c:69
msgid "VPN"
msgstr "ВЧМ"
+#. 7
+#. 2
+#. 11
+#. 5
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:86
+#: ../cli/src/devices.c:65 ../cli/src/devices.c:203 ../cli/src/devices.c:218
+msgid "DBUS-PATH"
+msgstr "ПЪТ-DBUS"
+
#. 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:63 ../cli/src/devices.c:94
+#: ../cli/src/devices.c:215
msgid "TYPE"
msgstr "ВИД"
# Заглавие за датата и чаÑа, когато поÑледно е използвана връзката.
# Използва Ñе вътрешниÑÑ‚ формат (Ñекунди от фикÑирана дата през 1700г).
#. 3
-#: ../cli/src/connections.c:79
+#: ../cli/src/connections.c:82
msgid "TIMESTAMP"
msgstr "ПОСЛ. ÐКТ."
# Заглавие за датата и чаÑа, когато поÑледно е използвана връзката.
# Използва Ñе локализиран формат за дата и чаÑ.
#. 4
-#: ../cli/src/connections.c:80
+#: ../cli/src/connections.c:83
msgid "TIMESTAMP-REAL"
msgstr "ПОСЛЕДÐО ÐКТИВÐÐ"
#. 5
-#: ../cli/src/connections.c:81
+#: ../cli/src/connections.c:84
msgid "AUTOCONNECT"
msgstr "ÐВТОМÐТИЧÐÐ"
#. 6
-#: ../cli/src/connections.c:82
+#: ../cli/src/connections.c:85
msgid "READONLY"
msgstr "СÐМО ЧЕТ."
-#. 7
-#: ../cli/src/connections.c:83
-msgid "DBUS-PATH"
-msgstr "ПЪТ-DBUS"
-
-#: ../cli/src/connections.c:159
+#: ../cli/src/connections.c:164
#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
@@ -104,8 +111,8 @@ msgid ""
"\n"
" list [id <id> | uuid <id> | system | user]\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"
" down id <id> | uuid <id>\n"
msgstr ""
"Употреба: nmcli con { КОМÐÐДР| help }\n"
@@ -113,805 +120,851 @@ msgstr ""
"\n"
" list [id <ид> | uuid <ид> | system | user]\n"
" status\n"
-" up id <ид> | uuid <ид> [iface <интерфейÑ>] [ap <хардуерен адреÑ>] [--"
-"nowait] [--timeout <изчакване>]\n"
+" up id <ид> | uuid <ид> [iface <интерфейÑ>] [ap <хардуерен адреÑ>]\n"
+" [nsp <име>] [--nowait] [--timeout <изчакване>]\n"
" down id <ид> | uuid <ид>\n"
-#: ../cli/src/connections.c:199 ../cli/src/connections.c:540
+#: ../cli/src/connections.c:204 ../cli/src/connections.c:554
#, c-format
msgid "Error: 'con list': %s"
-msgstr "Грешка при „con list“ – %s"
+msgstr "Грешка при „con list“ — %s"
-#: ../cli/src/connections.c:201 ../cli/src/connections.c:542
+#: ../cli/src/connections.c:206 ../cli/src/connections.c:556
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
-msgstr "Грешка при „con list“ – %s; допуÑтимите полета Ñа %s"
+msgstr "Грешка при „con list“ — %s; допуÑтимите полета Ñа %s"
-#: ../cli/src/connections.c:209
-#| msgid "Connection Established"
+#: ../cli/src/connections.c:214
msgid "Connection details"
msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката"
-#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+#: ../cli/src/connections.c:398 ../cli/src/connections.c:619
msgid "system"
msgstr "ÑиÑтема"
-#: ../cli/src/connections.c:384 ../cli/src/connections.c:605
+#: ../cli/src/connections.c:398 ../cli/src/connections.c:619
msgid "user"
msgstr "потреб."
-#: ../cli/src/connections.c:386
+#: ../cli/src/connections.c:400
msgid "never"
msgstr "никога"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
-#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
-#: ../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:401 ../cli/src/connections.c:402
+#: ../cli/src/connections.c:620 ../cli/src/connections.c:623
+#: ../cli/src/devices.c:469 ../cli/src/devices.c:521 ../cli/src/devices.c:643
+#: ../cli/src/devices.c:669 ../cli/src/devices.c:670 ../cli/src/devices.c:671
+#: ../cli/src/devices.c:672 ../cli/src/devices.c:673 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:664
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:939
+#: ../cli/src/settings.c:941 ../cli/src/settings.c:943
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1070 ../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:1161
+#: ../cli/src/settings.c:1236
msgid "yes"
msgstr "да"
-#: ../cli/src/connections.c:387 ../cli/src/connections.c:388
-#: ../cli/src/connections.c:606 ../cli/src/connections.c:609
-#: ../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
-#| msgid "none"
+#: ../cli/src/connections.c:401 ../cli/src/connections.c:402
+#: ../cli/src/connections.c:620 ../cli/src/connections.c:623
+#: ../cli/src/devices.c:469 ../cli/src/devices.c:521 ../cli/src/devices.c:643
+#: ../cli/src/devices.c:669 ../cli/src/devices.c:670 ../cli/src/devices.c:671
+#: ../cli/src/devices.c:672 ../cli/src/devices.c:673 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:664 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:939 ../cli/src/settings.c:941
+#: ../cli/src/settings.c:943 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1070
+#: ../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:1161 ../cli/src/settings.c:1236
msgid "no"
msgstr "не"
-#: ../cli/src/connections.c:461 ../cli/src/connections.c:504
-#| msgid "No active connections!"
+#: ../cli/src/connections.c:475 ../cli/src/connections.c:518
msgid "System connections"
msgstr "СиÑтемни връзки"
-#: ../cli/src/connections.c:466 ../cli/src/connections.c:517
-#| msgid "VPN Connections"
+#: ../cli/src/connections.c:480 ../cli/src/connections.c:531
msgid "User connections"
msgstr "ПотребителÑки връзки"
-#: ../cli/src/connections.c:478 ../cli/src/connections.c:1338
-#: ../cli/src/connections.c:1354 ../cli/src/connections.c:1363
-#: ../cli/src/connections.c:1374 ../cli/src/connections.c:1459
-#: ../cli/src/devices.c:962 ../cli/src/devices.c:972 ../cli/src/devices.c:1074
-#: ../cli/src/devices.c:1081
+#: ../cli/src/connections.c:492 ../cli/src/connections.c:1429
+#: ../cli/src/connections.c:1445 ../cli/src/connections.c:1454
+#: ../cli/src/connections.c:1463 ../cli/src/connections.c:1474
+#: ../cli/src/connections.c:1559 ../cli/src/devices.c:1117
+#: ../cli/src/devices.c:1127 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1236 ../cli/src/devices.c:1435
+#: ../cli/src/devices.c:1442
#, c-format
msgid "Error: %s argument is missing."
msgstr "ЛипÑва аргумент за „%s“."
-#: ../cli/src/connections.c:491
+#: ../cli/src/connections.c:505
#, c-format
msgid "Error: %s - no such connection."
msgstr "ÐÑма връзка „%s“."
-#: ../cli/src/connections.c:523 ../cli/src/connections.c:1387
-#: ../cli/src/connections.c:1477 ../cli/src/devices.c:785
-#: ../cli/src/devices.c:852 ../cli/src/devices.c:986 ../cli/src/devices.c:1087
+#: ../cli/src/connections.c:537 ../cli/src/connections.c:1487
+#: ../cli/src/connections.c:1577 ../cli/src/devices.c:940
+#: ../cli/src/devices.c:1007 ../cli/src/devices.c:1141
+#: ../cli/src/devices.c:1242 ../cli/src/devices.c:1448
#, c-format
msgid "Unknown parameter: %s\n"
msgstr "Ðепознат параметър „%s“\n"
-#: ../cli/src/connections.c:532
+#: ../cli/src/connections.c:546
#, c-format
msgid "Error: no valid parameter specified."
-msgstr "ÐÑма указани параметри."
+msgstr "Грешка: не Ñа указани правилни параметри."
-#: ../cli/src/connections.c:547 ../cli/src/connections.c:1580
-#: ../cli/src/devices.c:1293 ../cli/src/network-manager.c:359
+#: ../cli/src/connections.c:561 ../cli/src/connections.c:1680
+#: ../cli/src/devices.c:1646 ../cli/src/network-manager.c:401
#, c-format
msgid "Error: %s."
-msgstr "Грешка – %s."
+msgstr "Грешка: %s."
-#: ../cli/src/connections.c:653
+#: ../cli/src/connections.c:668
#, c-format
msgid "Error: 'con status': %s"
-msgstr "Грешка при „con status“ – %s"
+msgstr "Грешка при „con status“: %s"
-#: ../cli/src/connections.c:655
+#: ../cli/src/connections.c:670
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
-msgstr "Грешка при „con status“ – %s. ДопуÑтимите полета Ñа %s"
+msgstr "Грешка при „con status“: %s. ДопуÑтимите полета Ñа: %s"
-#: ../cli/src/connections.c:662
-#| msgid "No active connections!"
+#: ../cli/src/connections.c:677
msgid "Active connections"
msgstr "Ðктивни връзки"
-#: ../cli/src/connections.c:1030
+#: ../cli/src/connections.c:1101
#, c-format
-#| msgid "No active connections!"
msgid "no active connection on device '%s'"
msgstr "нÑма активна връзка, използваща уÑтройÑтвото „%s“"
-#: ../cli/src/connections.c:1038
+#: ../cli/src/connections.c:1109
#, c-format
-#| msgid "No active connections!"
msgid "no active connection or device"
msgstr "нÑма активна връзка или уÑтройÑтво"
-#: ../cli/src/connections.c:1088
+#: ../cli/src/connections.c:1178
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "уÑтройÑтвото „%s“ не е ÑъвмеÑтимо Ñ Ð²Ñ€ÑŠÐ·ÐºÐ°Ñ‚Ð° „%s“"
-#: ../cli/src/connections.c:1090
+#: ../cli/src/connections.c:1180
#, c-format
-#| msgid "Error retrieving VPN connection '%s'"
msgid "no device found for connection '%s'"
msgstr "не е открито уÑтройÑтво за връзката „%s“"
-#: ../cli/src/connections.c:1101
+#: ../cli/src/connections.c:1191
msgid "activating"
msgstr "включване"
-#: ../cli/src/connections.c:1103
+#: ../cli/src/connections.c:1193
msgid "activated"
msgstr "включена"
-#: ../cli/src/connections.c:1106 ../cli/src/connections.c:1129
-#: ../cli/src/connections.c:1162 ../cli/src/devices.c:246
-#: ../cli/src/devices.c:558 ../cli/src/network-manager.c:94
-#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
-#| msgid "(unknown)"
+#: ../cli/src/connections.c:1196 ../cli/src/connections.c:1219
+#: ../cli/src/connections.c:1252 ../cli/src/devices.c:281
+#: ../cli/src/devices.c:644 ../cli/src/network-manager.c:98
+#: ../cli/src/network-manager.c:156 ../cli/src/settings.c:485
msgid "unknown"
msgstr "неизвеÑтно"
-#: ../cli/src/connections.c:1115
-#| msgid "VPN connecting to '%s'"
+#: ../cli/src/connections.c:1205
msgid "VPN connecting (prepare)"
msgstr "Свързване към ВЧМ (подготовка)"
-#: ../cli/src/connections.c:1117
+#: ../cli/src/connections.c:1207
msgid "VPN connecting (need authentication)"
msgstr "Свързване към ВЧМ (нужна е идентификациÑ)"
-#: ../cli/src/connections.c:1119
-#| msgid "VPN Connections"
+#: ../cli/src/connections.c:1209
msgid "VPN connecting"
msgstr "Свързване към ВЧМ"
-#: ../cli/src/connections.c:1121
+#: ../cli/src/connections.c:1211
msgid "VPN connecting (getting IP configuration)"
msgstr "Свързване към ВЧМ (получаване на наÑтройките за IP)"
-#: ../cli/src/connections.c:1123
-#| msgid "Disconnected"
+#: ../cli/src/connections.c:1213
msgid "VPN connected"
msgstr "Свързан към ВЧМ"
-#: ../cli/src/connections.c:1125
-#| msgid "VPN Connect Failure"
+#: ../cli/src/connections.c:1215
msgid "VPN connection failed"
msgstr "ÐеуÑпешно Ñвързване към ВЧМ"
-#: ../cli/src/connections.c:1127
-#| msgid "Disconnected"
+#: ../cli/src/connections.c:1217
msgid "VPN disconnected"
msgstr "Връзката към ВЧМ е прекъÑната"
-#: ../cli/src/connections.c:1138
-#| msgid "(unknown)"
+#: ../cli/src/connections.c:1228
msgid "unknown reason"
msgstr "неизвеÑтна причина"
-#: ../cli/src/connections.c:1140
+#: ../cli/src/connections.c:1230
msgid "none"
msgstr "липÑва"
-#: ../cli/src/connections.c:1142
-#| msgid "The network connection has been disconnected."
+#: ../cli/src/connections.c:1232
msgid "the user was disconnected"
msgstr "потребителÑÑ‚ е изключен"
-#: ../cli/src/connections.c:1144
-#| msgid "The network connection has been disconnected."
+#: ../cli/src/connections.c:1234
msgid "the base network connection was interrupted"
msgstr "оÑновната връзка към мрежата е прекъÑната"
-#: ../cli/src/connections.c:1146
+#: ../cli/src/connections.c:1236
msgid "the VPN service stopped unexpectedly"
msgstr "уÑлугата за ВЧМ ÑÐ¿Ñ€Ñ Ð½ÐµÐ¾Ñ‡Ð°ÐºÐ²Ð°Ð½Ð¾"
-#: ../cli/src/connections.c:1148
+#: ../cli/src/connections.c:1238
msgid "the VPN service returned invalid configuration"
msgstr "уÑлугата за ВЧМ предоÑтави неправилни наÑтройки"
-#: ../cli/src/connections.c:1150
+#: ../cli/src/connections.c:1240
msgid "the connection attempt timed out"
msgstr "времето за Ñвързване изтече"
-#: ../cli/src/connections.c:1152
+#: ../cli/src/connections.c:1242
msgid "the VPN service did not start in time"
msgstr "уÑлугата за ВЧМ не уÑÐ¿Ñ Ð´Ð° тръгне в определеното време"
-#: ../cli/src/connections.c:1154
+#: ../cli/src/connections.c:1244
msgid "the VPN service failed to start"
msgstr "уÑлугата за ВЧМ не уÑÐ¿Ñ Ð´Ð° тръгне"
-#: ../cli/src/connections.c:1156
+#: ../cli/src/connections.c:1246
msgid "no valid VPN secrets"
msgstr "нÑма правилни пароли за ВЧМ"
-#: ../cli/src/connections.c:1158
+#: ../cli/src/connections.c:1248
msgid "invalid VPN secrets"
msgstr "неправилни пароли за ВЧМ"
-#: ../cli/src/connections.c:1160
+#: ../cli/src/connections.c:1250
msgid "the connection was removed"
msgstr "връзката е премахната"
-#: ../cli/src/connections.c:1174
+#: ../cli/src/connections.c:1264
#, c-format
msgid "state: %s\n"
msgstr "ÑÑŠÑтоÑние: %s\n"
-#: ../cli/src/connections.c:1177 ../cli/src/connections.c:1203
+#: ../cli/src/connections.c:1267 ../cli/src/connections.c:1293
#, c-format
-#| msgid "Connection Established"
msgid "Connection activated\n"
msgstr "Връзката е активирана\n"
-#: ../cli/src/connections.c:1180
+#: ../cli/src/connections.c:1270
#, c-format
-#| msgid "Connection to the wired network failed."
msgid "Error: Connection activation failed."
msgstr "Грешка при активиране на връзката."
-#: ../cli/src/connections.c:1199
+#: ../cli/src/connections.c:1289
#, c-format
msgid "state: %s (%d)\n"
msgstr "ÑÑŠÑтоÑние: %s (%d)\n"
-#: ../cli/src/connections.c:1209
+#: ../cli/src/connections.c:1299
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Грешка при активиране на връзката: %s."
-#: ../cli/src/connections.c:1226 ../cli/src/devices.c:909
+#: ../cli/src/connections.c:1316 ../cli/src/devices.c:1064
#, c-format
msgid "Error: Timeout %d sec expired."
-msgstr "ПроÑрочено е времето от %d Ñек."
+msgstr "Грешка: проÑрочване на времето от %d Ñек."
-#: ../cli/src/connections.c:1269
+#: ../cli/src/connections.c:1359
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Грешка при активиране на връзката: %s"
-#: ../cli/src/connections.c:1283
+#: ../cli/src/connections.c:1373
#, c-format
-#| msgid "Error retrieving VPN connection '%s'"
msgid "Error: Obtaining active connection for '%s' failed."
msgstr "Грешка при получаване на активната връзка за „%s“."
-#: ../cli/src/connections.c:1292
+#: ../cli/src/connections.c:1382
#, c-format
-#| msgid "No active connections!"
msgid "Active connection state: %s\n"
msgstr "СъÑтоÑние на активната връзка: %s\n"
-#: ../cli/src/connections.c:1293
+#: ../cli/src/connections.c:1383
#, c-format
-#| msgid "No active connections!"
msgid "Active connection path: %s\n"
msgstr "Път на активната връзка: %s\n"
-#: ../cli/src/connections.c:1347 ../cli/src/connections.c:1468
+#: ../cli/src/connections.c:1438 ../cli/src/connections.c:1568
#, c-format
-#| msgid "Error retrieving VPN connection '%s'"
msgid "Error: Unknown connection: %s."
msgstr "Ðепозната връзка „%s“."
-#: ../cli/src/connections.c:1382 ../cli/src/devices.c:980
+#: ../cli/src/connections.c:1482 ../cli/src/devices.c:1135
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Ограничението на времето „%s“ не е правилно."
-#: ../cli/src/connections.c:1395 ../cli/src/connections.c:1485
+#: ../cli/src/connections.c:1495 ../cli/src/connections.c:1585
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr ""
"Указването на идентификатор или универÑален идентификатор (uuid) е "
"задължително."
-#: ../cli/src/connections.c:1415
+#: ../cli/src/connections.c:1515
#, c-format
msgid "Error: No suitable device found: %s."
-msgstr "Ðе е намерено подходÑщо уÑтройÑтво – %s."
+msgstr "Ðе е намерено подходÑщо уÑтройÑтво — %s."
-#: ../cli/src/connections.c:1417
+#: ../cli/src/connections.c:1517
#, c-format
msgid "Error: No suitable device found."
-msgstr "Ðе е намерено подходÑщо уÑтройÑтво."
+msgstr "Ðе е намерено подходÑщо уÑтройÑтво."
-#: ../cli/src/connections.c:1512
+#: ../cli/src/connections.c:1612
#, c-format
-#| msgid "Connection Information"
msgid "Warning: Connection not active\n"
msgstr "Предупреждение: Връзката не е активна\n"
-#: ../cli/src/connections.c:1569
+#: ../cli/src/connections.c:1669
#, c-format
msgid "Error: 'con' command '%s' is not valid."
-msgstr "„con“ не поддържа команда „%s“."
+msgstr "Грешка: „con“ не поддържа команда „%s“."
-#: ../cli/src/connections.c:1605
+#: ../cli/src/connections.c:1705
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Грешка при Ñвързване Ñ D-Bus."
-#: ../cli/src/connections.c:1612
+#: ../cli/src/connections.c:1712
#, c-format
msgid "Error: Could not get system settings."
msgstr "Грешка при получаване на ÑиÑтемните наÑтройки."
-#: ../cli/src/connections.c:1620
+#: ../cli/src/connections.c:1720
#, c-format
msgid "Error: Could not get user settings."
msgstr "Грешка при получаване на потребителÑките наÑтройки."
-#: ../cli/src/connections.c:1630
+#: ../cli/src/connections.c:1730
#, c-format
msgid "Error: Can't obtain connections: settings services are not running."
msgstr ""
-"Грешка при получаване на ÑпиÑъка Ñ Ð²Ñ€ÑŠÐ·ÐºÐ¸ – уÑлугите за наÑтройки не Ñа "
+"Грешка при получаване на ÑпиÑъка Ñ Ð²Ñ€ÑŠÐ·ÐºÐ¸ — уÑлугите за наÑтройки не Ñа "
"налични."
#. 0
#. 9
-#: ../cli/src/devices.c:61 ../cli/src/devices.c:89 ../cli/src/devices.c:184
+#. 3
+#: ../cli/src/devices.c:62 ../cli/src/devices.c:93 ../cli/src/devices.c:201
+#: ../cli/src/devices.c:216
msgid "DEVICE"
msgstr "УСТРОЙСТВО"
#. 1
#. 4
#. 0
-#: ../cli/src/devices.c:63 ../cli/src/devices.c:93
+#: ../cli/src/devices.c:64 ../cli/src/devices.c:97
#: ../cli/src/network-manager.c:36
msgid "STATE"
msgstr "СЪСТОЯÐИЕ"
-#: ../cli/src/devices.c:72
+#: ../cli/src/devices.c:74
msgid "GENERAL"
msgstr "ОБЩИ"
#. 0
-#: ../cli/src/devices.c:73
+#: ../cli/src/devices.c:75
msgid "CAPABILITIES"
msgstr "ВЪЗМОЖÐОСТИ"
#. 1
-#: ../cli/src/devices.c:74
+#: ../cli/src/devices.c:76
msgid "WIFI-PROPERTIES"
-msgstr "БЕЗЖИЧÐИ-Ð¥ÐРÐКТЕРИСТИКИ"
+msgstr "БЕЗЖ-Ð¥ÐРÐКТЕРИСТИКИ"
#. 2
-#: ../cli/src/devices.c:75
-#| msgid "PEAP"
+#: ../cli/src/devices.c:77
msgid "AP"
-msgstr "ТД"
+msgstr "ТЧК-ДСТП"
#. 3
-#: ../cli/src/devices.c:76
+#: ../cli/src/devices.c:78
msgid "WIRED-PROPERTIES"
msgstr "ЖИЧÐИ-Ð¥ÐРÐКТЕРИСТИКИ"
#. 4
-#: ../cli/src/devices.c:77
+#: ../cli/src/devices.c:79
+msgid "WIMAX-PROPERTIES"
+msgstr "WIMAX-Ð¥ÐРÐКТЕРИСТИКИ"
+
+#. 5
+#. 0
+#: ../cli/src/devices.c:80 ../cli/src/devices.c:213
+msgid "NSP"
+msgstr "ДОСТÐВЧИК"
+
+#. 6
+#: ../cli/src/devices.c:81
msgid "IP4-SETTINGS"
msgstr "ПÐРÐМЕТРИ-IP4"
-#. 5
-#: ../cli/src/devices.c:78
+#. 7
+#: ../cli/src/devices.c:82
msgid "IP4-DNS"
msgstr "IP4-DNS"
-#. 6
-#: ../cli/src/devices.c:79
+#. 8
+#: ../cli/src/devices.c:83
msgid "IP6-SETTINGS"
msgstr "ПÐРÐМЕТРИ-IP6"
-#. 7
-#: ../cli/src/devices.c:80
+#. 9
+#: ../cli/src/devices.c:84
msgid "IP6-DNS"
msgstr "IP6-DNS"
#. 2
-#: ../cli/src/devices.c:91
+#: ../cli/src/devices.c:95
msgid "DRIVER"
msgstr "ДРÐЙВЕР"
#. 3
-#: ../cli/src/devices.c:92
+#: ../cli/src/devices.c:96
msgid "HWADDR"
msgstr "Ð¥ÐРДУЕРЕÐ-ÐДРЕС"
#. 0
-#: ../cli/src/devices.c:102
+#: ../cli/src/devices.c:106
msgid "CARRIER-DETECT"
msgstr "СИГÐÐЛ-ОТКР."
#. 1
-#: ../cli/src/devices.c:103
+#: ../cli/src/devices.c:107
msgid "SPEED"
msgstr "СКОРОСТ"
#. 0
-#: ../cli/src/devices.c:112
+#: ../cli/src/devices.c:116
msgid "CARRIER"
msgstr "СИГÐÐЛ"
#. 0
-#: ../cli/src/devices.c:122
+#: ../cli/src/devices.c:126
msgid "WEP"
msgstr "WEP"
#. 1
-#: ../cli/src/devices.c:123
+#: ../cli/src/devices.c:127
msgid "WPA"
msgstr "WPA"
#. 2
-#: ../cli/src/devices.c:124
-#| msgid "WPA2 TKIP"
+#: ../cli/src/devices.c:128
msgid "WPA2"
msgstr "WPA2"
#. 3
-#: ../cli/src/devices.c:125
+#: ../cli/src/devices.c:129
msgid "TKIP"
msgstr "TKIP"
#. 4
-#: ../cli/src/devices.c:126
-#| msgid "AES-CCMP"
+#: ../cli/src/devices.c:130
msgid "CCMP"
msgstr "CCMP"
#. 0
-#: ../cli/src/devices.c:135 ../cli/src/devices.c:146
+#: ../cli/src/devices.c:139
+msgid "CTR-FREQ"
+msgstr "CTR-FREQ"
+
+#. 1
+#: ../cli/src/devices.c:140
+msgid "RSSI"
+msgstr "RSSI"
+
+#. 2
+#: ../cli/src/devices.c:141
+msgid "CINR"
+msgstr "CINR"
+
+#. 3
+#: ../cli/src/devices.c:142
+msgid "TX-POW"
+msgstr "TX-POW"
+
+#. 4
+#: ../cli/src/devices.c:143
+msgid "BSID"
+msgstr "BSID"
+
+#. 0
+#: ../cli/src/devices.c:152 ../cli/src/devices.c:163
msgid "ADDRESS"
msgstr "ÐДРЕС"
#. 1
-#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+#: ../cli/src/devices.c:153 ../cli/src/devices.c:164
msgid "PREFIX"
msgstr "ПРЕФИКС"
#. 2
-#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+#: ../cli/src/devices.c:154 ../cli/src/devices.c:165
msgid "GATEWAY"
msgstr "ШЛЮЗ"
#. 0
-#: ../cli/src/devices.c:157 ../cli/src/devices.c:166
+#: ../cli/src/devices.c:174 ../cli/src/devices.c:183
msgid "DNS"
msgstr "DNS"
#. 0
-#: ../cli/src/devices.c:175
+#: ../cli/src/devices.c:192
msgid "SSID"
msgstr "SSID"
#. 1
-#: ../cli/src/devices.c:176
+#: ../cli/src/devices.c:193
msgid "BSSID"
msgstr "BSSID"
#. 2
-#: ../cli/src/devices.c:177
+#: ../cli/src/devices.c:194
msgid "MODE"
msgstr "РЕЖИМ"
#. 3
-#: ../cli/src/devices.c:178
+#: ../cli/src/devices.c:195
msgid "FREQ"
msgstr "ЧЕСТОТÐ"
#. 4
-#: ../cli/src/devices.c:179
+#: ../cli/src/devices.c:196
msgid "RATE"
msgstr "СКОРОСТ-ПРЕДÐÐ’ÐÐЕ"
#. 5
-#: ../cli/src/devices.c:180
+#. 1
+#: ../cli/src/devices.c:197 ../cli/src/devices.c:214
msgid "SIGNAL"
msgstr "СИГÐÐЛ"
#. 6
-#: ../cli/src/devices.c:181
+#: ../cli/src/devices.c:198
msgid "SECURITY"
msgstr "СИГУРÐОСТ"
#. 7
-#: ../cli/src/devices.c:182
+#: ../cli/src/devices.c:199
msgid "WPA-FLAGS"
msgstr "ФЛÐГОВЕ-WPA"
#. 8
-#: ../cli/src/devices.c:183
+#: ../cli/src/devices.c:200
msgid "RSN-FLAGS"
msgstr "ФЛÐГОВЕ-RSN"
#. 10
-#: ../cli/src/devices.c:185
+#. 4
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:217
msgid "ACTIVE"
msgstr "ÐКТИВÐÐ"
-#: ../cli/src/devices.c:208
+#: ../cli/src/devices.c:242
#, c-format
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
"\n"
-" COMMAND := { status | list | disconnect | wifi }\n"
+" COMMAND := { status | list | disconnect | wifi | wimax }\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"
"\n"
-" КОМÐÐДР:= { status | list | disconnect | wifi }\n"
+" КОМÐÐДР:= { status | list | disconnect | wifi | wimax}\n"
"\n"
" status\n"
" list [ iface <интерфейÑ>]\n"
" disconnect iface <интерфейÑ> [--nowait] [--timeout <време>]\n"
" wifi [list [iface <интерфейÑ>] [hwaddr <хардуерен адреÑ>]]\n"
-"\n"
+" wimax [list [iface <интерфейÑ>] [nsp <име>]]\n"
-#: ../cli/src/devices.c:228
+#: ../cli/src/devices.c:263
msgid "unmanaged"
msgstr "не Ñе управлÑва"
-#: ../cli/src/devices.c:230
+#: ../cli/src/devices.c:265
msgid "unavailable"
msgstr "не е налично"
# Ñтава дума за уÑтройÑтво
# или за общото ÑÑŠÑтоÑние на N-M
-#: ../cli/src/devices.c:232 ../cli/src/network-manager.c:91
-#| msgid "Disconnected"
+#: ../cli/src/devices.c:267 ../cli/src/network-manager.c:95
msgid "disconnected"
msgstr "без връзка"
-#: ../cli/src/devices.c:234
+#: ../cli/src/devices.c:269
msgid "connecting (prepare)"
msgstr "Ñвързване (подготовка)"
-#: ../cli/src/devices.c:236
-#| msgid "Connection Information"
+#: ../cli/src/devices.c:271
msgid "connecting (configuring)"
msgstr "Ñвързване (наÑтройка)"
-#: ../cli/src/devices.c:238
+#: ../cli/src/devices.c:273
msgid "connecting (need authentication)"
msgstr "Ñвързване (нужна е идентификациÑ)"
-#: ../cli/src/devices.c:240
-#| msgid "Connection Information"
+#: ../cli/src/devices.c:275
msgid "connecting (getting IP configuration)"
msgstr "Ñвързване (получаване на наÑтройките за IP)"
# Ñтава дума и за конкретно уÑтройÑтво,
# и за NM като цÑло
-#: ../cli/src/devices.c:242 ../cli/src/network-manager.c:89
-#| msgid "Disconnected"
+#: ../cli/src/devices.c:277 ../cli/src/network-manager.c:93
msgid "connected"
msgstr "има връзка"
-#: ../cli/src/devices.c:244
-#| msgid "Connection Established"
+#: ../cli/src/devices.c:279
msgid "connection failed"
msgstr "неуÑпешно Ñвързване"
-# вид уÑтройÑтво (жично, безжично, телефон, bluetooth) или вид мрежа (инфраÑтруктура, ad-hoc)
-#: ../cli/src/devices.c:267 ../cli/src/devices.c:424
+# вид уÑтройÑтво (жично, безжично, телефон, Bluetooth) или вид мрежа (инфраÑтруктура, ad-hoc)
+#: ../cli/src/devices.c:304 ../cli/src/devices.c:461 ../cli/src/devices.c:504
msgid "Unknown"
msgstr "Ðепознат"
# низът Ñе използва когато дадена безжична мрежа нÑма флагове от рода на pair_ccmp, pair_wpe140 и Ñ‚.н.
-#: ../cli/src/devices.c:299
-#| msgid "none"
+#: ../cli/src/devices.c:336
msgid "(none)"
msgstr "(без)"
-#: ../cli/src/devices.c:324
+#: ../cli/src/devices.c:361
#, c-format
msgid "%s: error converting IP4 address 0x%X"
msgstr "%s: грешка при преобразуване на Ð°Ð´Ñ€ÐµÑ IP4 0x%X"
-#: ../cli/src/devices.c:393
+#: ../cli/src/devices.c:430
#, c-format
msgid "%u MHz"
-msgstr "%u МХц"
+msgstr "%u MHz"
-#: ../cli/src/devices.c:394
+#: ../cli/src/devices.c:431
#, c-format
-#| msgid "%d Mb/s"
msgid "%u MB/s"
-msgstr "%u МБ/Ñ"
+msgstr "%u MB/s"
-#: ../cli/src/devices.c:403
+#: ../cli/src/devices.c:440
msgid "Encrypted: "
-msgstr "Шифроване: "
+msgstr "Шифриране: "
-#: ../cli/src/devices.c:408
+#: ../cli/src/devices.c:445
msgid "WEP "
msgstr "WEP"
-#: ../cli/src/devices.c:410
-#| msgid "WPA TKIP"
+#: ../cli/src/devices.c:447
msgid "WPA "
msgstr "WPA"
-#: ../cli/src/devices.c:412
-#| msgid "WPA2 TKIP"
+#: ../cli/src/devices.c:449
msgid "WPA2 "
msgstr "WPA2"
-#: ../cli/src/devices.c:415
-#| msgid "WPA Enterprise"
+#: ../cli/src/devices.c:452
msgid "Enterprise "
msgstr "ИндуÑÑ‚Ñ€."
# Режима на мрежата
-#: ../cli/src/devices.c:424
+#: ../cli/src/devices.c:461
msgid "Ad-Hoc"
-msgstr "Специален"
+msgstr "Инцидентен (ад хок)"
# Режима на мрежата
-#: ../cli/src/devices.c:424
+#: ../cli/src/devices.c:461
msgid "Infrastructure"
msgstr "ИнфраÑтруктурен"
-#: ../cli/src/devices.c:486
+#: ../cli/src/devices.c:495
+msgid "Home"
+msgstr "Ðа доÑтавчика"
+
+#: ../cli/src/devices.c:498
+msgid "Partner"
+msgstr "Ðа партньор"
+
+#: ../cli/src/devices.c:501
+msgid "Roaming"
+msgstr "Роуминг"
+
+#: ../cli/src/devices.c:570
#, c-format
msgid "Error: 'dev list': %s"
-msgstr "Грешка при „dev list“ – %s"
+msgstr "Грешка при „dev list“ — %s"
-#: ../cli/src/devices.c:488
+#: ../cli/src/devices.c:572
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
-msgstr "Грешка при „dev list“ – %s; допуÑтимите полета Ñа %s"
+msgstr "Грешка при „dev list“ — %s; допуÑтимите полета Ñа %s"
-#: ../cli/src/devices.c:497
+#: ../cli/src/devices.c:581
msgid "Device details"
msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° уÑтройÑтвото"
# или е драйвер,
# или е грешка при прекъÑване на връзката
-#: ../cli/src/devices.c:527 ../cli/src/devices.c:925
+#: ../cli/src/devices.c:613 ../cli/src/devices.c:1080
msgid "(unknown)"
msgstr "(нÑма информациÑ)"
# хардуерен адреÑ
-#: ../cli/src/devices.c:528
-#| msgid "(unknown)"
+#: ../cli/src/devices.c:614
msgid "unknown)"
msgstr "(нÑма информациÑ)"
-#: ../cli/src/devices.c:554
+#: ../cli/src/devices.c:640
#, c-format
-#| msgid "%d Mb/s"
msgid "%u Mb/s"
-msgstr "%u Мб/Ñ"
+msgstr "%u Mb/s"
# дадено уÑтройÑтво има Ñигнал по жицата
#. Print header
#. "WIRED-PROPERTIES"
-#: ../cli/src/devices.c:627
-#| msgid "None"
+#: ../cli/src/devices.c:713
msgid "on"
msgstr "Ñвързано"
-#: ../cli/src/devices.c:627
+#: ../cli/src/devices.c:713
msgid "off"
msgstr "без връзка"
-#: ../cli/src/devices.c:808
+#: ../cli/src/devices.c:963
#, c-format
msgid "Error: 'dev status': %s"
-msgstr "Грешка при „dev status“ – %s"
+msgstr "Грешка при „dev status“ — %s"
-#: ../cli/src/devices.c:810
+#: ../cli/src/devices.c:965
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
-msgstr "Грешка при „dev status“ – %s; допуÑтимите полета Ñа %s"
+msgstr "Грешка при „dev status“ — %s; допуÑтимите полета Ñа %s"
-#: ../cli/src/devices.c:817
+#: ../cli/src/devices.c:972
msgid "Status of devices"
msgstr "СъÑтоÑние на уÑтройÑтвата"
-#: ../cli/src/devices.c:845
+#: ../cli/src/devices.c:1000
#, c-format
msgid "Error: '%s' argument is missing."
-msgstr "ЛипÑва аргумент за „%s“."
+msgstr "Грешка: липÑва аргумент за „%s“."
-#: ../cli/src/devices.c:874 ../cli/src/devices.c:1013
-#: ../cli/src/devices.c:1136
+#: ../cli/src/devices.c:1029 ../cli/src/devices.c:1168
+#: ../cli/src/devices.c:1291 ../cli/src/devices.c:1497
#, c-format
msgid "Error: Device '%s' not found."
-msgstr "УÑтройÑтвото „%s“ не е намерено."
+msgstr "Грешка: уÑтройÑтвото „%s“ не е открито."
-#: ../cli/src/devices.c:897
+#: ../cli/src/devices.c:1052
#, c-format
msgid "Success: Device '%s' successfully disconnected."
-msgstr "Връзката на уÑтройÑтвото „%s“ е прекъÑната."
+msgstr "УÑпех: връзката на уÑтройÑтвото „%s“ е прекъÑната."
-#: ../cli/src/devices.c:922
+#: ../cli/src/devices.c:1077
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
-msgstr "Грешка при прекъÑване на връзката на уÑтройÑтвото „%s“ (%s) – %s"
+msgstr "Грешка при прекъÑване на връзката на уÑтройÑтвото „%s“ (%s) — %s"
-#: ../cli/src/devices.c:930
+#: ../cli/src/devices.c:1085
#, c-format
msgid "Device state: %d (%s)\n"
msgstr "СъÑтоÑние на уÑтройÑтвото: %d (%s)\n"
-#: ../cli/src/devices.c:994
+#: ../cli/src/devices.c:1149
#, c-format
msgid "Error: iface has to be specified."
-msgstr "Указването на „iface“ е задължително."
+msgstr "Грешка: указването на „iface“ е задължително."
-#: ../cli/src/devices.c:1112
+#: ../cli/src/devices.c:1267
#, c-format
msgid "Error: 'dev wifi': %s"
-msgstr "Грешка при „dev wifi“ – %s"
+msgstr "Грешка при „dev wifi“ — %s"
-#: ../cli/src/devices.c:1114
+#: ../cli/src/devices.c:1269
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
-msgstr "Грешка при „dev wifi“ – %s; допуÑтимите полета Ñа %s"
+msgstr "Грешка при „dev wifi“ — %s; допуÑтимите полета Ñа %s"
-#: ../cli/src/devices.c:1121
+#: ../cli/src/devices.c:1276
msgid "WiFi scan list"
msgstr "Открити безжични мрежи"
-#: ../cli/src/devices.c:1156 ../cli/src/devices.c:1210
+#: ../cli/src/devices.c:1311 ../cli/src/devices.c:1365
+#: ../cli/src/devices.c:1559
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
msgstr "Ðе е открита точка за доÑтъп Ñ Ñ…Ð°Ñ€Ð´ÑƒÐµÑ€ÐµÐ½ Ð°Ð´Ñ€ÐµÑ â€ž%s“."
-#: ../cli/src/devices.c:1173
+#: ../cli/src/devices.c:1328
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
msgstr "„%s“ не е уÑтройÑтво за безжична мрежа."
-#: ../cli/src/devices.c:1237
+#: ../cli/src/devices.c:1392
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
msgstr "„%s“ не е правилна команда за „dev wifi“."
-#: ../cli/src/devices.c:1284
+#: ../cli/src/devices.c:1473
+#, c-format
+msgid "Error: 'dev wimax': %s"
+msgstr "Грешка при „dev wimax“ — %s"
+
+#: ../cli/src/devices.c:1475
+#, c-format
+msgid "Error: 'dev wimax': %s; allowed fields: %s"
+msgstr "Грешка при „dev wifi“ — %s; допуÑтимите полета Ñа %s"
+
+#: ../cli/src/devices.c:1482
+msgid "WiMAX NSP list"
+msgstr "СпиÑък Ñ Ð´Ð¾Ñтавчици на WiMAX"
+
+#: ../cli/src/devices.c:1517
+#, c-format
+msgid "Error: NSP with name '%s' not found."
+msgstr "Грешка: доÑтавчикът „%s“ не е открит."
+
+#: ../cli/src/devices.c:1528
+#, c-format
+msgid "Error: Device '%s' is not a WiMAX device."
+msgstr "„%s“ не е уÑтройÑтво за мрежа по WiMAX."
+
+#: ../cli/src/devices.c:1586
+#, c-format
+msgid "Error: 'dev wimax' command '%s' is not valid."
+msgstr "„%s“ не е правилна команда за „dev wimax“."
+
+#: ../cli/src/devices.c:1637
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
msgstr "„%s“ не е правилна команда за „dev“."
@@ -945,144 +998,169 @@ msgstr "МОБ. Ð¥ÐРДУЕР"
msgid "WWAN"
msgstr "МОБ. МРЕЖÐ"
-#: ../cli/src/network-manager.c:64
+#. 6
+#: ../cli/src/network-manager.c:42
+msgid "WIMAX-HARDWARE"
+msgstr "Ð¥ÐРДУЕР-WIMAX"
+
+#. 7
+#: ../cli/src/network-manager.c:43
+msgid "WIMAX"
+msgstr "WIMAX"
+
+#: ../cli/src/network-manager.c:67
#, c-format
msgid ""
"Usage: nmcli nm { COMMAND | help }\n"
"\n"
-" COMMAND := { status | enable | sleep | wifi | wwan }\n"
+" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\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 }\n"
+" КОМÐÐДР:= { status | enable | sleep | wifi | wwan | wimax }\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:85
+#: ../cli/src/network-manager.c:89
msgid "asleep"
msgstr "ÑпÑщ"
-#: ../cli/src/network-manager.c:87
-#| msgid "C_onnect"
+#: ../cli/src/network-manager.c:91
msgid "connecting"
msgstr "Ñвързване"
-#: ../cli/src/network-manager.c:128
+#: ../cli/src/network-manager.c:133
#, c-format
msgid "Error: 'nm status': %s"
-msgstr "Грешка при „nm status“ – %s"
+msgstr "Грешка при „nm status“ — %s"
-#: ../cli/src/network-manager.c:130
+#: ../cli/src/network-manager.c:135
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
-msgstr "Грешка при „nm status“ – %s; допуÑтимите полета Ñа %s"
+msgstr "Грешка при „nm status“ — %s; допуÑтимите полета Ñа %s"
-#: ../cli/src/network-manager.c:137
-#| msgid "NetworkManager Applet"
+#: ../cli/src/network-manager.c:142
msgid "NetworkManager status"
msgstr "СъÑтоÑние на NetworkManager"
#. Print header
-#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
-#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
-#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
-#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+#: ../cli/src/network-manager.c:149 ../cli/src/network-manager.c:150
+#: ../cli/src/network-manager.c:151 ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:153 ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:257
+#: ../cli/src/network-manager.c:306 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:370
msgid "enabled"
msgstr "включено"
-#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
-#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
-#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
-#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+#: ../cli/src/network-manager.c:149 ../cli/src/network-manager.c:150
+#: ../cli/src/network-manager.c:151 ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:153 ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:257
+#: ../cli/src/network-manager.c:306 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:370
msgid "disabled"
msgstr "изключено"
-#: ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:159
msgid "running"
msgstr "включен"
-#: ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:159
msgid "not running"
msgstr "изключен"
-#: ../cli/src/network-manager.c:175
+#: ../cli/src/network-manager.c:184
#, c-format
msgid "Error: Couldn't connect to system bus: %s"
-msgstr "Грешка при Ñвързване към ÑиÑтемната шина – %s"
+msgstr "Грешка при Ñвързване към ÑиÑтемната шина — %s"
-#: ../cli/src/network-manager.c:186
+#: ../cli/src/network-manager.c:195
#, c-format
msgid "Error: Couldn't create D-Bus object proxy."
msgstr "Грешка при Ñъздаване на обект-поÑредник за D-Bus."
-#: ../cli/src/network-manager.c:192
+#: ../cli/src/network-manager.c:201
#, c-format
msgid "Error in sleep: %s"
-msgstr "Грешка при приÑпиване – %s"
+msgstr "Грешка при приÑпиване — %s"
-#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286
-#: ../cli/src/network-manager.c:318
+#: ../cli/src/network-manager.c:247 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328 ../cli/src/network-manager.c:360
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "СтойноÑтта „%s“ за „--fields“ не е правилна; допуÑтимите полета Ñа %s"
-#: ../cli/src/network-manager.c:245
-#| msgid "Networking disabled"
+#: ../cli/src/network-manager.c:255
msgid "Networking enabled"
msgstr "Мрежата е включена"
-#: ../cli/src/network-manager.c:256
+#: ../cli/src/network-manager.c:266
#, c-format
msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
msgstr ""
-"ÐедопуÑтим аргумент на „enable“ – „%s“. Използвайте „true“ или „false“."
+"Грешка: неправилен аргумент на „enable“ — „%s“. Използвайте „true“ или "
+"„false“."
-#: ../cli/src/network-manager.c:265
+#: ../cli/src/network-manager.c:275
#, c-format
msgid "Error: Sleeping status is not exported by NetworkManager."
msgstr "NetworkManager не предоÑÑ‚Ð°Ð²Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° приÑпиването."
-#: ../cli/src/network-manager.c:273
+#: ../cli/src/network-manager.c:283
#, c-format
msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
msgstr ""
-"„%s“ не е правилен параметър за „sleep“. Използвайте „true“ или „false“."
+"Грешка: „%s“ не е правилен параметър за „sleep“. Използвайте „true“ или "
+"„false“."
-#: ../cli/src/network-manager.c:294
+#: ../cli/src/network-manager.c:304
msgid "WiFi enabled"
msgstr "Безжичната мрежа е включена"
-#: ../cli/src/network-manager.c:305
+#: ../cli/src/network-manager.c:315
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
-msgstr "„%s“ не е правилен параметър за „wifi“."
+msgstr "Грешка: „%s“ не е правилен параметър за „wifi“."
-#: ../cli/src/network-manager.c:326
+#: ../cli/src/network-manager.c:336
msgid "WWAN enabled"
msgstr "Мобилната мрежа е включена"
-#: ../cli/src/network-manager.c:337
+#: ../cli/src/network-manager.c:347
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
-msgstr "„%s“ не е правилен параметър за „wwan“."
+msgstr "Грешка: „%s“ не е правилен параметър за „wwan“."
+
+#: ../cli/src/network-manager.c:368
+msgid "WiMAX enabled"
+msgstr "Мрежата по WiMAX е включена"
-#: ../cli/src/network-manager.c:348
+#: ../cli/src/network-manager.c:379
+#, c-format
+msgid "Error: invalid 'wimax' parameter: '%s'."
+msgstr "Грешка: „%s“ не е правилен параметър за „wimax“."
+
+#: ../cli/src/network-manager.c:390
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
-msgstr "„%s“ не е правилна команда за „nm“."
+msgstr "Грешка: „%s“ не е правилна команда за „nm“."
+# CONTINUE
#: ../cli/src/nmcli.c:69
#, c-format
msgid ""
@@ -1111,12 +1189,13 @@ msgstr ""
" -p[retty] краÑив изход\n"
" -m[ode] tabular|multiline режим на изхода\n"
" -f[ields] <поле1,поле2,…>|all|common извеждани полета\n"
-" -е[scape] yes|no кодиране на разделителите между "
-"колоните в ÑтойноÑтите\n"
+" -е[scape] yes|no екраниране на разделителите "
+"между\n"
+" колоните в ÑтойноÑтите\n"
" -v[ersion] показване на верÑиÑта на "
"програмата\n"
-" -h[elp] показване на тази помощна "
-"информациÑ\n"
+" -h[elp] показване на тази помощна \n"
+" информациÑ\n"
"\n"
"OBJECT\n"
" nm ÑÑŠÑтоÑние на NetworkManager\n"
@@ -1127,42 +1206,42 @@ msgstr ""
#: ../cli/src/nmcli.c:113
#, c-format
msgid "Error: Object '%s' is unknown, try 'nmcli help'."
-msgstr "Обектът „%s“ е непознат. Опитайте Ñ â€žnmcli help“."
+msgstr "Грешка: обектът „%s“ е непознат. Опитайте Ñ â€žnmcli help“."
#: ../cli/src/nmcli.c:143
#, c-format
msgid "Error: Option '--terse' is specified the second time."
-msgstr "ОпциÑта „--terse“ е указана втори път."
+msgstr "Грешка: опциÑта „--terse“ е указана втори път."
#: ../cli/src/nmcli.c:148
#, c-format
msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
-msgstr "ОпциÑта „--terse“ е неÑъвмеÑтима Ñ â€ž--pretty“."
+msgstr "Гешка: опциÑта „--terse“ е неÑъвмеÑтима Ñ â€ž--pretty“."
#: ../cli/src/nmcli.c:156
#, c-format
msgid "Error: Option '--pretty' is specified the second time."
-msgstr "ОпциÑта „--pretty“ е указана втори път."
+msgstr "Грешка: опциÑта „--pretty“ е указана втори път."
#: ../cli/src/nmcli.c:161
#, c-format
msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
-msgstr "ОпциÑта „--pretty“ е неÑъвмеÑтима Ñ â€ž--terse“."
+msgstr "Грешка: опциÑта „--pretty“ е неÑъвмеÑтима Ñ â€ž--terse“."
#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
#, c-format
msgid "Error: missing argument for '%s' option."
-msgstr "ЛипÑва аргумент на опциÑта „%s“."
+msgstr "Грешка: липÑва аргумент на опциÑта „%s“."
#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
#, c-format
msgid "Error: '%s' is not valid argument for '%s' option."
-msgstr "„%s“ не е правилен аргумент за опциÑта „%s“."
+msgstr "Грешка: „%s“ не е правилен аргумент за опциÑта „%s“."
#: ../cli/src/nmcli.c:203
#, c-format
msgid "Error: fields for '%s' options are missing."
-msgstr "ЛипÑват полета за опциите „%s“."
+msgstr "Грешка: липÑват полета за опциите „%s“."
#: ../cli/src/nmcli.c:209
#, c-format
@@ -1172,7 +1251,7 @@ msgstr "nmcli, верÑÐ¸Ñ %s\n"
#: ../cli/src/nmcli.c:215
#, c-format
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
-msgstr "ОпциÑта „%s“ е непозната. Опитайте Ñ â€žnmcli -help“."
+msgstr "Грешка: опциÑта „%s“ е непозната. Опитайте Ñ â€žnmcli -help“."
#: ../cli/src/nmcli.c:234
#, c-format
@@ -1188,82 +1267,79 @@ msgstr "Грешка при Ñвързване Ñ NetworkManager."
msgid "Success"
msgstr "УÑпех"
-#: ../cli/src/settings.c:411
+#: ../cli/src/settings.c:423
#, c-format
msgid "%d (hex-ascii-key)"
msgstr "%d (ключ в шеÑтнайÑетичен запиÑ)"
-#: ../cli/src/settings.c:413
+#: ../cli/src/settings.c:425
#, c-format
-#| msgid "WEP 128-bit Passphrase"
msgid "%d (104/128-bit passphrase)"
msgstr "%d (104/128 битова парола)"
-#: ../cli/src/settings.c:416
+#: ../cli/src/settings.c:428
#, c-format
-#| msgid "(unknown)"
msgid "%d (unknown)"
msgstr "%d (неизвеÑтен)"
-#: ../cli/src/settings.c:442
-#| msgid "(unknown)"
+#: ../cli/src/settings.c:454
msgid "0 (unknown)"
msgstr "0 (неизвеÑтно)"
-#: ../cli/src/settings.c:448
+#: ../cli/src/settings.c:460
msgid "any, "
msgstr "вÑÑка, "
-#: ../cli/src/settings.c:450
+#: ../cli/src/settings.c:462
msgid "900 MHz, "
-msgstr "900 МХц, "
+msgstr "900 MHz, "
-#: ../cli/src/settings.c:452
+#: ../cli/src/settings.c:464
msgid "1800 MHz, "
-msgstr "1800 МХц, "
+msgstr "1800 MHz, "
-#: ../cli/src/settings.c:454
+#: ../cli/src/settings.c:466
msgid "1900 MHz, "
-msgstr "1900 МХц, "
+msgstr "1900 MHz, "
-#: ../cli/src/settings.c:456
+#: ../cli/src/settings.c:468
msgid "850 MHz, "
-msgstr "850 МХц, "
+msgstr "850 MHz, "
-#: ../cli/src/settings.c:458
+#: ../cli/src/settings.c:470
msgid "WCDMA 3GPP UMTS 2100 MHz, "
-msgstr "WCDMA 3GPP UMTS 2100 МХц, "
+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 МХц, "
+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 МХц, "
+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 МХц, "
+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 МХц, "
+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 МХц, "
+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 МХц, "
+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:733
msgid "auto"
msgstr "автоматично"
-#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
-#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+#: ../cli/src/settings.c:728 ../cli/src/settings.c:731
+#: ../cli/src/settings.c:732 ../cli/src/utils.c:172
msgid "not set"
msgstr "не е зададено"
@@ -1287,134 +1363,130 @@ msgstr "ОпциÑта „--terse“ изиÑква указването на â€
msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
msgstr "ОпциÑта „--terse“ изиÑква конкретни ÑтойноÑти за „--fields“, а не „%s“"
-#: ../libnm-util/crypto.c:120
+#: ../libnm-util/crypto.c:121
#, c-format
msgid "PEM key file had no end tag '%s'."
msgstr "КрайниÑÑ‚ етикет „%s“ липÑва в Ñертификат във формат PEM."
-#: ../libnm-util/crypto.c:130
+#: ../libnm-util/crypto.c:131
#, c-format
msgid "Doesn't look like a PEM private key file."
msgstr "Това не изглежда да е Ñертификат във формат PEM Ñ Ñ‡Ð°Ñтен ключ."
-#: ../libnm-util/crypto.c:138
+#: ../libnm-util/crypto.c:139
#, c-format
msgid "Not enough memory to store PEM file data."
msgstr ""
"ÐÑма доÑтатъчно памет за запазването на данните от Ñертификата във формат "
"PEM."
-#: ../libnm-util/crypto.c:154
+#: ../libnm-util/crypto.c:155
#, c-format
msgid "Malformed PEM file: Proc-Type was not first tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM – първиÑÑ‚ етикет не е „Proc-Type“."
+"Ðеправилен Ñертификат във формат PEM — първиÑÑ‚ етикет не е „Proc-Type“."
-#: ../libnm-util/crypto.c:162
+#: ../libnm-util/crypto.c:163
#, 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:173
#, c-format
msgid "Malformed PEM file: DEK-Info was not the second tag."
-msgstr "Ðеправилен Ñертификат във формат PEM – вториÑÑ‚ етикет не е „DEK-Info“."
+msgstr "Ðеправилен Ñертификат във формат PEM — вториÑÑ‚ етикет не е „DEK-Info“."
-#: ../libnm-util/crypto.c:183
+#: ../libnm-util/crypto.c:184
#, c-format
msgid "Malformed PEM file: no IV found in DEK-Info tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM – в етикета „DEK-Info“ липÑва начален "
+"Ðеправилен Ñертификат във формат PEM — в етикета „DEK-Info“ липÑва начален "
"вектор."
-#: ../libnm-util/crypto.c:190
+#: ../libnm-util/crypto.c:191
#, c-format
msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM – неправилен начален вектор в етикета "
+"Ðеправилен Ñертификат във формат PEM — неправилен начален вектор в етикета "
"„DEK-Info“."
-#: ../libnm-util/crypto.c:203
+#: ../libnm-util/crypto.c:204
#, c-format
msgid "Malformed PEM file: unknown private key cipher '%s'."
msgstr ""
-"Ðеправилен Ñертификат във формат PEM – непознат шифър „%s“ за чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+"Ðеправилен Ñертификат във формат PEM — непознат шифър „%s“ за чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto.c:222
+#: ../libnm-util/crypto.c:223
#, c-format
msgid "Could not decode private key."
msgstr "Грешка при декодиране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto.c:267
+#: ../libnm-util/crypto.c:268
#, c-format
msgid "PEM certificate '%s' had no end tag '%s'."
msgstr "КрайниÑÑ‚ етикет „%2$s“ липÑва в Ñертификата във формат PEM — „%1$s“."
-#: ../libnm-util/crypto.c:277
+#: ../libnm-util/crypto.c:278
#, c-format
msgid "Failed to decode certificate."
msgstr "Грешка при декодиране на Ñертификата."
-#: ../libnm-util/crypto.c:286
+#: ../libnm-util/crypto.c:287
#, c-format
msgid "Not enough memory to store certificate data."
msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на данните от Ñертификата."
-#: ../libnm-util/crypto.c:294
+#: ../libnm-util/crypto.c:295
#, c-format
-#| msgid "Not enough memory to store PEM file data."
msgid "Not enough memory to store file data."
msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на данните от файла."
-#: ../libnm-util/crypto.c:324
+#: ../libnm-util/crypto.c:325
#, c-format
msgid "IV must be an even number of bytes in length."
msgstr "ÐачалниÑÑ‚ вектор Ñ‚Ñ€Ñбва да е Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€ четен брой байта."
-#: ../libnm-util/crypto.c:333
+#: ../libnm-util/crypto.c:334
#, c-format
msgid "Not enough memory to store the IV."
msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€."
-#: ../libnm-util/crypto.c:344
+#: ../libnm-util/crypto.c:345
#, c-format
msgid "IV contains non-hexadecimal digits."
msgstr "ÐачалниÑÑ‚ вектор Ñъдържа низ, който не е шеÑтнайÑетично чиÑло."
-#: ../libnm-util/crypto.c:382 ../libnm-util/crypto_gnutls.c:148
+#: ../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
#, c-format
msgid "Private key cipher '%s' was unknown."
msgstr "Шифърът за чаÑтен ключ „%s“ е непознат."
-#: ../libnm-util/crypto.c:391
+#: ../libnm-util/crypto.c:392
#, c-format
-#| msgid "Not enough memory to store decrypted private key."
msgid "Not enough memory to decrypt private key."
-msgstr "ÐÑма доÑтатъчно памет за разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+msgstr "ÐÑма доÑтатъчно памет за дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
-#: ../libnm-util/crypto.c:511
+#: ../libnm-util/crypto.c:512
#, c-format
-#| msgid "Failed to decrypt the private key: %d."
msgid "Unable to determine private key type."
msgstr "Видът на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ не може да Ñе определи."
-#: ../libnm-util/crypto.c:530
+#: ../libnm-util/crypto.c:531
#, c-format
msgid "Not enough memory to store decrypted private key."
-msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на Ñ€Ð°Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñтен ключ."
+msgstr "ÐÑма доÑтатъчно памет за ÑъхранÑване на Ð´ÐµÑˆÐ¸Ñ„Ñ€Ð¸Ñ€Ð°Ð½Ð¸Ñ Ñ‡Ð°Ñтен ключ."
#: ../libnm-util/crypto_gnutls.c:49
-#| msgid "Failed to initialize the decryption context."
msgid "Failed to initialize the crypto engine."
-msgstr "Грешка при инициализиране на модула за шифроване."
+msgstr "Грешка при инициализиране на модула за шифриране."
#: ../libnm-util/crypto_gnutls.c:93
#, c-format
msgid "Failed to initialize the MD5 engine: %s / %s."
-msgstr "Грешка при инициализиране на модула за MD5 – %s / %s."
+msgstr "Грешка при инициализиране на модула за MD5 — %s / %s."
#: ../libnm-util/crypto_gnutls.c:156
#, c-format
@@ -1424,108 +1496,99 @@ msgstr "Ðеправилен начален вектор (Ñ‚Ñ€Ñбва да е Ð
#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
#, c-format
msgid "Not enough memory for decrypted key buffer."
-msgstr "ÐÑма доÑтатъчно памет за буфера за Ñ€Ð°Ð·ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+msgstr "ÐÑма доÑтатъчно памет за буфера за дешифриране."
#: ../libnm-util/crypto_gnutls.c:173
#, c-format
msgid "Failed to initialize the decryption cipher context: %s / %s."
-msgstr "Грешка при инициализиране на контекÑта за разшифроване – %s / %s."
+msgstr "Грешка при инициализиране на контекÑта за дешифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:182
#, c-format
msgid "Failed to set symmetric key for decryption: %s / %s."
-msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за разшифроване – %s / %s."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за дешифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:191
#, c-format
msgid "Failed to set IV for decryption: %s / %s."
-msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за разшифроване – %s / %s."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за дешифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:200
#, c-format
msgid "Failed to decrypt the private key: %s / %s."
-msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %s / %s."
+msgstr "Грешка при дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ — %s / %s."
#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
#, c-format
-#| msgid "Failed to decrypt the private key: %d."
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr ""
-"Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – неочаквана дължина на "
+"Грешка при дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ — неочаквана дължина на "
"подравнÑването."
#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
#, c-format
-#| msgid "Failed to decrypt the private key: %d."
msgid "Failed to decrypt the private key."
-msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
+msgstr "Грешка при дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡."
#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
#, c-format
msgid "Could not allocate memory for encrypting."
-msgstr "ÐÑма доÑтатъчно памет за буфер при шифроване."
+msgstr "ÐÑма доÑтатъчно памет за буфер при шифриране."
#: ../libnm-util/crypto_gnutls.c:294
#, c-format
-#| msgid "Failed to initialize the decryption cipher context: %s / %s."
msgid "Failed to initialize the encryption cipher context: %s / %s."
-msgstr "Грешка при инициализиране на контекÑта за шифроване – %s / %s."
+msgstr "Грешка при инициализиране на контекÑта за шифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:303
#, c-format
-#| msgid "Failed to set symmetric key for decryption: %s / %s."
msgid "Failed to set symmetric key for encryption: %s / %s."
-msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифроване – %s / %s."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:313
#, c-format
-#| msgid "Failed to set IV for decryption: %s / %s."
msgid "Failed to set IV for encryption: %s / %s."
-msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифроване – %s / %s."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифриране — %s / %s."
#: ../libnm-util/crypto_gnutls.c:322
#, c-format
-#| msgid "Failed to decrypt the private key: %s / %s."
msgid "Failed to encrypt the data: %s / %s."
-msgstr "Грешка при шифроване на данните – %s / %s."
+msgstr "Грешка при шифриране на данните — %s / %s."
#: ../libnm-util/crypto_gnutls.c:362
#, c-format
msgid "Error initializing certificate data: %s"
-msgstr "Грешка при инициализиране на данните от Ñертификата – %s"
+msgstr "Грешка при инициализиране на данните от Ñертификата — %s"
#: ../libnm-util/crypto_gnutls.c:384
#, c-format
msgid "Couldn't decode certificate: %s"
-msgstr "Грешка при декодиране на Ñертификата – %s"
+msgstr "Грешка при декодиране на Ñертификата — %s"
#: ../libnm-util/crypto_gnutls.c:408
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
-msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 – %s"
+msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 — %s"
#: ../libnm-util/crypto_gnutls.c:421
#, c-format
-#| msgid "Couldn't decode certificate: %s"
msgid "Couldn't decode PKCS#12 file: %s"
-msgstr "Грешка при декодиране на файла PKCS#12 – %s"
+msgstr "Грешка при декодиране на файла PKCS#12 — %s"
#: ../libnm-util/crypto_gnutls.c:433
#, c-format
-#| msgid "Couldn't decode certificate: %s"
msgid "Couldn't verify PKCS#12 file: %s"
-msgstr "Грешка при проверка на файла PKCS#12 – %s"
+msgstr "Грешка при проверка на файла PKCS#12 — %s"
#: ../libnm-util/crypto_nss.c:56
#, c-format
-#| msgid "Failed to initialize the MD5 engine: %s / %s."
msgid "Failed to initialize the crypto engine: %d."
-msgstr "Грешка при инициализиране на модула за шифроване – %d."
+msgstr "Грешка при инициализиране на модула за шифриране — %d."
#: ../libnm-util/crypto_nss.c:111
#, c-format
msgid "Failed to initialize the MD5 context: %d."
-msgstr "Грешка при инициализиране на контекÑта за MD5 – %d."
+msgstr "Грешка при инициализиране на контекÑта за MD5 — %d."
#: ../libnm-util/crypto_nss.c:179
#, c-format
@@ -1535,135 +1598,123 @@ msgstr "Ðеправилна дължина на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ (
#: ../libnm-util/crypto_nss.c:196
#, c-format
msgid "Failed to initialize the decryption cipher slot."
-msgstr "Грешка при инициализиране на буфер за шифъра за разшифроване."
+msgstr "Грешка при инициализиране на буфер за шифъра за дешифриране."
#: ../libnm-util/crypto_nss.c:206
#, c-format
msgid "Failed to set symmetric key for decryption."
-msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за разшифроване."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за дешифриране."
#: ../libnm-util/crypto_nss.c:216
#, c-format
msgid "Failed to set IV for decryption."
-msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за разшифроване."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за дешифриране."
#: ../libnm-util/crypto_nss.c:224
#, c-format
msgid "Failed to initialize the decryption context."
-msgstr "Грешка при инициализиране на контекÑта за разшифроване."
+msgstr "Грешка при инициализиране на контекÑта за дешифриране."
#: ../libnm-util/crypto_nss.c:237
#, c-format
msgid "Failed to decrypt the private key: %d."
-msgstr "Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %d."
+msgstr "Грешка при дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ — %d."
#: ../libnm-util/crypto_nss.c:245
#, c-format
-#| msgid "Failed to decrypt the private key: %d."
msgid "Failed to decrypt the private key: decrypted data too large."
msgstr ""
-"Грешка при разшифроване на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – твърде много разшифровани данни."
+"Грешка при дешифриране на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ — твърде много дешифрирани данни."
#: ../libnm-util/crypto_nss.c:256
#, c-format
msgid "Failed to finalize decryption of the private key: %d."
-msgstr "Грешка при завършване на разшифроването на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ – %d."
+msgstr "Грешка при завършване на дешифрирането на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ — %d."
#: ../libnm-util/crypto_nss.c:364
#, c-format
-#| msgid "Failed to initialize the decryption cipher slot."
msgid "Failed to initialize the encryption cipher slot."
-msgstr "Грешка при инициализиране на буфер за шифъра за шифроване."
+msgstr "Грешка при инициализиране на буфер за шифъра за шифриране."
#: ../libnm-util/crypto_nss.c:372
#, c-format
-#| msgid "Failed to set symmetric key for decryption."
msgid "Failed to set symmetric key for encryption."
-msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифроване."
+msgstr "Грешка при задаване на ÑÐ¸Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ за шифриране."
#: ../libnm-util/crypto_nss.c:380
#, c-format
-#| msgid "Failed to set IV for decryption."
msgid "Failed to set IV for encryption."
-msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифроване."
+msgstr "Грешка при задаване на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ за шифриране."
#: ../libnm-util/crypto_nss.c:388
#, c-format
-#| msgid "Failed to initialize the decryption context."
msgid "Failed to initialize the encryption context."
-msgstr "Грешка при инициализиране на контекÑта за шифроване."
+msgstr "Грешка при инициализиране на контекÑта за шифриране."
#: ../libnm-util/crypto_nss.c:396
#, c-format
-#| msgid "Failed to decrypt the private key: %d."
msgid "Failed to encrypt: %d."
-msgstr "Грешка при шифроване – %d."
+msgstr "Грешка при шифриране — %d."
#: ../libnm-util/crypto_nss.c:404
#, c-format
msgid "Unexpected amount of data after encrypting."
-msgstr "Ðеочакван обем данни Ñлед шифроване."
+msgstr "Ðеочакван обем данни Ñлед шифриране."
#: ../libnm-util/crypto_nss.c:447
#, c-format
msgid "Couldn't decode certificate: %d"
-msgstr "Грешка при декодиране на Ñертификата – %d"
+msgstr "Грешка при декодиране на Ñертификата — %d"
#: ../libnm-util/crypto_nss.c:482
#, c-format
msgid "Couldn't convert password to UCS2: %d"
-msgstr "Грешка при преобразуване на паролата в UCS2 – %d"
+msgstr "Грешка при преобразуване на паролата в UCS2 — %d"
#: ../libnm-util/crypto_nss.c:510
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
-msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 – %d"
+msgstr "Грешка при инициализиране на модула за декодиране на PKCS#12 — %d"
#: ../libnm-util/crypto_nss.c:519
#, c-format
-#| msgid "Couldn't decode certificate: %d"
msgid "Couldn't decode PKCS#12 file: %d"
-msgstr "Грешка при декодиране на файла Ñ PKCS#12 – %d"
+msgstr "Грешка при декодиране на файла Ñ PKCS#12 — %d"
#: ../libnm-util/crypto_nss.c:528
#, c-format
-#| msgid "Couldn't decode certificate: %d"
msgid "Couldn't verify PKCS#12 file: %d"
-msgstr "Грешка при проверка на файла Ñ PKCS#12 – %d"
+msgstr "Грешка при проверка на файла Ñ PKCS#12 — %d"
#: ../libnm-util/crypto_nss.c:557
-#| msgid "Could not decode private key."
msgid "Could not generate random data."
msgstr "Грешка при генериране на Ñлучайни чиÑла."
-#: ../libnm-util/nm-utils.c:1975
+#: ../libnm-util/nm-utils.c:1993
#, c-format
-#| msgid "Not enough memory to create private key decryption key."
msgid "Not enough memory to make encryption key."
-msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на ключ за шифроване."
+msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на ключ за шифриране."
-#: ../libnm-util/nm-utils.c:2085
-#| msgid "Not enough memory to store PEM file data."
+#: ../libnm-util/nm-utils.c:2103
msgid "Could not allocate memory for PEM file creation."
msgstr "ÐÑма доÑтатъчно памет за Ñъздаването на файл във формат PEM."
-#: ../libnm-util/nm-utils.c:2097
+#: ../libnm-util/nm-utils.c:2115
#, c-format
msgid "Could not allocate memory for writing IV to PEM file."
msgstr ""
"ÐÑма доÑтатъчно памет за запиÑването на Ð½Ð°Ñ‡Ð°Ð»Ð½Ð¸Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€ във файл във формат "
"PEM."
-#: ../libnm-util/nm-utils.c:2109
+#: ../libnm-util/nm-utils.c:2127
#, c-format
msgid "Could not allocate memory for writing encrypted key to PEM file."
msgstr ""
-"ÐÑма доÑтатъчно памет за запиÑване на ключа за шифроване във файл във формат "
+"ÐÑма доÑтатъчно памет за запиÑване на ключа за шифриране във файл във формат "
"PEM."
-#: ../libnm-util/nm-utils.c:2128
+#: ../libnm-util/nm-utils.c:2146
#, c-format
-#| msgid "Not enough memory to store PEM file data."
msgid "Could not allocate memory for PEM file data."
msgstr "ÐÑма доÑтатъчно памет за данните за файла във формат PEM."
@@ -1680,7 +1731,6 @@ msgid "Modify persistent system hostname"
msgstr "ПромÑна на името на хоÑта"
#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
-#| msgid "No active connections!"
msgid "Modify system connections"
msgstr "ПромÑна на ÑиÑтемни връзки"
@@ -1705,7 +1755,6 @@ msgstr ""
"безжична мрежа"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
-#| msgid "No network connection"
msgid "Allow control of network connections"
msgstr "Разрешаване на управлението на мрежовите връзки"
@@ -1718,15 +1767,19 @@ msgid "Enable or disable WiFi devices"
msgstr "Включване и изключване на уÑтройÑтва за безжични мрежи"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable WiMAX mobile broadband devices"
+msgstr ""
+"Включване и изключване на уÑтройÑтва за доÑтъп до мобилни мрежи по WiMAX"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
msgid "Enable or disable mobile broadband devices"
msgstr "Включване и изключване на уÑтройÑтва за доÑтъп до мобилни мрежи"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
-#| msgid "Enable _Networking"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
msgid "Enable or disable system networking"
msgstr "Включване и изключване на мрежата на ÑиÑтемно ниво"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
msgid ""
"Put NetworkManager to sleep or wake it up (should only be used by system "
"power management)"
@@ -1734,34 +1787,41 @@ msgstr ""
"ПриÑпиване и Ñъбуждане на NetworkManager (за целите на модула за управление "
"на захранването на ÑиÑтемата)"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
msgid "System policy prevents control of network connections"
msgstr "Политиката на ÑиÑтемата не позволÑва управлÑване на мрежовите връзки"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
msgid "System policy prevents enabling or disabling WiFi devices"
msgstr ""
"Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за "
"безжични мрежи"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid ""
+"System policy prevents enabling or disabling WiMAX mobile broadband devices"
+msgstr ""
+"Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за "
+"мобилни мрежи по WiMAX"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
msgid "System policy prevents enabling or disabling mobile broadband devices"
msgstr ""
"Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за "
"мобилни мрежи"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
msgid "System policy prevents enabling or disabling system networking"
msgstr ""
"Политиката на ÑиÑтемата не позволÑва включване и изключване на мрежата на "
"ÑиÑтемно ниво"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13
msgid "System policy prevents putting NetworkManager to sleep or waking it up"
msgstr ""
"Политиката на ÑиÑтемата не позволÑва приÑпиване и Ñъбуждане на NetworkManager"
-#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
msgid "System policy prevents use of user-specific connections"
msgstr ""
"Политиката на ÑиÑтемата не позволÑва използване на потребителÑки връзки"
@@ -1770,7 +1830,7 @@ msgstr ""
#: ../src/nm-netlink-monitor.c:653
#, c-format
msgid "error processing netlink message: %s"
-msgstr "грешка при обработката на Ñъобщение от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой – %s"
+msgstr "грешка при обработката на Ñъобщение от Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой — %s"
#: ../src/nm-netlink-monitor.c:214
msgid "error occurred while waiting for data on socket"
@@ -1785,7 +1845,6 @@ msgstr ""
#: ../src/nm-netlink-monitor.c:265
#, c-format
-#| msgid "unable to allocate netlink handle for monitoring link status: %s"
msgid "unable to enable netlink handle credential passing: %s"
msgstr ""
"грешка при включване на предаването на удоÑÑ‚Ð¾Ð²ÐµÑ€ÐµÐ½Ð¸Ñ Ð² модула на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ "
@@ -1807,32 +1866,29 @@ msgstr ""
#: ../src/nm-netlink-monitor.c:502
#, c-format
-#| msgid "unable to join netlink group for monitoring link status: %s"
msgid "unable to join netlink group: %s"
msgstr "грешка при приÑъединÑване към групата на Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ Ñлой — %s"
#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
#, c-format
-#| msgid "error processing netlink message: %s"
msgid "error updating link cache: %s"
-msgstr "грешка при обновÑване на информациÑта за връзките – %s"
+msgstr "грешка при обновÑване на информациÑта за връзките — %s"
-#: ../src/main.c:499
+#: ../src/main.c:518
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr "Ðеправилна опциÑ. Ползвайте --help, за да видите ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.\n"
-#: ../src/main.c:570
+#: ../src/main.c:589
#, c-format
-#| msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. Ползвайте --help, за да видите ÑпиÑъка Ñ Ð¾Ð¿Ñ†Ð¸Ð¸.\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62
msgid "# Created by NetworkManager\n"
msgstr "# Създаден от NetworkManager\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:69
#, c-format
msgid ""
"# Merged from %s\n"
@@ -1858,638 +1914,30 @@ msgstr "Ðе е намерен „dhcpcd“."
msgid "unsupported DHCP client '%s'"
msgstr "Клиентът за DHCP „%s“ не Ñе поддържа"
-#: ../src/logging/nm-logging.c:146
+#: ../src/logging/nm-logging.c:148
#, c-format
msgid "Unknown log level '%s'"
msgstr "Ðепознат праг за ÑъобщениÑта в журнала „%s“"
-#: ../src/logging/nm-logging.c:171
+#: ../src/logging/nm-logging.c:173
#, c-format
msgid "Unknown log domain '%s'"
msgstr "Ðепознат домейн за ÑъобщениÑта в журнала „%s“"
-#: ../src/dns-manager/nm-dns-manager.c:384
-#| msgid "NOTE: the glibc resolver does not support more than 3 nameservers."
+#: ../src/dns-manager/nm-dns-manager.c:367
msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr "ЗÐБЕЛЕЖКÐ: libc може да не поддържа повече от 3 Ñървъра за имена."
-#: ../src/dns-manager/nm-dns-manager.c:386
+#: ../src/dns-manager/nm-dns-manager.c:369
msgid "The nameservers listed below may not be recognized."
-msgstr "Долните Ñървъри за имена може да не бъдат разпознати."
+msgstr "Следните Ñървъри за имена може да не бъдат разпознати."
#: ../src/system-settings/nm-default-wired-connection.c:157
#, c-format
msgid "Auto %s"
msgstr "Ðвтоматично %s"
-#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3409
#: ../system-settings/plugins/ifnet/connection_parser.c:49
-#| msgid "Open System"
msgid "System"
msgstr "СиÑтемна"
-
-#~ msgid "Passphrase for wireless network %s"
-#~ msgstr "Парола за безжичната мрежа %s"
-
-#~ msgid "Connection to the wireless network '%s' failed."
-#~ msgstr "ÐеуÑпешно Ñвързване към безжичната мрежа „%s“."
-
-#~ msgid "Error displaying connection information:"
-#~ msgstr "Грешка при показване на информациÑта за връзката:"
-
-#~ msgid "Could not find some required resources (the glade file)!"
-#~ msgstr "ÐÑкои реÑурÑи не бÑха открити (файлът на glade)!"
-
-#~ msgid "Wired Ethernet (%s)"
-#~ msgstr "Кабелен Етернет (%s)"
-
-#~ msgid "Wireless Ethernet (%s)"
-#~ msgstr "Безжичен Етернет (%s)"
-
-#~ msgid ""
-#~ "Copyright © 2004-2006 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
-#~ msgstr ""
-#~ "ÐвторÑки права © 2004—2006 Red Hat, Inc.\n"
-#~ "ÐвторÑки права © 2004—2006 Novell, Inc."
-
-#~ msgid ""
-#~ "Notification area applet for managing your network devices and "
-#~ "connections."
-#~ msgstr ""
-#~ "Ðплет за облаÑтта за уведомÑване за управление на мрежовите уÑтройÑтва и "
-#~ "връзки."
-
-#~ msgid "translator-credits"
-#~ msgstr ""
-#~ "ÐлекÑандър Шопов <ash@contact.bg>\n"
-#~ "\n"
-#~ "Проектът за превод на GNOME има нужда от подкрепа.\n"
-#~ "Ðаучете повече за Ð½Ð°Ñ Ð½Ð° http://gnome.cult.bg\n"
-#~ "Докладвайте за грешки на http://gnome.cult.bg/bugs<"
-
-#~ msgid ""
-#~ "Copyright © 2004-2005 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
-#~ msgstr ""
-#~ "ÐвторÑки права © 2004—2005 Red Hat, Inc.\n"
-#~ "ÐвторÑки права © 2005—2006 Novell, Inc."
-
-#~ msgid "VPN Login Failure"
-#~ msgstr "Грешка при Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´ ВЧМ"
-
-#~ msgid "Could not start the VPN connection '%s' due to a login failure."
-#~ msgstr ""
-#~ "ÐеуÑпех при оÑъщеÑтвÑването на връзката към ВЧМ „%s“ поради грешка в "
-#~ "идентификациÑта."
-
-#~ msgid "VPN Start Failure"
-#~ msgstr "Грешка при Ñтартиране на ВЧМ"
-
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' due to a failure launching the "
-#~ "VPN program."
-#~ msgstr ""
-#~ "Връзката към ВЧМ „%s“ Ñе провали поради грешка при Ñтартиране на "
-#~ "програмата за ВЧМ."
-
-#~ msgid "Could not start the VPN connection '%s' due to a connection error."
-#~ msgstr "Връзката към ВЧМ „%s“ Ñе провали поради грешка при Ñвързването."
-
-#~ msgid "VPN Configuration Error"
-#~ msgstr "Грешка в наÑтройките на ВЧМ"
-
-#~ msgid "The VPN connection '%s' was not correctly configured."
-#~ msgstr "Връзката към ВЧМ „%s“ е Ñ Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»Ð½Ð¸ наÑтройки."
-
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' because the VPN server did not "
-#~ "return an adequate network configuration."
-#~ msgstr ""
-#~ "Връзката към ВЧМ „%s“ Ñе провали, защото наÑтройките на мрежата върнати "
-#~ "от Ñървъра за ВЧМ бÑха неправилни."
-
-#~ msgid "VPN Login Message"
-#~ msgstr "Съобщение при Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´ ВЧМ"
-
-#~ msgid ""
-#~ "The NetworkManager Applet could not find some required resources (the "
-#~ "glade file was not found)."
-#~ msgstr ""
-#~ "Ðплетът NetworkManager не можа да открие нÑкои задължителни реÑурÑи "
-#~ "(файлът на glade)."
-
-#~ msgid "The network device \"%s (%s)\" does not support wireless scanning."
-#~ msgstr "Мрежовото уÑтройÑтво „%s (%s)“ не поддържа безжично претърÑване."
-
-#~ msgid "The network device \"%s (%s)\" does not support link detection."
-#~ msgstr "Мрежовото уÑтройÑтво „%s (%s)“ не поддържа заÑичане на връзка."
-
-#~ msgid "Preparing device %s for the wired network..."
-#~ msgstr "ПодготвÑне на уÑтройÑтвото „%s“ за кабелната мрежа…"
-
-#~ msgid "Preparing device %s for the wireless network '%s'..."
-#~ msgstr "ПодготвÑне на уÑтройÑтвото „%s“ за безжичната мрежа „%s“…"
-
-#~ msgid "Configuring device %s for the wired network..."
-#~ msgstr "ÐаÑтройване на уÑтройÑтвото „%s“ за кабелната мрежа…"
-
-#~ msgid "Attempting to join the wireless network '%s'..."
-#~ msgstr "Опит за Ñвързване към безжичната мрежа „%s“…"
-
-#~ msgid "Waiting for Network Key for the wireless network '%s'..."
-#~ msgstr "Изчакване за Ð¼Ñ€ÐµÐ¶Ð¾Ð²Ð¸Ñ ÐºÐ»ÑŽÑ‡ за безжичната мрежа „%s“…"
-
-#~ msgid "Requesting a network address from the wired network..."
-#~ msgstr "Запитване на кабелната мрежа за адреÑ…"
-
-#~ msgid "Requesting a network address from the wireless network '%s'..."
-#~ msgstr "Запитване на безжичната мрежа „%s“ за адреÑ…"
-
-#~ msgid "Finishing connection to the wired network..."
-#~ msgstr "Завършване на връзката към кабелната мрежа…"
-
-#~ msgid "Finishing connection to the wireless network '%s'..."
-#~ msgstr "Завършване на връзката към безжичната мрежа „%s“…"
-
-#~ msgid "NetworkManager is not running"
-#~ msgstr "NetworkManager не е включен"
-
-#~ msgid "Wired network connection"
-#~ msgstr "Връзка към кабелна мрежа"
-
-#~ msgid "Connected to an Ad-Hoc wireless network"
-#~ msgstr "Връзка към инцидентна, безжична мрежа"
-
-#~ msgid "Wireless network connection to '%s' (%d%%)"
-#~ msgstr "Безжична връзка към „%s“ (%d%%)"
-
-#~ msgid "VPN connection to '%s'"
-#~ msgstr "Връзка по ВЧМ към „%s“"
-
-#~ msgid "_Connect to Other Wireless Network..."
-#~ msgstr "_Свързване към други безжични мрежи…"
-
-#~ msgid "Create _New Wireless Network..."
-#~ msgstr "Създаване на _нова безжична мрежа…"
-
-#~ msgid "_VPN Connections"
-#~ msgstr "_Връзки по ВЧМ"
-
-#~ msgid "_Configure VPN..."
-#~ msgstr "_ÐаÑтройване на ВЧМ…"
-
-#~ msgid "_Disconnect VPN..."
-#~ msgstr "_ПрекъÑване на ВЧМ…"
-
-#~ msgid "_Dial Up Connections"
-#~ msgstr "_Връзки по телефонна линиÑ"
-
-#~ msgid "Connect to %s..."
-#~ msgstr "Свързване към %s…"
-
-#~ msgid "Disconnect from %s..."
-#~ msgstr "ПрекъÑване на връзката към %s…"
-
-#~ msgid "No network devices have been found"
-#~ msgstr "Ðе Ñа открити мрежови уÑтройÑтва"
-
-#~ msgid "NetworkManager is not running..."
-#~ msgstr "NetworkManager не е включен…"
-
-#~ msgid "Enable _Wireless"
-#~ msgstr "Включване на _безжичната мрежа"
-
-#~ msgid "Connection _Information"
-#~ msgstr "_Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката"
-
-#~ msgid "_Help"
-#~ msgstr "_Помощ"
-
-#~ msgid "_About"
-#~ msgstr "_ОтноÑно"
-
-#~ msgid ""
-#~ "The NetworkManager applet could not find some required resources. It "
-#~ "cannot continue.\n"
-#~ msgstr ""
-#~ "Ðплетът NetworkManager не може да открие необходим реÑурÑ. Програмата не "
-#~ "може да продължи работа.\n"
-
-#~ msgid "Shared Key"
-#~ msgstr "Споделен ключ"
-
-#~ msgid "Automatic (Default)"
-#~ msgstr "Ðвтоматично (по подразбиране)"
-
-#~ msgid "Dynamic WEP"
-#~ msgstr "Динамичен WEP"
-
-#~ msgid "WEP 64/128-bit ASCII"
-#~ msgstr "40/128-битов ключ за WEP в ASCII"
-
-#~ msgid "WEP 64/128-bit Hex"
-#~ msgstr "40/128-битов шеÑтнадеÑетичен ключ за WEP"
-
-#~ msgid "TLS"
-#~ msgstr "TLS"
-
-#~ msgid "TTLS"
-#~ msgstr "TTLS"
-
-#~ msgid "WPA2 Enterprise"
-#~ msgstr "WPA2 Enterprise"
-
-#~ msgid "WPA2 Personal"
-#~ msgstr "WPA2 Personal"
-
-#~ msgid "WPA Personal"
-#~ msgstr "WPA Personal"
-
-#~ msgid "Orientation"
-#~ msgstr "ОриентациÑ"
-
-#~ msgid "The orientation of the tray."
-#~ msgstr "ОриентациÑта на тавата"
-
-#~ msgid "Wired Network (%s)"
-#~ msgstr "Кабелна мрежа (%s)"
-
-#~ msgid "_Wired Network"
-#~ msgstr "_Кабелна мрежа"
-
-#~ msgid "Wireless Network (%s)"
-#~ msgid_plural "Wireless Networks (%s)"
-#~ msgstr[0] "Безжична мрежа (%s)"
-#~ msgstr[1] "Безжични мрежи (%s)"
-
-#~ msgid "Wireless Network"
-#~ msgid_plural "Wireless Networks"
-#~ msgstr[0] "Безжична мрежа"
-#~ msgstr[1] "Безжични мрежи"
-
-#~ msgid " (invalid Unicode)"
-#~ msgstr " (невалиден Уникод)"
-
-#~ msgid ""
-#~ "By default, the wireless network's name is set to your computer's name, %"
-#~ "s, with no encryption enabled"
-#~ msgstr ""
-#~ "По подразбиране името на безжичната мрежа е името на компютъра ви, „%s“, "
-#~ "без шифриране"
-
-#~ msgid "Create new wireless network"
-#~ msgstr "Създаване на нова безжична мрежа"
-
-#~ msgid ""
-#~ "Enter the name and security settings of the wireless network you wish to "
-#~ "create."
-#~ msgstr ""
-#~ "Въведете името и наÑтройките на ÑигурноÑтта на безжичната мрежа, коÑто "
-#~ "иÑкате да Ñъздадете."
-
-#~ msgid "Create New Wireless Network"
-#~ msgstr "Създаване на нова безжична мрежа"
-
-#~ msgid "Existing wireless network"
-#~ msgstr "СъщеÑтвуваща безжична мрежа"
-
-#~ msgid "Enter the name of the wireless network to which you wish to connect."
-#~ msgstr ""
-#~ "Въведете името на безжичната мрежа, към коÑто иÑкате да Ñе Ñвържете."
-
-#~ msgid "Connect to Other Wireless Network"
-#~ msgstr "Свързване към друга безжична мрежа"
-
-#~ msgid "Error connecting to wireless network"
-#~ msgstr "Грешка при Ñвързване към друга безжична мрежа"
-
-#~ msgid ""
-#~ "The requested wireless network requires security capabilities unsupported "
-#~ "by your hardware."
-#~ msgstr "Хардуерът ви не поддържа изиÑкваниÑта на поиÑканата безжична мрежа."
-
-#~ msgid "Cannot start VPN connection '%s'"
-#~ msgstr "Връзката към ВЧМ „%s“ не може да бъде Ñтартирана"
-
-#~ msgid ""
-#~ "Could not find the authentication dialog for VPN connection type '%s'. "
-#~ "Contact your system administrator."
-#~ msgstr ""
-#~ "Диалоговата ÐºÑƒÑ‚Ð¸Ñ Ð·Ð° Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´ ВЧМ „%s“ не може да бъде открита. "
-#~ "Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор."
-
-#~ msgid ""
-#~ "There was a problem launching the authentication dialog for VPN "
-#~ "connection type '%s'. Contact your system administrator."
-#~ msgstr ""
-#~ "Имаше проблем Ñ Ð¿Ð¾ÐºÐ°Ð·Ð²Ð°Ð½ÐµÑ‚Ð¾ на диалоговата ÐºÑƒÑ‚Ð¸Ñ Ð·Ð° Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´ "
-#~ "ВЧМ „%s“. Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор."
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° дейÑтващата връзка</"
-#~ "span>"
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
-#~ "Network</span>\n"
-#~ "\n"
-#~ "A passphrase or encryption key is required to access the wireless network "
-#~ "'%s'."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Безжичната мрежа изиÑква парола</"
-#~ "span>\n"
-#~ "\n"
-#~ "Ðеобходима е парола или ключ за шифриране, за да Ñе Ñвържете Ñ Ð±ÐµÐ·Ð¶Ð¸Ñ‡Ð½Ð°Ñ‚Ð° "
-#~ "мрежа „%s“."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</"
-#~ "span>\n"
-#~ "\n"
-#~ "%s It will not be completely functional."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Ограничена функционалноÑÑ‚ на "
-#~ "мрежата</span>\n"
-#~ "\n"
-#~ "%s нÑма да функционира изцÑло."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Wireless Network Login "
-#~ "Confirmation</span>\n"
-#~ "\n"
-#~ "You have chosen to log in to the wireless network '%s'. If you are sure "
-#~ "that this wireless network is secure, click the checkbox below and "
-#~ "NetworkManager will not require confirmation on subsequent log ins."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Потвърждение за Ñвързване към "
-#~ "безжична мрежа</span>\n"
-#~ "\n"
-#~ "Избрали Ñте да Ñе Ñвържете към безжичната мрежа „%s“. Ðко Ñте уверени, че "
-#~ "Ñ‚Ñ Ðµ Ñигурна и можете да Ñ Ñе доверите, задайте наÑтройката отдолу и "
-#~ "NetworkManager нÑма да ви иÑка Ð¿Ð¾Ñ‚Ð²ÑŠÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ Ñледващи влизаниÑ."
-
-#~ msgid "Anonymous Identity:"
-#~ msgstr "Ðнонимна идентичноÑÑ‚:"
-
-#~ msgid "Authentication:"
-#~ msgstr "ИдентификациÑ:"
-
-#~ msgid "Broadcast Address:"
-#~ msgstr "ÐÐ´Ñ€ÐµÑ Ð·Ð° разпръÑкване:"
-
-#~ msgid "CA Certificate File:"
-#~ msgstr "Файл ÑÑŠÑ Ñертификатите на Ñертифициращите организации:"
-
-#~ msgid "Client Certificate File:"
-#~ msgstr "Файл Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñките Ñертификати:"
-
-#~ msgid "Default Route:"
-#~ msgstr "Маршрут по подразбиране:"
-
-#~ msgid "Destination Address:"
-#~ msgstr "Целеви адреÑ:"
-
-#~ msgid "Driver:"
-#~ msgstr "Драйвер:"
-
-#~ msgid "EAP Method:"
-#~ msgstr "Метод за EAP:"
-
-#~ msgid "Hardware Address:"
-#~ msgstr "Хардуерен адреÑ:"
-
-#~ msgid "IP Address:"
-#~ msgstr "IP адреÑ:"
-
-#~ msgid "Identity:"
-#~ msgstr "ИдентичноÑÑ‚:"
-
-#~ msgid "Interface:"
-#~ msgstr "ИнтерфейÑ:"
-
-#~ msgid "Key Type:"
-#~ msgstr "Вид ключ:"
-
-#~ msgid "Key management:"
-#~ msgstr "Управление на ключове:"
-
-#~ msgid "Key:"
-#~ msgstr "Ключ:"
-
-#~ msgid ""
-#~ "None\n"
-#~ "WEP 128-bit Passphrase\n"
-#~ "WEP 64/128-bit Hex\n"
-#~ "WEP 64/128-bit ASCII\n"
-#~ msgstr ""
-#~ "ÐÑма\n"
-#~ "128 битова парола WEP\n"
-#~ "40/128-битов шеÑтнадеÑетичен ключ за WEP\n"
-#~ "40/128-битов ключ за WEP в ASCII\n"
-
-#~ msgid ""
-#~ "Open System\n"
-#~ "Shared Key"
-#~ msgstr ""
-#~ "Открита ÑиÑтема\n"
-#~ "Споделен ключ"
-
-#~ msgid "Other Wireless Network..."
-#~ msgstr "Друга безжична мрежа…"
-
-#~ msgid "Passphrase:"
-#~ msgstr "Парола:"
-
-#~ msgid "Password:"
-#~ msgstr "Парола:"
-
-#~ msgid "Primary DNS:"
-#~ msgstr "ОÑновен Ñървър за DNS:"
-
-#~ msgid "Private Key File:"
-#~ msgstr "Файл Ñ Ñ‡Ð°Ñтните ключове:"
-
-#~ msgid "Private Key Password:"
-#~ msgstr "Парола за чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡:"
-
-#~ msgid "Secondary DNS:"
-#~ msgstr "Допълнителен Ñървър за DNS:"
-
-#~ msgid "Select the CA Certificate File"
-#~ msgstr "Избор на файла ÑÑŠÑ Ñертификатите на Ñертифициращите организации"
-
-#~ msgid "Select the Client Certificate File"
-#~ msgstr "Избор на файла Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ñките Ñертификати"
-
-#~ msgid "Select the Private Key File"
-#~ msgstr "Избор на файла Ñ Ñ‡Ð°Ñтните ключове"
-
-#~ msgid "Show key"
-#~ msgstr "Показване на ключа"
-
-#~ msgid "Show passphrase"
-#~ msgstr "Показване на паролата"
-
-#~ msgid "Show password"
-#~ msgstr "Показване на паролата"
-
-#~ msgid "Show passwords"
-#~ msgstr "Показване на паролите"
-
-#~ msgid "Speed:"
-#~ msgstr "СкороÑÑ‚:"
-
-#~ msgid "Subnet Mask:"
-#~ msgstr "МаÑка на подмрежата:"
-
-#~ msgid "Type:"
-#~ msgstr "Вид:"
-
-#~ msgid "User Name:"
-#~ msgstr "ПотребителÑко име:"
-
-#~ msgid "Wireless Network Key Required"
-#~ msgstr "Ðеобходим е ключ за безжична мрежа"
-
-#~ msgid "Wireless _adapter:"
-#~ msgstr "Безжичен _адаптер:"
-
-#~ msgid "_Always Trust this Wireless Network"
-#~ msgstr "_ПоÑтоÑнно доверие на тази безжична мрежа"
-
-#~ msgid "_Don't remind me again"
-#~ msgstr "_Да нÑма нови напомнÑниÑ"
-
-#~ msgid "_Fallback on this Network"
-#~ msgstr "Тази мрежа да е и _резервна"
-
-#~ msgid "_Login to Network"
-#~ msgstr "_Свързване към мрежа"
-
-#~ msgid "_Network Name:"
-#~ msgstr "_Име на мрежа:"
-
-#~ msgid "_Wireless Security:"
-#~ msgstr "_Безжична ÑигурноÑÑ‚:"
-
-#~ msgid "Cannot add VPN connection"
-#~ msgstr "Ðе може да Ñе добави връзка към ВЧМ"
-
-#~ msgid ""
-#~ "No suitable VPN software was found on your system. Contact your system "
-#~ "administrator."
-#~ msgstr ""
-#~ "Ðе е открит подходÑщ Ñофтуер за ВЧМ. Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ "
-#~ "админиÑтратор."
-
-#~ msgid "Cannot import VPN connection"
-#~ msgstr "Връзката към ВЧМ не може да Ñе внеÑе"
-
-#~ msgid ""
-#~ "Cannot find suitable software for VPN connection type '%s' to import the "
-#~ "file '%s'. Contact your system administrator."
-#~ msgstr ""
-#~ "Файлът „%2$s“ не може да Ñе внеÑе, защото не може да Ñе открие подходÑщ "
-#~ "Ñофтуер за връзка към ВЧМ от вида „%1$s“. Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ "
-#~ "админиÑтратор."
-
-#~ msgid ""
-#~ "Could not find the UI files for VPN connection type '%s'. Contact your "
-#~ "system administrator."
-#~ msgstr ""
-#~ "Файловете Ñ Ð¾Ð¿Ð¸Ñание на Ð³Ñ€Ð°Ñ„Ð¸Ñ‡Ð½Ð¸Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð° връзки към ВЧМ от вида „%"
-#~ "s“ не могат да бъдат открити. Свържете Ñе ÑÑŠÑ ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор."
-
-#~ msgid "Delete VPN connection \"%s\"?"
-#~ msgstr "Да Ñе изтрие ли връзката към ВЧМ „%s“?"
-
-#~ 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 ""
-#~ "ЦÑлата Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° връзката към ВЧМ „%s“ ще бъде изтрита и може да Ñе "
-#~ "наложи да Ñ Ð¸Ñкате наново от ÑиÑÑ‚ÐµÐ¼Ð½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор, ако иÑкате да Ñ "
-#~ "Ñъздадете наново."
-
-#~ msgid "Unable to load"
-#~ msgstr "ÐеуÑпех при зареждане"
-
-#~ msgid "Cannot find some needed resources (the glade file)!"
-#~ msgstr "ÐÑкои реÑурÑи не бÑха открити (файлът на glade)!"
-
-#~ msgid "Create VPN Connection"
-#~ msgstr "Създаване на връзка към ВЧМ"
-
-#~ msgid "Edit VPN Connection"
-#~ msgstr "Редактиране на връзка към ВЧМ"
-
-#~ msgid "Add a new VPN connection"
-#~ msgstr "ДобавÑне на нова връзка към ВЧМ"
-
-#~ msgid "Delete the selected VPN connection"
-#~ msgstr "Изтриване на избраната връзка към ВЧМ"
-
-#~ msgid "E_xport"
-#~ msgstr "_ИзнаÑÑне"
-
-#~ msgid "Edit the selected VPN connection"
-#~ msgstr "Редактиране на избраната връзка към ВЧМ"
-
-#~ msgid "Export the VPN settings to a file"
-#~ msgstr "ИзнаÑÑне на наÑтройките за ВЧМ във файл"
-
-#~ msgid "Export the selected VPN connection to a file"
-#~ msgstr "ИзнаÑÑне на избраната връзка към ВЧМ във файл"
-
-#~ msgid "Manage Virtual Private Network Connections"
-#~ msgstr "Управление на връзките към ВЧМ"
-
-#~ msgid "40-bit WEP"
-#~ msgstr "40-битов WEP"
-
-#~ msgid "104-bit WEP"
-#~ msgstr "104-битов WEP"
-
-#~ msgid "WPA CCMP"
-#~ msgstr "WPA CCMP"
-
-#~ msgid "WPA Automatic"
-#~ msgstr "Ðвтоматичен WPA"
-
-#~ msgid "WPA2 CCMP"
-#~ msgstr "WPA2 CCMP"
-
-#~ msgid "WPA2 Automatic"
-#~ msgstr "Ðвтоматичен WPA2"
-
-#~ msgid "operation took too long"
-#~ msgstr "операциÑта продължи прекалено дълго"
-
-#~ msgid "received data from wrong type of sender"
-#~ msgstr "получени Ñа данни от неправилен вид изпращач"
-
-#~ msgid "received data from unexpected sender"
-#~ msgstr "получени Ñа данни от неочакван изпращач"
-
-#~ msgid "too much data was sent over socket and some of it was lost"
-#~ msgstr ""
-#~ "през гнездото Ñа получени прекалено много данни и нÑкои от Ñ‚ÑÑ… Ñа загубени"
-
-#~ msgid "You are now connected to the Ad-Hoc wireless network '%s'."
-#~ msgstr "Свързали Ñте Ñе към инцидентната, безжична мрежа „%s“."
-
-#~ msgid "You are now connected to the wireless network '%s'."
-#~ msgstr "Свързани Ñте към безжичната мрежа „%s“."
-
-#~ msgid "You are now connected to the wired network."
-#~ msgstr "Свързани Ñте към кабелната мрежа."
-
-#~ msgid "LEAP"
-#~ msgstr "LEAP"
diff --git a/po/ca.po b/po/ca.po
index ebe35d559..d4e6c8e24 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -4,1206 +4,1951 @@
# NetworkManager package.
# Josep Puigdemont Casamajó <josep.puigdemont@gmail.com>, 2005, 2006.
# David Planella <david.planella@gmail.com>, 2009.
+# Joan Duran <jodufi@gmail.com>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: NetworkManager\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=NetworkManager&component=general\n"
-"POT-Creation-Date: 2009-01-10 17:02+0000\n"
-"PO-Revision-Date: 2009-01-21 17:51+0100\n"
-"Last-Translator: David Planella <david.planella@gmail.com>\n"
+"POT-Creation-Date: 2011-01-23 15:24+0000\n"
+"PO-Revision-Date: 2011-01-23 21:26+0100\n"
+"Last-Translator: Joan Duran <jodufi@gmail.com>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-#: ../libnm-util/crypto.c:120
+#: ../cli/src/connections.c:62 ../cli/src/connections.c:78
+#: ../cli/src/devices.c:92 ../cli/src/devices.c:105 ../cli/src/devices.c:115
+#: ../cli/src/devices.c:125 ../cli/src/devices.c:138 ../cli/src/devices.c:151
+#: ../cli/src/devices.c:162 ../cli/src/devices.c:173 ../cli/src/devices.c:182
+#: ../cli/src/devices.c:191 ../cli/src/devices.c:212
+msgid "NAME"
+msgstr "NOM"
+
+#. 0
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:79
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:64
+msgid "DEVICES"
+msgstr "DISPOSITIUS"
+
+#. 2
+#: ../cli/src/connections.c:65 ../cli/src/connections.c:81
+msgid "SCOPE"
+msgstr "ABAST"
+
+#. 3
+#: ../cli/src/connections.c:66
+msgid "DEFAULT"
+msgstr "PREDETERMINAT"
+
+#. 4
+#: ../cli/src/connections.c:67
+msgid "DBUS-SERVICE"
+msgstr "SERVEI-DBUS"
+
+#. 5
+#: ../cli/src/connections.c:68
+msgid "SPEC-OBJECT"
+msgstr "OBJECTE-ESPEC"
+
+#. 6
+#: ../cli/src/connections.c:69
+msgid "VPN"
+msgstr "VPN"
+
+#. 7
+#. 2
+#. 11
+#. 5
+#: ../cli/src/connections.c:70 ../cli/src/connections.c:86
+#: ../cli/src/devices.c:65 ../cli/src/devices.c:203 ../cli/src/devices.c:218
+msgid "DBUS-PATH"
+msgstr "CAMÃ-DBUS"
+
+#. 1
+#. 0
+#. 1
+#. 2
+#: ../cli/src/connections.c:80 ../cli/src/devices.c:63 ../cli/src/devices.c:94
+#: ../cli/src/devices.c:215
+msgid "TYPE"
+msgstr "TIPUS"
+
+#. 3
+#: ../cli/src/connections.c:82
+msgid "TIMESTAMP"
+msgstr "MARCA-HORÀRIA"
+
+#. 4
+#: ../cli/src/connections.c:83
+msgid "TIMESTAMP-REAL"
+msgstr "MARCA-HORÀRIA-REAL"
+
+#. 5
+#: ../cli/src/connections.c:84
+msgid "AUTOCONNECT"
+msgstr "CONNEXIÓ-AUTOMÀTICA"
+
+#. 6
+#: ../cli/src/connections.c:85
+msgid "READONLY"
+msgstr "NOMÉS-LECTURA"
+
+#: ../cli/src/connections.c:164
#, c-format
-msgid "PEM key file had no end tag '%s'."
-msgstr "El fitxer de clau PEM no té l'etiqueta de final «%s»."
+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>] [nsp <name>] [--"
+"nowait] [--timeout <timeout>]\n"
+" down id <id> | uuid <id>\n"
+msgstr ""
+"Utilització: nmcli con { ORDRE | help }\n"
+" ORDRE := { 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>] [nsp <name>] [--"
+"nowait] [--timeout <timeout>]\n"
+" down id <id> | uuid <id>\n"
-#: ../libnm-util/crypto.c:130
+#: ../cli/src/connections.c:204 ../cli/src/connections.c:554
#, c-format
-msgid "Doesn't look like a PEM private key file."
-msgstr "Aquest no sembla que sigui un fitxer de clau privada PEM."
+msgid "Error: 'con list': %s"
+msgstr "Error: «con list»: %s"
-#: ../libnm-util/crypto.c:138
+#: ../cli/src/connections.c:206 ../cli/src/connections.c:556
#, c-format
-msgid "Not enough memory to store PEM file data."
-msgstr "No hi ha prou memòria per a emmagatzemar les dades del fitxer PEM."
-
-#: ../libnm-util/crypto.c:154
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Error: «con list»: %s; camps permesos: %s"
+
+#: ../cli/src/connections.c:214
+msgid "Connection details"
+msgstr "Detalls de la connexió"
+
+#: ../cli/src/connections.c:398 ../cli/src/connections.c:619
+msgid "system"
+msgstr "sistema"
+
+#: ../cli/src/connections.c:398 ../cli/src/connections.c:619
+msgid "user"
+msgstr "usuari"
+
+#: ../cli/src/connections.c:400
+msgid "never"
+msgstr "mai"
+
+#. "CAPABILITIES"
+#. Print header
+#. "WIFI-PROPERTIES"
+#: ../cli/src/connections.c:401 ../cli/src/connections.c:402
+#: ../cli/src/connections.c:620 ../cli/src/connections.c:623
+#: ../cli/src/devices.c:469 ../cli/src/devices.c:521 ../cli/src/devices.c:643
+#: ../cli/src/devices.c:669 ../cli/src/devices.c:670 ../cli/src/devices.c:671
+#: ../cli/src/devices.c:672 ../cli/src/devices.c:673 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:563 ../cli/src/settings.c:664
+#: ../cli/src/settings.c:938 ../cli/src/settings.c:939
+#: ../cli/src/settings.c:941 ../cli/src/settings.c:943
+#: ../cli/src/settings.c:1068 ../cli/src/settings.c:1069
+#: ../cli/src/settings.c:1070 ../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:1161
+#: ../cli/src/settings.c:1236
+msgid "yes"
+msgstr "sí"
+
+#: ../cli/src/connections.c:401 ../cli/src/connections.c:402
+#: ../cli/src/connections.c:620 ../cli/src/connections.c:623
+#: ../cli/src/devices.c:469 ../cli/src/devices.c:521 ../cli/src/devices.c:643
+#: ../cli/src/devices.c:669 ../cli/src/devices.c:670 ../cli/src/devices.c:671
+#: ../cli/src/devices.c:672 ../cli/src/devices.c:673 ../cli/src/settings.c:520
+#: ../cli/src/settings.c:522 ../cli/src/settings.c:563
+#: ../cli/src/settings.c:664 ../cli/src/settings.c:938
+#: ../cli/src/settings.c:939 ../cli/src/settings.c:941
+#: ../cli/src/settings.c:943 ../cli/src/settings.c:1068
+#: ../cli/src/settings.c:1069 ../cli/src/settings.c:1070
+#: ../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:1161 ../cli/src/settings.c:1236
+msgid "no"
+msgstr "no"
+
+#: ../cli/src/connections.c:475 ../cli/src/connections.c:518
+msgid "System connections"
+msgstr "Connexions del sistema"
+
+#: ../cli/src/connections.c:480 ../cli/src/connections.c:531
+msgid "User connections"
+msgstr "Connexions d'usuari"
+
+#: ../cli/src/connections.c:492 ../cli/src/connections.c:1487
+#: ../cli/src/connections.c:1503 ../cli/src/connections.c:1512
+#: ../cli/src/connections.c:1521 ../cli/src/connections.c:1532
+#: ../cli/src/connections.c:1617 ../cli/src/devices.c:1117
+#: ../cli/src/devices.c:1127 ../cli/src/devices.c:1229
+#: ../cli/src/devices.c:1236 ../cli/src/devices.c:1435
+#: ../cli/src/devices.c:1442
#, c-format
-msgid "Malformed PEM file: Proc-Type was not first tag."
-msgstr ""
-"El format del fitxer PEM és incorrecte: la primera etiqueta no és la de Proc-"
-"Type."
+msgid "Error: %s argument is missing."
+msgstr "Error: Falta l'argument %s."
-#: ../libnm-util/crypto.c:162
+#: ../cli/src/connections.c:505
#, c-format
-msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
-msgstr ""
-"El format del fitxer PEM és incorrecte: l'etiqueta de Proc-Type «%s» és "
-"desconeguda."
+msgid "Error: %s - no such connection."
+msgstr "Error: %s - no existeix la connexió."
-#: ../libnm-util/crypto.c:172
+#: ../cli/src/connections.c:537 ../cli/src/connections.c:1545
+#: ../cli/src/connections.c:1635 ../cli/src/devices.c:940
+#: ../cli/src/devices.c:1007 ../cli/src/devices.c:1141
+#: ../cli/src/devices.c:1242 ../cli/src/devices.c:1448
#, c-format
-msgid "Malformed PEM file: DEK-Info was not the second tag."
-msgstr ""
-"El format del fitxer PEM és incorrecte: la segona etiqueta no és la de DEK-"
-"Info."
+msgid "Unknown parameter: %s\n"
+msgstr "Paràmetre desconegut: %s\n"
-#: ../libnm-util/crypto.c:183
+#: ../cli/src/connections.c:546
#, c-format
-msgid "Malformed PEM file: no IV found in DEK-Info tag."
-msgstr ""
-"El format del fitxer PEM és incorrecte: no s'ha trobat cap vector "
-"d'inicialització a l'etiqueta de DEK-Info."
+msgid "Error: no valid parameter specified."
+msgstr "Error: No s'ha especificat cap paràmetre vàlid."
-#: ../libnm-util/crypto.c:190
+#: ../cli/src/connections.c:561 ../cli/src/connections.c:1738
+#: ../cli/src/devices.c:1646 ../cli/src/network-manager.c:401
#, c-format
-msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
-msgstr ""
-"El format del fitxer PEM és incorrecte: el format del vector "
-"d'inicialització a l'etiqueta DEK-Info no és vàlid."
+msgid "Error: %s."
+msgstr "Error: %s."
-#: ../libnm-util/crypto.c:203
+#: ../cli/src/connections.c:668
#, c-format
-msgid "Malformed PEM file: unknown private key cipher '%s'."
-msgstr ""
-"El format del fitxer PEM és incorrecte: el criptògraf «%s» de clau privada és "
-"desconegut."
+msgid "Error: 'con status': %s"
+msgstr "Error: «con status»: %s"
-#: ../libnm-util/crypto.c:222
+#: ../cli/src/connections.c:670
#, c-format
-msgid "Could not decode private key."
-msgstr "No s'ha pogut descodificar la clau privada."
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Error: «con status»: %s; camps permesos: %s"
-#: ../libnm-util/crypto.c:267
-#, c-format
-msgid "PEM certificate '%s' had no end tag '%s'."
-msgstr "No s'ha trobat l'etiqueta de tancament «%s» al certificat PEM «%s»."
+#: ../cli/src/connections.c:677
+msgid "Active connections"
+msgstr "Connexions actives"
-#: ../libnm-util/crypto.c:277
+#: ../cli/src/connections.c:1159
#, c-format
-msgid "Failed to decode certificate."
-msgstr "No s'ha pogut descodificar el certificat."
+msgid "no active connection on device '%s'"
+msgstr "no hi ha cap connexió activa al dispositiu «%s»"
-#: ../libnm-util/crypto.c:286
+#: ../cli/src/connections.c:1167
#, c-format
-msgid "Not enough memory to store certificate data."
-msgstr "No hi ha prou memòria per a emmagatzemar les dades del certificat."
+msgid "no active connection or device"
+msgstr "connexió o dispositiu no actiu"
-#: ../libnm-util/crypto.c:294
+#: ../cli/src/connections.c:1236
#, c-format
-msgid "Not enough memory to store file data."
-msgstr "No hi ha prou memòria per a emmagatzemar les dades del fitxer."
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "el dispositiu «%s» no és compatible amb la connexió «%s»"
-#: ../libnm-util/crypto.c:324
+#: ../cli/src/connections.c:1238
#, c-format
-msgid "IV must be an even number of bytes in length."
-msgstr ""
-"La llargada del vector d'inicialització ha de ser un nombre parell de bytes."
+msgid "no device found for connection '%s'"
+msgstr "no s'ha trobat cap dispositiu per a la connexió «%s»"
-#: ../libnm-util/crypto.c:333
-#, c-format
-msgid "Not enough memory to store the IV."
-msgstr "No hi ha prou memòria per a emmagatzemar el vector d'inicialització."
+#: ../cli/src/connections.c:1249
+msgid "activating"
+msgstr "s'està activant"
-#: ../libnm-util/crypto.c:344
-#, c-format
-msgid "IV contains non-hexadecimal digits."
-msgstr "El vector d'inicialització conté dígits que no són hexadecimals."
+#: ../cli/src/connections.c:1251
+msgid "activated"
+msgstr "activada"
-#: ../libnm-util/crypto.c:382 ../libnm-util/crypto_gnutls.c:143
-#: ../libnm-util/crypto_nss.c:169
-#, c-format
-msgid "Private key cipher '%s' was unknown."
-msgstr "Es desconeix el criptògraf «%s» de la clau privada."
+#: ../cli/src/connections.c:1254 ../cli/src/connections.c:1277
+#: ../cli/src/connections.c:1310 ../cli/src/devices.c:281
+#: ../cli/src/devices.c:644 ../cli/src/network-manager.c:98
+#: ../cli/src/network-manager.c:156 ../cli/src/settings.c:485
+msgid "unknown"
+msgstr "desconegut"
-#: ../libnm-util/crypto.c:391
-#, c-format
-msgid "Not enough memory to decrypt private key."
-msgstr "No hi ha prou memòria per a desencriptar a la clau privada."
+#: ../cli/src/connections.c:1263
+msgid "VPN connecting (prepare)"
+msgstr "S'està connectant a la VPN (preparació)"
-#: ../libnm-util/crypto.c:511
-#, c-format
-msgid "Unable to determine private key type."
-msgstr "No s'ha pogut determinar el tipus de la clau privada."
+#: ../cli/src/connections.c:1265
+msgid "VPN connecting (need authentication)"
+msgstr "S'està connectant a la VPN (cal autenticació)"
-#: ../libnm-util/crypto.c:530
-#, c-format
-msgid "Not enough memory to store decrypted private key."
-msgstr ""
-"No hi ha prou memòria per a emmagatzemar la clau privada desencriptada."
+#: ../cli/src/connections.c:1267
+msgid "VPN connecting"
+msgstr "S'està connectant a la VPN"
-#: ../libnm-util/crypto_gnutls.c:46
-msgid "Failed to initialize the crypto engine."
-msgstr "No s'ha pogut inicialitzar el motor criptogràfic."
+#: ../cli/src/connections.c:1269
+msgid "VPN connecting (getting IP configuration)"
+msgstr "S'està connectant a la VPN (obtenció de la configuració d'IP)"
-#: ../libnm-util/crypto_gnutls.c:90
-#, c-format
-msgid "Failed to initialize the MD5 engine: %s / %s."
-msgstr "No s'ha pogut inicialitzar el motor MD5: %s / %s."
+#: ../cli/src/connections.c:1271
+msgid "VPN connected"
+msgstr "S'ha connectat a la VPN"
-#: ../libnm-util/crypto_gnutls.c:152 ../libnm-util/crypto_nss.c:178
-#, c-format
-msgid "Not enough memory for decrypted key buffer."
-msgstr "No hi ha prou memòria per al búfer de la clau desencriptada."
+#: ../cli/src/connections.c:1273
+msgid "VPN connection failed"
+msgstr "No s'ha pogut connectar a la VPN"
-#: ../libnm-util/crypto_gnutls.c:160
-#, c-format
-msgid "Failed to initialize the decryption cipher context: %s / %s."
-msgstr ""
-"No s'ha pogut inicialitzar el context del criptògraf de desencriptació: %s / "
-"%s."
+#: ../cli/src/connections.c:1275
+msgid "VPN disconnected"
+msgstr "S'ha desconnectat la VPN"
-#: ../libnm-util/crypto_gnutls.c:169
-#, c-format
-msgid "Failed to set symmetric key for decryption: %s / %s."
-msgstr ""
-"No s'ha pogut definir la clau simètrica per a la desencriptació: %s / %s."
+#: ../cli/src/connections.c:1286
+msgid "unknown reason"
+msgstr "raó desconeguda"
-#: ../libnm-util/crypto_gnutls.c:178
-#, c-format
-msgid "Failed to set IV for decryption: %s / %s."
-msgstr ""
-"No s'ha pogut definir el vector d'inicialització per a la desencriptació: %"
-"s / %s."
+#: ../cli/src/connections.c:1288
+msgid "none"
+msgstr "cap"
-#: ../libnm-util/crypto_gnutls.c:187
-#, c-format
-msgid "Failed to decrypt the private key: %s / %s."
-msgstr "No s'ha pogut desencriptar la clau privada: %s / %s."
+#: ../cli/src/connections.c:1290
+msgid "the user was disconnected"
+msgstr "l'usuari s'ha desconnectat"
-#: ../libnm-util/crypto_gnutls.c:200
-#, c-format
-msgid "Failed to decrypt the private key."
-msgstr "No s'ha pogut desencriptar la clau privada."
+#: ../cli/src/connections.c:1292
+msgid "the base network connection was interrupted"
+msgstr "la connexió de xarxa de base es va interrompre"
-#: ../libnm-util/crypto_gnutls.c:235
-#, c-format
-msgid "Error initializing certificate data: %s"
-msgstr "S'ha produït un error en inicialitzar les dades del certificat: %s"
+#: ../cli/src/connections.c:1294
+msgid "the VPN service stopped unexpectedly"
+msgstr "el servei VPN es va parar inesperadament"
-#: ../libnm-util/crypto_gnutls.c:257
-#, c-format
-msgid "Couldn't decode certificate: %s"
-msgstr "No s'ha pogut descodificar el certificat: %s"
+#: ../cli/src/connections.c:1296
+msgid "the VPN service returned invalid configuration"
+msgstr "el servei VPN ha retornat una configuració no vàlida"
-#: ../libnm-util/crypto_gnutls.c:281
-#, c-format
-msgid "Couldn't initialize PKCS#12 decoder: %s"
-msgstr "No s'ha pogut inicialitzar el descodificador PKCS#12: %s"
+#: ../cli/src/connections.c:1298
+msgid "the connection attempt timed out"
+msgstr "l'intent de connexió ha excedit el temps"
-#: ../libnm-util/crypto_gnutls.c:294
-#, c-format
-msgid "Couldn't decode PKCS#12 file: %s"
-msgstr "No s'ha pogut descodificar el fitxer PKCS#12: %s"
+#: ../cli/src/connections.c:1300
+msgid "the VPN service did not start in time"
+msgstr "el servei VPN no s'ha iniciat a temps"
-#: ../libnm-util/crypto_gnutls.c:306
-#, c-format
-msgid "Couldn't verify PKCS#12 file: %s"
-msgstr "No s'ha pogut verificar el fitxer PKCS#12: %s"
+#: ../cli/src/connections.c:1302
+msgid "the VPN service failed to start"
+msgstr "no s'ha pogut iniciar el servei VPN"
+
+#: ../cli/src/connections.c:1304
+msgid "no valid VPN secrets"
+msgstr "els secrets de la VPN no són vàlids"
+
+#: ../cli/src/connections.c:1306
+msgid "invalid VPN secrets"
+msgstr "els secrets de la VPN no són vàlids"
+
+#: ../cli/src/connections.c:1308
+msgid "the connection was removed"
+msgstr "s'ha suprimit la connexió"
-#: ../libnm-util/crypto_nss.c:57
+#: ../cli/src/connections.c:1322
#, c-format
-msgid "Failed to initialize the crypto engine: %d."
-msgstr "No s'ha pogut inicialitzar el motor criptogràfic: %d"
+msgid "state: %s\n"
+msgstr "estat: %s\n"
-#: ../libnm-util/crypto_nss.c:111
+#: ../cli/src/connections.c:1325 ../cli/src/connections.c:1351
#, c-format
-msgid "Failed to initialize the MD5 context: %d."
-msgstr "No s'ha pogut inicialitzar el context MD5: %d."
+msgid "Connection activated\n"
+msgstr "S'ha activat la connexió\n"
-#: ../libnm-util/crypto_nss.c:186
+#: ../cli/src/connections.c:1328
#, c-format
-msgid "Failed to initialize the decryption cipher slot."
-msgstr "No s'ha pogut inicialitzar la ranura del criptògraf de desencriptació."
+msgid "Error: Connection activation failed."
+msgstr "Error: No s'ha pogut activar la connexió."
-#: ../libnm-util/crypto_nss.c:196
+#: ../cli/src/connections.c:1347
#, c-format
-msgid "Failed to set symmetric key for decryption."
-msgstr "No s'ha pogut definir la clau simètrica per a la desencriptació."
+msgid "state: %s (%d)\n"
+msgstr "estat: %s (%d)\n"
-#: ../libnm-util/crypto_nss.c:206
+#: ../cli/src/connections.c:1357
#, c-format
-msgid "Failed to set IV for decryption."
-msgstr ""
-"No s'ha pogut definir el vector d'inicialització per a la desencriptació."
+msgid "Error: Connection activation failed: %s."
+msgstr "Error: No s'ha pogut activar la connexió: %s."
-#: ../libnm-util/crypto_nss.c:214
+#: ../cli/src/connections.c:1374 ../cli/src/devices.c:1064
#, c-format
-msgid "Failed to initialize the decryption context."
-msgstr "No s'ha pogut inicialitzar el context de desxifratge."
+msgid "Error: Timeout %d sec expired."
+msgstr "Error: S'ha excedit el temps d'espera de %d segons."
-#: ../libnm-util/crypto_nss.c:227
+#: ../cli/src/connections.c:1417
#, c-format
-msgid "Failed to decrypt the private key: %d."
-msgstr "No s'ha pogut desxifrar la clau privada: %d."
+msgid "Error: Connection activation failed: %s"
+msgstr "Error: No s'ha pogut activar la connexió: %s"
-#: ../libnm-util/crypto_nss.c:239
+#: ../cli/src/connections.c:1431
#, c-format
-msgid "Failed to finalize decryption of the private key: %d."
-msgstr "No s'ha pogut finalitzar la desencriptació de la clau privada: %d."
+msgid "Error: Obtaining active connection for '%s' failed."
+msgstr "Error: No s'ha pogut obtenir la connexió activa per «%s»."
-#: ../libnm-util/crypto_nss.c:284
+#: ../cli/src/connections.c:1440
#, c-format
-msgid "Couldn't decode certificate: %d"
-msgstr "No s'ha pogut descodificar el certificat: %d"
+msgid "Active connection state: %s\n"
+msgstr "Estat de la connexió activa: %s\n"
-#: ../libnm-util/crypto_nss.c:319
+#: ../cli/src/connections.c:1441
#, c-format
-msgid "Couldn't convert password to UCS2: %d"
-msgstr "No s'ha pogut convertir la contrasenya a UCS2: %d"
+msgid "Active connection path: %s\n"
+msgstr "Camí de la connexió activa: %s\n"
-#: ../libnm-util/crypto_nss.c:347
+#: ../cli/src/connections.c:1496 ../cli/src/connections.c:1626
#, c-format
-msgid "Couldn't initialize PKCS#12 decoder: %d"
-msgstr "No s'ha pogut inicialitzar el descodificador PKCS#12: %d"
+msgid "Error: Unknown connection: %s."
+msgstr "Error: Connexió desconeguda: %s."
-#: ../libnm-util/crypto_nss.c:356
+#: ../cli/src/connections.c:1540 ../cli/src/devices.c:1135
#, c-format
-msgid "Couldn't decode PKCS#12 file: %d"
-msgstr "No s'ha pogut descodificar el fitxer PKCS#12: %d"
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Error: El valor «%s» del temps d'espera no és vàlid."
-#: ../libnm-util/crypto_nss.c:365
+#: ../cli/src/connections.c:1553 ../cli/src/connections.c:1643
#, c-format
-msgid "Couldn't verify PKCS#12 file: %d"
-msgstr "No s'ha pogut verificar el fitxer PKCS#12: %d"
+msgid "Error: id or uuid has to be specified."
+msgstr "Error: S'ha d'especificar un ID o UUID."
-#: ../src/nm-netlink-monitor.c:194 ../src/nm-netlink-monitor.c:454
+#: ../cli/src/connections.c:1573
#, c-format
-msgid "error processing netlink message: %s"
-msgstr "s'ha produït un error en processar el missatge netlink: %s"
+msgid "Error: No suitable device found: %s."
+msgstr "Error: No s'ha trobat cap dispositiu adequat: %s."
-#: ../src/nm-netlink-monitor.c:251
+#: ../cli/src/connections.c:1575
#, c-format
-msgid "unable to allocate netlink handle for monitoring link status: %s"
-msgstr ""
-"no s'ha pogut assignar el gestor del netlink per a fer un seguiment de "
-"l'estat de l'enllaç: %s"
+msgid "Error: No suitable device found."
+msgstr "Error: No s'ha trobat cap dispositiu adequat."
-#: ../src/nm-netlink-monitor.c:261
+#: ../cli/src/connections.c:1670
#, c-format
-msgid "unable to connect to netlink for monitoring link status: %s"
-msgstr ""
-"no s'ha pogut connectar amb el netlink per a fer un seguiment de l'estat de "
-"l'enllaç: %s"
+msgid "Warning: Connection not active\n"
+msgstr "Avís: La connexió no està activa\n"
-#: ../src/nm-netlink-monitor.c:269
+#: ../cli/src/connections.c:1727
#, c-format
-msgid "unable to join netlink group for monitoring link status: %s"
-msgstr ""
-"no s'ha pogut unir el grup del netlink per a fer un seguiment de l'estat de "
-"l'enllaç: %s"
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "Error: L'ordre «con» «%s» no és vàlida."
-#: ../src/nm-netlink-monitor.c:277
+#: ../cli/src/connections.c:1763
#, c-format
-msgid "unable to allocate netlink link cache for monitoring link status: %s"
-msgstr ""
-"no s'ha pogut assignar la memòria cau de l'enllaç del netlink per a fer un "
-"seguiment de l'estat de l'enllaç: %s"
+msgid "Error: could not connect to D-Bus."
+msgstr "Error: No s'ha pogut connectar al D-Bus."
-#: ../src/nm-netlink-monitor.c:418
+#: ../cli/src/connections.c:1770
#, c-format
-msgid "error updating link cache: %s"
-msgstr "s'ha produït un error en actualitzar la memòria cau de l'enllaç: %s"
+msgid "Error: Could not get system settings."
+msgstr "Error: No s'han pogut obtenir els paràmetres del sistema."
-#: ../src/nm-netlink-monitor.c:484
-msgid "error occurred while waiting for data on socket"
-msgstr "s'ha produït un error en esperar dades del sòcol"
+#: ../cli/src/connections.c:1778
+#, c-format
+msgid "Error: Could not get user settings."
+msgstr "Error: No s'han pogut obtenir els paràmetres de l'usuari."
-#: ../src/NetworkManager.c:293
+#: ../cli/src/connections.c:1788
#, c-format
-msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgid "Error: Can't obtain connections: settings services are not running."
msgstr ""
-"Opció no vàlida. Utilitzeu --help per a veure la llista d'opcions vàlides.\n"
-
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:92
-msgid "# Created by NetworkManager\n"
-msgstr "# Creat pel NetworkManager\n"
-
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:98
+"Error: No es poden obtenir les connexions: no s'estan executant els serveis "
+"dels paràmetres."
+
+#. 0
+#. 9
+#. 3
+#: ../cli/src/devices.c:62 ../cli/src/devices.c:93 ../cli/src/devices.c:201
+#: ../cli/src/devices.c:216
+msgid "DEVICE"
+msgstr "DISPOSITIU"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:64 ../cli/src/devices.c:97
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "ESTAT"
+
+#: ../cli/src/devices.c:74
+msgid "GENERAL"
+msgstr "GENERAL"
+
+#. 0
+#: ../cli/src/devices.c:75
+msgid "CAPABILITIES"
+msgstr "CAPACITATS"
+
+#. 1
+#: ../cli/src/devices.c:76
+msgid "WIFI-PROPERTIES"
+msgstr "PROPIETATS-WI-FI"
+
+#. 2
+#: ../cli/src/devices.c:77
+msgid "AP"
+msgstr "PUNT-D'ACCÉS"
+
+#. 3
+#: ../cli/src/devices.c:78
+msgid "WIRED-PROPERTIES"
+msgstr "PROPIETATS-AMB-FIL"
+
+#. 4
+#: ../cli/src/devices.c:79
+msgid "WIMAX-PROPERTIES"
+msgstr "PROPIETATS-WIMAX"
+
+#. 5
+#. 0
+#: ../cli/src/devices.c:80 ../cli/src/devices.c:213
+msgid "NSP"
+msgstr "NSP"
+
+#. 6
+#: ../cli/src/devices.c:81
+msgid "IP4-SETTINGS"
+msgstr "PARÀMETRES-IP4"
+
+#. 7
+#: ../cli/src/devices.c:82
+msgid "IP4-DNS"
+msgstr "DNS-IP4"
+
+#. 8
+#: ../cli/src/devices.c:83
+msgid "IP6-SETTINGS"
+msgstr "PARÀMETRES-IP6"
+
+#. 9
+#: ../cli/src/devices.c:84
+msgid "IP6-DNS"
+msgstr "DNS-IP6"
+
+#. 2
+#: ../cli/src/devices.c:95
+msgid "DRIVER"
+msgstr "CONTROLADOR"
+
+#. 3
+#: ../cli/src/devices.c:96
+msgid "HWADDR"
+msgstr "ADREÇA-FÃSICA"
+
+#. 0
+#: ../cli/src/devices.c:106
+msgid "CARRIER-DETECT"
+msgstr "DETECCIÓ-DE-LA-PORTADORA"
+
+#. 1
+#: ../cli/src/devices.c:107
+msgid "SPEED"
+msgstr "VELOCITAT"
+
+#. 0
+#: ../cli/src/devices.c:116
+msgid "CARRIER"
+msgstr "PORTADORA"
+
+#. 0
+#: ../cli/src/devices.c:126
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:127
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:128
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:129
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:130
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:139
+msgid "CTR-FREQ"
+msgstr "FREQ-CTR"
+
+#. 1
+#: ../cli/src/devices.c:140
+msgid "RSSI"
+msgstr "RSSI"
+
+#. 2
+#: ../cli/src/devices.c:141
+msgid "CINR"
+msgstr "CINR"
+
+#. 3
+#: ../cli/src/devices.c:142
+msgid "TX-POW"
+msgstr "FORÇA-TRANSMISSIÓ"
+
+#. 4
+#: ../cli/src/devices.c:143
+msgid "BSID"
+msgstr "BSID"
+
+#. 0
+#: ../cli/src/devices.c:152 ../cli/src/devices.c:163
+msgid "ADDRESS"
+msgstr "ADREÇA"
+
+#. 1
+#: ../cli/src/devices.c:153 ../cli/src/devices.c:164
+msgid "PREFIX"
+msgstr "PREFIX"
+
+#. 2
+#: ../cli/src/devices.c:154 ../cli/src/devices.c:165
+msgid "GATEWAY"
+msgstr "PASSAREL·LA"
+
+#. 0
+#: ../cli/src/devices.c:174 ../cli/src/devices.c:183
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:192
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:193
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:194
+msgid "MODE"
+msgstr "MODE"
+
+#. 3
+#: ../cli/src/devices.c:195
+msgid "FREQ"
+msgstr "FREQ"
+
+#. 4
+#: ../cli/src/devices.c:196
+msgid "RATE"
+msgstr "VELOCITAT"
+
+#. 5
+#. 1
+#: ../cli/src/devices.c:197 ../cli/src/devices.c:214
+msgid "SIGNAL"
+msgstr "SENYAL"
+
+#. 6
+#: ../cli/src/devices.c:198
+msgid "SECURITY"
+msgstr "SEGURETAT"
+
+#. 7
+#: ../cli/src/devices.c:199
+msgid "WPA-FLAGS"
+msgstr "INDICADORS-WPA"
+
+#. 8
+#: ../cli/src/devices.c:200
+msgid "RSN-FLAGS"
+msgstr "INDICADORS-RSN"
+
+#. 10
+#. 4
+#: ../cli/src/devices.c:202 ../cli/src/devices.c:217
+msgid "ACTIVE"
+msgstr "ACTIU"
+
+#: ../cli/src/devices.c:242
#, c-format
msgid ""
-"# Merged from %s\n"
+"Usage: nmcli dev { COMMAND | help }\n"
"\n"
-msgstr ""
-"# Fusionat des de %s\n"
+" COMMAND := { status | list | disconnect | wifi | wimax }\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"
-
-#: ../src/dns-manager/nm-dns-manager.c:256
-msgid "NOTE: the libc resolver may not support more than 3 nameservers."
msgstr ""
-"NOTA: pot ser que el sistema de resolució de la libc no funcioni amb més de "
-"3 servidors de noms."
-
-#: ../src/dns-manager/nm-dns-manager.c:258
-msgid "The nameservers listed below may not be recognized."
-msgstr "Pot ser que no es reconeguin els servidors de noms llistats més avall."
-
-#: ../system-settings/src/main.c:381
-#, c-format
-msgid "Auto %s"
-msgstr "%s automàtic"
-
-#~ msgid "Passphrase for wireless network %s"
-#~ msgstr "Contrasenya per a la xarxa sense fil %s"
-
-#~ msgid "Connection to the wireless network '%s' failed."
-#~ msgstr "Ha fallat la connexió a la xarxa sense fil «%s»."
-
-#~ msgid "Connection to the wired network failed."
-#~ msgstr "Ha fallat la connexió a la xarxa amb fil."
-
-#~ msgid "Error displaying connection information:"
-#~ msgstr "S'ha produït un error en mostrar la informació de la connexió:"
-
-#~ msgid "Could not find some required resources (the glade file)!"
-#~ msgstr ""
-#~ "Alguns dels recursos requerits no s'han pogut trobar (el fitxer glade)!"
-
-#~ msgid "No active connections!"
-#~ msgstr "No hi ha cap connexió activa."
-
-#~ msgid "%d Mb/s"
-#~ msgstr "%d Mb/s"
+"Utilització: nmcli dev { ORDRE | help }\n"
+"\n"
+" ORDRE := { status | list | disconnect | wifi | wimax }\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"
-#~ msgid "Wired Ethernet (%s)"
-#~ msgstr "Xarxa amb fil (%s)"
+#: ../cli/src/devices.c:263
+msgid "unmanaged"
+msgstr "sense gestió"
-#~ msgid "Wireless Ethernet (%s)"
-#~ msgstr "Xarxa sense fil (%s)"
+#: ../cli/src/devices.c:265
+msgid "unavailable"
+msgstr "no disponible"
-#~ msgid "Unknown"
-#~ msgstr "Desconegut"
+#: ../cli/src/devices.c:267 ../cli/src/network-manager.c:95
+msgid "disconnected"
+msgstr "desconnectat"
-#~ msgid "NetworkManager Applet"
-#~ msgstr "Miniaplicació NetworkManager"
+#: ../cli/src/devices.c:269
+msgid "connecting (prepare)"
+msgstr "s'està connectant (preparació)"
-#~ msgid ""
-#~ "Copyright © 2004-2006 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
-#~ msgstr ""
-#~ "Copyright © 2004-2006 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
+#: ../cli/src/devices.c:271
+msgid "connecting (configuring)"
+msgstr "s'està connectant (configuració)"
-#~ msgid ""
-#~ "Notification area applet for managing your network devices and "
-#~ "connections."
-#~ msgstr ""
-#~ "Miniaplicació per a l'àrea de notificació per a gestionar els vostres "
-#~ "dispositius de xarxa i connexions."
+#: ../cli/src/devices.c:273
+msgid "connecting (need authentication)"
+msgstr "s'està connectant (cal autenticació)"
-#~ msgid "translator-credits"
-#~ msgstr "Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>"
+#: ../cli/src/devices.c:275
+msgid "connecting (getting IP configuration)"
+msgstr "s'està connectant (obtenció de la configuració IP)"
-#~ msgid ""
-#~ "Copyright © 2004-2005 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
-#~ msgstr ""
-#~ "Copyright © 2004-2005 Red Hat, Inc.\n"
-#~ "Copyright © 2005-2006 Novell, Inc."
+#: ../cli/src/devices.c:277 ../cli/src/network-manager.c:93
+msgid "connected"
+msgstr "connectat"
-#~ msgid "VPN Login Failure"
-#~ msgstr "S'ha produït un error en l'entrada VPN"
+#: ../cli/src/devices.c:279
+msgid "connection failed"
+msgstr "no s'ha pogut connectar"
-#~ msgid "Could not start the VPN connection '%s' due to a login failure."
-#~ msgstr ""
-#~ "Atès que s'ha produït un error en l'entrada, no s'ha pogut iniciar la "
-#~ "connexió VPN «%s»."
+#: ../cli/src/devices.c:304 ../cli/src/devices.c:461 ../cli/src/devices.c:504
+msgid "Unknown"
+msgstr "Desconegut"
-#~ msgid "VPN Start Failure"
-#~ msgstr "No s'ha pogut iniciar la VPN"
+#: ../cli/src/devices.c:336
+msgid "(none)"
+msgstr "(cap)"
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' due to a failure launching the "
-#~ "VPN program."
-#~ msgstr ""
-#~ "No s'ha pogut iniciar la connexió VPN «%s» perquè s'ha produït un error en "
-#~ "llançar la VPN."
+#: ../cli/src/devices.c:361
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: s'ha produït un error en convertir l'adreça IP4 0x%X"
-#~ msgid "VPN Connect Failure"
-#~ msgstr "S'ha produït un error en la connexió VPN"
+#: ../cli/src/devices.c:430
+#, c-format
+msgid "%u MHz"
+msgstr "%u MHz"
-#~ msgid "Could not start the VPN connection '%s' due to a connection error."
-#~ msgstr ""
-#~ "No s'ha pogut iniciar la connexió VPN «%s» ja que s'ha produït un error de "
-#~ "connexió."
+#: ../cli/src/devices.c:431
+#, c-format
+msgid "%u MB/s"
+msgstr "%u MB/s"
-#~ msgid "VPN Configuration Error"
-#~ msgstr "S'ha produït un error de configuració de la VPN"
+#: ../cli/src/devices.c:440
+msgid "Encrypted: "
+msgstr "Encriptat: "
-#~ msgid "The VPN connection '%s' was not correctly configured."
-#~ msgstr "La connexió VPN «%s» no està correctament configurada."
+#: ../cli/src/devices.c:445
+msgid "WEP "
+msgstr "WEP "
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' because the VPN server did not "
-#~ "return an adequate network configuration."
-#~ msgstr ""
-#~ "No s'ha pogut iniciar la connexió VPN «%s» perquè el servidor VPN no ha "
-#~ "retornat cap configuració de xarxa adequada."
+#: ../cli/src/devices.c:447
+msgid "WPA "
+msgstr "WPA "
-#~ msgid "VPN Login Message"
-#~ msgstr "Missatge d'entrada de la VPN"
+#: ../cli/src/devices.c:449
+msgid "WPA2 "
+msgstr "WPA2 "
-#~ msgid ""
-#~ "The NetworkManager Applet could not find some required resources (the "
-#~ "glade file was not found)."
-#~ msgstr ""
-#~ "La miniaplicació NetworkManager no ha pogut trobar alguns dels recursos "
-#~ "requerits (no s'ha trobat el fitxer glade)."
+#: ../cli/src/devices.c:452
+msgid "Enterprise "
+msgstr "Empresa "
-# FIXME
-#~ msgid "The network device \"%s (%s)\" does not support wireless scanning."
-#~ msgstr "El dispositiu de xarxa «%s (%s)» no permet l'escaneig sense fil."
+#: ../cli/src/devices.c:461
+msgid "Ad-Hoc"
+msgstr "Ad-Hoc"
-#~ msgid "The network device \"%s (%s)\" does not support link detection."
-#~ msgstr "El dispositiu de xarxa «%s (%s)» no permet la detecció de l'enllaç."
+#: ../cli/src/devices.c:461
+msgid "Infrastructure"
+msgstr "Infraestructura"
-#~ msgid "(unknown)"
-#~ msgstr "(desconegut)"
+#: ../cli/src/devices.c:495
+msgid "Home"
+msgstr "Casa"
-#~ msgid "Preparing device %s for the wired network..."
-#~ msgstr "S'està preparant el dispositiu %s per a la xarxa amb fil..."
+#: ../cli/src/devices.c:498
+msgid "Partner"
+msgstr "Soci"
-#~ msgid "Preparing device %s for the wireless network '%s'..."
-#~ msgstr "S'està preparant el dispositiu %s per a la xarxa sense fil «%s»..."
+#: ../cli/src/devices.c:501
+msgid "Roaming"
+msgstr "Itinerància"
-#~ msgid "Configuring device %s for the wired network..."
-#~ msgstr "S'està configurant el dispositiu %s per a la xarxa amb fil..."
+#: ../cli/src/devices.c:570
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "Error: «dev list»: %s"
-#~ msgid "Attempting to join the wireless network '%s'..."
-#~ msgstr "S'està intentant entrar a la xarxa sense fil «%s»..."
+#: ../cli/src/devices.c:572
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Error: «dev list»: %s; camps permesos: %s"
-#~ msgid "Waiting for Network Key for the wireless network '%s'..."
-#~ msgstr "S'està esperant per a la clau de xarxa de la xarxa sense fil «%s»..."
+#: ../cli/src/devices.c:581
+msgid "Device details"
+msgstr "Detalls del dispositiu"
-#~ msgid "Requesting a network address from the wired network..."
-#~ msgstr "S'està sol·licitant una adreça de xarxa per a la xarxa amb fil..."
+#: ../cli/src/devices.c:613 ../cli/src/devices.c:1080
+msgid "(unknown)"
+msgstr "(desconegut)"
-#~ msgid "Requesting a network address from the wireless network '%s'..."
-#~ msgstr ""
-#~ "S'està sol·licitant una adreça de xarxa per a la xarxa sense fil «%s»..."
+#: ../cli/src/devices.c:614
+msgid "unknown)"
+msgstr "desconegut)"
-#~ msgid "Finishing connection to the wired network..."
-#~ msgstr "S'està finalitzant la connexió a la xarxa amb fil..."
+#: ../cli/src/devices.c:640
+#, c-format
+msgid "%u Mb/s"
+msgstr "%u Mb/s"
-#~ msgid "Finishing connection to the wireless network '%s'..."
-#~ msgstr "S'està finalizant la connexió a la xarxa sense fil «%s»..."
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:713
+msgid "on"
+msgstr "actiu"
-#~ msgid "NetworkManager is not running"
-#~ msgstr "No s'està executant el NetworkManager"
+#: ../cli/src/devices.c:713
+msgid "off"
+msgstr "inactiu"
-#~ msgid "Networking disabled"
-#~ msgstr "S'ha inhabilitat la xarxa"
+#: ../cli/src/devices.c:963
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Error: «dev status»: %s"
-#~ msgid "No network connection"
-#~ msgstr "No hi ha cap connexió de xarxa"
+#: ../cli/src/devices.c:965
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Error: «dev status»: %s; camps permesos: %s"
-#~ msgid "Wired network connection"
-#~ msgstr "Connexió de xarxa amb fil"
+#: ../cli/src/devices.c:972
+msgid "Status of devices"
+msgstr "Estat dels dispositius"
-#~ msgid "Connected to an Ad-Hoc wireless network"
-#~ msgstr "Connectat a una xarxa Ad-Hoc sense fil"
+#: ../cli/src/devices.c:1000
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "Error: Falta l'argument «%s»."
-#~ msgid "Wireless network connection to '%s' (%d%%)"
-#~ msgstr "Connexió de xarxa sense fil a «%s» (%d%%)"
+#: ../cli/src/devices.c:1029 ../cli/src/devices.c:1168
+#: ../cli/src/devices.c:1291 ../cli/src/devices.c:1497
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "Error: No s'ha trobat el dispositiu «%s»."
-#~ msgid "VPN connection to '%s'"
-#~ msgstr "Connexió VPN a «%s»"
+#: ../cli/src/devices.c:1052
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Èxit: El dispositiu «%s» s'ha desconnectat correctament."
-#~ msgid "VPN connecting to '%s'"
-#~ msgstr "S'està connectant amb VPN a «%s»"
+#: ../cli/src/devices.c:1077
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Error: No s'ha pogut desconnectar del dispositiu «%s» (%s): %s"
-#~ msgid "_Connect to Other Wireless Network..."
-#~ msgstr "_Connecta a d'altres xarxes sense fil..."
+#: ../cli/src/devices.c:1085
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "Estat del dispositiu: %d (%s)\n"
-#~ msgid "Create _New Wireless Network..."
-#~ msgstr "Crea una xarxa sense fil _nova..."
+#: ../cli/src/devices.c:1149
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Error: S'ha d'especificar l'iface."
-#~ msgid "_VPN Connections"
-#~ msgstr "Connexions _VPN"
+#: ../cli/src/devices.c:1267
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Error: «dev wifi»: %s"
-#~ msgid "_Configure VPN..."
-#~ msgstr "_Configura la VPN..."
+#: ../cli/src/devices.c:1269
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Error: «dev wifi»: %s; camps permesos: %s"
-#~ msgid "_Disconnect VPN..."
-#~ msgstr "_Desconnecta la VPN..."
+#: ../cli/src/devices.c:1276
+msgid "WiFi scan list"
+msgstr "Llista d'escaneig Wi-Fi"
-#~ msgid "_Dial Up Connections"
-#~ msgstr "Connexions de _marcatge"
+#: ../cli/src/devices.c:1311 ../cli/src/devices.c:1365
+#: ../cli/src/devices.c:1559
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Error: No s'ha trobat el punt d'accés amb l'adreça física «%s»."
-#~ msgid "Connect to %s..."
-#~ msgstr "Connecta a %s..."
+#: ../cli/src/devices.c:1328
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "Error: El dispositiu «%s» no és un dispositiu Wi-Fi."
-#~ msgid "Disconnect from %s..."
-#~ msgstr "Desconnecta de %s..."
+#: ../cli/src/devices.c:1392
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "Error: L'ordre «%s» de «dev wifi» no és vàlida."
-#~ msgid "No network devices have been found"
-#~ msgstr "No s'ha trobat cap dispositiu de xarxa"
+#: ../cli/src/devices.c:1473
+#, c-format
+msgid "Error: 'dev wimax': %s"
+msgstr "Error: «dev wimax»: %s"
-#~ msgid "NetworkManager is not running..."
-#~ msgstr "No s'està executant el NetworkManager..."
+#: ../cli/src/devices.c:1475
+#, c-format
+msgid "Error: 'dev wimax': %s; allowed fields: %s"
+msgstr "Error: «dev wimax»: %s; camps permesos: %s"
-#~ msgid "Enable _Networking"
-#~ msgstr "Habilita la _xarxa"
+#: ../cli/src/devices.c:1482
+msgid "WiMAX NSP list"
+msgstr "Llista de WiMAX NSP"
-#~ msgid "Enable _Wireless"
-#~ msgstr "Habilita la xarxa _sense fil"
+#: ../cli/src/devices.c:1517
+#, c-format
+msgid "Error: NSP with name '%s' not found."
+msgstr "Error: No s'ha trobat l'NSP amb el nom «%s»."
-#~ msgid "Connection _Information"
-#~ msgstr "_Informació de la connexió"
+#: ../cli/src/devices.c:1528
+#, c-format
+msgid "Error: Device '%s' is not a WiMAX device."
+msgstr "Error: El dispositiu «%s» no és un dispositiu WiMAX."
-#~ msgid "_Help"
-#~ msgstr "A_juda"
+#: ../cli/src/devices.c:1586
+#, c-format
+msgid "Error: 'dev wimax' command '%s' is not valid."
+msgstr "Error: L'ordre «%s» de «dev wimax» no és vàlida."
-#~ msgid "_About"
-#~ msgstr "_Quant a"
+#: ../cli/src/devices.c:1637
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "Error: L'ordre «%s» de «dev» no és vàlida."
+
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "S'ESTÀ-EXECUTANT"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "XARXA-HABILITADA"
+
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "MAQUINARI-WI-FI"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "WI-FI"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "MAQUINARI-WWAN"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "WWAN"
+
+#. 6
+#: ../cli/src/network-manager.c:42
+msgid "WIMAX-HARDWARE"
+msgstr "MAQUINARI-WIMAX"
+
+#. 7
+#: ../cli/src/network-manager.c:43
+msgid "WIMAX"
+msgstr "WIMAX"
+
+#: ../cli/src/network-manager.c:67
+#, c-format
+msgid ""
+"Usage: nmcli nm { COMMAND | help }\n"
+"\n"
+" COMMAND := { status | enable | sleep | wifi | wwan | wimax }\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 ""
+"Utilització: nmcli nm { ORDRE | help }\n"
+"\n"
+" ORDRE := { status | enable | sleep | wifi | wwan | wimax }\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"
-#~ msgid ""
-#~ "The NetworkManager applet could not find some required resources. It "
-#~ "cannot continue.\n"
-#~ msgstr ""
-#~ "La miniaplicació NetworkManager no ha pogut trobar alguns dels recursos "
-#~ "requerits. No pot continuar.\n"
+#: ../cli/src/network-manager.c:89
+msgid "asleep"
+msgstr "dormint"
-#~ msgid "Open System"
-#~ msgstr "Sistema obert"
+#: ../cli/src/network-manager.c:91
+msgid "connecting"
+msgstr "s'està connectant"
-#~ msgid "Shared Key"
-#~ msgstr "Clau compartida"
+#: ../cli/src/network-manager.c:133
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Error: «nm status»: %s"
-#~ msgid "Automatic (Default)"
-#~ msgstr "Automàtic (Predeterminat)"
+#: ../cli/src/network-manager.c:135
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Error: «nm status»: %s; camps permesos: %s"
+
+#: ../cli/src/network-manager.c:142
+msgid "NetworkManager status"
+msgstr "Estat del NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:149 ../cli/src/network-manager.c:150
+#: ../cli/src/network-manager.c:151 ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:153 ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:257
+#: ../cli/src/network-manager.c:306 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:370
+msgid "enabled"
+msgstr "habilitat"
+
+#: ../cli/src/network-manager.c:149 ../cli/src/network-manager.c:150
+#: ../cli/src/network-manager.c:151 ../cli/src/network-manager.c:152
+#: ../cli/src/network-manager.c:153 ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:161 ../cli/src/network-manager.c:257
+#: ../cli/src/network-manager.c:306 ../cli/src/network-manager.c:338
+#: ../cli/src/network-manager.c:370
+msgid "disabled"
+msgstr "inhabilitat"
+
+#: ../cli/src/network-manager.c:159
+msgid "running"
+msgstr "s'està executant"
+
+#: ../cli/src/network-manager.c:159
+msgid "not running"
+msgstr "no s'està executant"
+
+#: ../cli/src/network-manager.c:184
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Error: No s'ha pogut connectar al bus del sistema: %s"
-#~ msgid "AES-CCMP"
-#~ msgstr "AES-CCMP"
+#: ../cli/src/network-manager.c:195
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr ""
+"Error: No s'ha pogut crear el servidor intermediari d'objectes del D-Bus."
-#~ msgid "TKIP"
-#~ msgstr "TKIP"
+#: ../cli/src/network-manager.c:201
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "S'ha produït un en dormir: %s"
-#~ msgid "Dynamic WEP"
-#~ msgstr "WEP dinàmic"
+#: ../cli/src/network-manager.c:247 ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328 ../cli/src/network-manager.c:360
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr "Error: Aquí no és vàlid el valor «%s» de «--fields»; camps permesos: %s"
-#~ msgid "None"
-#~ msgstr "Cap"
+#: ../cli/src/network-manager.c:255
+msgid "Networking enabled"
+msgstr "Xarxa habilitada"
-#~ msgid "WEP 64/128-bit ASCII"
-#~ msgstr "WEP 64/128-bit ASCII"
+#: ../cli/src/network-manager.c:266
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr ""
+"Error: El paràmetre «enable» no és vàlid: «%s»; utilitzeu «true» (cert) o "
+"«false» (fals)."
-#~ msgid "WEP 64/128-bit Hex"
-#~ msgstr "WEP 64/128-bit Hex"
+#: ../cli/src/network-manager.c:275
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Error: El NetworkManager no ha exportat l'estat de dormir."
-#~ msgid "WEP 128-bit Passphrase"
-#~ msgstr "WEP contrasenya de 128-bits"
+#: ../cli/src/network-manager.c:283
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr ""
+"Error: El paràmetre «sleep» no és vàlid: «%s»; utilitzeu «true» (cert) o "
+"«false» (fals)."
-#~ msgid "PEAP"
-#~ msgstr "PEAP"
+#: ../cli/src/network-manager.c:304
+msgid "WiFi enabled"
+msgstr "Wi-Fi habilitat"
-#~ msgid "TLS"
-#~ msgstr "TLS"
+#: ../cli/src/network-manager.c:315
+#, c-format
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "Error: El paràmetre «wifi» no és vàlid: «%s»."
-#~ msgid "TTLS"
-#~ msgstr "TTLS"
+#: ../cli/src/network-manager.c:336
+msgid "WWAN enabled"
+msgstr "WWAN habilitat"
-#~ msgid "WPA2 Enterprise"
-#~ msgstr "WPA2 Enterprise"
+#: ../cli/src/network-manager.c:347
+#, c-format
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "Error: El paràmetre «wwan» no és vàlid: «%s»."
-#~ msgid "WPA Enterprise"
-#~ msgstr "WPA Enterprise"
+#: ../cli/src/network-manager.c:368
+msgid "WiMAX enabled"
+msgstr "WiMAX habilitat"
-#~ msgid "WPA2 Personal"
-#~ msgstr "WPA2 personal"
+#: ../cli/src/network-manager.c:379
+#, c-format
+msgid "Error: invalid 'wimax' parameter: '%s'."
+msgstr "Error: El paràmetre «wimax» no és vàlid: «%s»."
-#~ msgid "WPA Personal"
-#~ msgstr "WPA personal"
+#: ../cli/src/network-manager.c:390
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "Error: L'ordre «%s» de «nm» no és vàlida."
-#~ msgid "Orientation"
-#~ msgstr "Orientació"
+#: ../cli/src/nmcli.c:69
+#, 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"
+msgstr ""
+"Utilització: %s [OPCIONS] OBJECTE { ORDRE | help }\n"
+"\n"
+"OPCIONS\n"
+" -t[erse] sortida terse\n"
+" -p[retty] sortida pretty\n"
+" -m[ode] tabular|multiline mode de sortida\n"
+" -f[ields] <field1,field2,...>|all|common especifica els camps de la "
+"sortida\n"
+" -e[scape] yes|no escapa els separadors de "
+"columnes en valors\n"
+" -v[ersion] mostra la versió del programa\n"
+" -h[elp] imprimeix aquesta ajuda\n"
+"\n"
+"OBJECTE\n"
+" nm estat del NetworkManager\n"
+" con connexions del NetworkManager\n"
+" dev dispositius gestionats pel NetworkManager\n"
+"\n"
-#~ msgid "The orientation of the tray."
-#~ msgstr "La orientació de l'àrea de notificació."
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Error: L'objecte «%s» és desconegut, proveu «nmcli help»."
-#~ msgid "Wired Network (%s)"
-#~ msgstr "Xarxa amb fil (%s)"
+#: ../cli/src/nmcli.c:143
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Error: L'opció «--terse» s'ha especificat dos cops."
-#~ msgid "_Wired Network"
-#~ msgstr "Xarxa amb _fil"
+#: ../cli/src/nmcli.c:148
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr "Error: L'opció «--terse» és mútuament exclusiu amb «--pretty»."
-#~ msgid "Wireless Network (%s)"
-#~ msgid_plural "Wireless Networks (%s)"
-#~ msgstr[0] "Xarxa sense fil (%s)"
-#~ msgstr[1] "Xarxes sense fil (%s)"
+#: ../cli/src/nmcli.c:156
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Error: L'opció «--pretty» s'ha especificat dos cops."
-#~ msgid "Wireless Network"
-#~ msgid_plural "Wireless Networks"
-#~ msgstr[0] "Xarxa sense fil"
-#~ msgstr[1] "Xarxes sense fil"
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr "Error: L'opció «--pretty» és mútuament exclusiu amb «--terse»."
-#~ msgid " (invalid Unicode)"
-#~ msgstr " (Unicode invàlid)"
+#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "Error: Falta l'argument per a l'opció «%s»."
-#~ msgid ""
-#~ "By default, the wireless network's name is set to your computer's name, %"
-#~ "s, with no encryption enabled"
-#~ msgstr ""
-#~ "Per defecte, el nom de la xarxa sense fil s'estableix al nom de "
-#~ "l'ordinador, %s, sense habilitar el xifratge"
+#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Error: «%s» no és un argument vàlid per a l'opció «%s»."
-#~ msgid "Create new wireless network"
-#~ msgstr "Crea una nova xarxa sense fil"
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Error: Falten els camps per a les opcions «%s»."
-#~ msgid ""
-#~ "Enter the name and security settings of the wireless network you wish to "
-#~ "create."
-#~ msgstr ""
-#~ "Entreu el nom els paràmetres de seguretat per a la xarxa sense fil que "
-#~ "vulgueu crear."
+#: ../cli/src/nmcli.c:209
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "Eina nmcli, versió %s\n"
-#~ msgid "Create New Wireless Network"
-#~ msgstr "Crea una xarxa sense fil nova"
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "Error: L'opció «%s» és desconeguda, proveu «nmcli -help»."
-#~ msgid "Existing wireless network"
-#~ msgstr "Xarxa sense fil existent"
+#: ../cli/src/nmcli.c:234
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "S'ha capturat el senyal %d, s'està aturant..."
-#~ msgid "Enter the name of the wireless network to which you wish to connect."
-#~ msgstr "Entreu el nom de la xarxa sense fil a la que vulgueu connectar-vos."
+#: ../cli/src/nmcli.c:259
+#, c-format
+msgid "Error: Could not connect to NetworkManager."
+msgstr "Error: No s'ha pogut connectar al NetworkManager."
-#~ msgid "Connect to Other Wireless Network"
-#~ msgstr "Connecta a d'altres xarxes sense fil"
+#: ../cli/src/nmcli.c:275
+msgid "Success"
+msgstr "Èxit"
-#~ msgid "Error connecting to wireless network"
-#~ msgstr "S'ha produït un error en connectar a la xarxa sense fil..."
+#: ../cli/src/settings.c:423
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (clau-hex-ascii)"
-#~ msgid ""
-#~ "The requested wireless network requires security capabilities unsupported "
-#~ "by your hardware."
-#~ msgstr ""
-#~ "La xarxa sense fil seleccionada requereix certes característiques de "
-#~ "seguretat que no estan implementades en el aquest maquinari."
+#: ../cli/src/settings.c:425
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (contrasenya de 104/128-bit)"
-#~ msgid "Cannot start VPN connection '%s'"
-#~ msgstr "No s'ha pogut iniciar la connexió VPN «%s»"
+#: ../cli/src/settings.c:428
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (desconegut)"
-#~ msgid ""
-#~ "Could not find the authentication dialog for VPN connection type '%s'. "
-#~ "Contact your system administrator."
-#~ msgstr ""
-#~ "No s'ha pogut trobar el diàleg d'autenticació per al tipus de connexió "
-#~ "VPN «%s». Contacteu el vostre administrador de sistemes."
+#: ../cli/src/settings.c:454
+msgid "0 (unknown)"
+msgstr "0 (desconegut)"
-#~ msgid ""
-#~ "There was a problem launching the authentication dialog for VPN "
-#~ "connection type '%s'. Contact your system administrator."
-#~ msgstr ""
-#~ "S'ha produït un error en llançar el diàleg d'autenticació per al tipus de "
-#~ "connexió VPN «%s». Contacteu el vostre administrador de sistemes."
+#: ../cli/src/settings.c:460
+msgid "any, "
+msgstr "qualsevol, "
-#~ msgid " "
-#~ msgstr " "
+#: ../cli/src/settings.c:462
+msgid "900 MHz, "
+msgstr "900 MHz, "
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Informació de la connexió activa</"
-#~ "span>"
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
-#~ "Network</span>\n"
-#~ "\n"
-#~ "A passphrase or encryption key is required to access the wireless network "
-#~ "'%s'."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Contrasenya necessària per a la "
-#~ "xarxa sense fil</span>\n"
-#~ "\n"
-#~ "Es requereix una contrasenya o clau de xifratge per a la xarxa sense fil «%"
-#~ "s»."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</"
-#~ "span>\n"
-#~ "\n"
-#~ "%s It will not be completely functional."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Funcionalitat de xarxa reduïda</"
-#~ "span>\n"
-#~ "\n"
-#~ "%s No serà del tot funcional."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Wireless Network Login "
-#~ "Confirmation</span>\n"
-#~ "\n"
-#~ "You have chosen to log in to the wireless network '%s'. If you are sure "
-#~ "that this wireless network is secure, click the checkbox below and "
-#~ "NetworkManager will not require confirmation on subsequent log ins."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Confirmació de l'entrada a la xarxa "
-#~ "sense fil</span>\n"
-#~ "\n"
-#~ "Heu escollit entrar a la xarxa sense fil «%s». Si esteu segur que la xarxa "
-#~ "sense fil és segura, feu clic al quadre de comprovació de sota i el "
-#~ "NetworkManager no us tornarà a demanarà cap més confirmació per entrar a "
-#~ "aquesta xarxa en el futur."
+#: ../cli/src/settings.c:464
+msgid "1800 MHz, "
+msgstr "1800 MHz, "
-#~ msgid "Anonymous Identity:"
-#~ msgstr "Identitat anònima:"
+#: ../cli/src/settings.c:466
+msgid "1900 MHz, "
+msgstr "1900 MHz, "
-#~ msgid "Authentication:"
-#~ msgstr "Autenticació:"
+#: ../cli/src/settings.c:468
+msgid "850 MHz, "
+msgstr "850 MHz, "
-#~ msgid "Broadcast Address:"
-#~ msgstr "Adreça de multidifusió:"
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 MHz, "
-#~ msgid "CA Certificate File:"
-#~ msgstr "Fitxer del certificat CA:"
+#: ../cli/src/settings.c:472
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 MHz, "
-#~ msgid "C_onnect"
-#~ msgstr "C_onnecta"
+#: ../cli/src/settings.c:474
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
-#~ msgid "Client Certificate File:"
-#~ msgstr "Fitxer del certificat del client:"
+#: ../cli/src/settings.c:476
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 MHz, "
-#~ msgid "Connection Information"
-#~ msgstr "Informació de la connexió"
+#: ../cli/src/settings.c:478
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 MHz, "
-#~ msgid "Default Route:"
-#~ msgstr "Ruta predeterminada:"
+#: ../cli/src/settings.c:480
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 MHz, "
-#~ msgid "Destination Address:"
-#~ msgstr "Adreça de destí:"
+#: ../cli/src/settings.c:482
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 MHz, "
-#~ msgid "Driver:"
-#~ msgstr "Connector:"
+#: ../cli/src/settings.c:566 ../cli/src/settings.c:733
+msgid "auto"
+msgstr "automàtic"
-#~ msgid "EAP Method:"
-#~ msgstr "Mètode EAP:"
+#: ../cli/src/settings.c:728 ../cli/src/settings.c:731
+#: ../cli/src/settings.c:732 ../cli/src/utils.c:172
+msgid "not set"
+msgstr "sense definir"
-#~ msgid "Hardware Address:"
-#~ msgstr "Adreça del maquinari:"
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "el camp «%s» ha d'estar sol"
-#~ msgid "IP Address:"
-#~ msgstr "Adreça IP:"
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "el camp «%s» no és vàlid"
-#~ msgid "Identity:"
-#~ msgstr "Identitat:"
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "L'opció «--terse» requereix que s'especifiqui «--fields»"
-#~ msgid "Interface:"
-#~ msgstr "Interfície:"
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr ""
+"L'opció «--terse» requereix valors específics de l'opció «--fields» i no «%s»"
-#~ msgid "Key Type:"
-#~ msgstr "Tipus de clau:"
+#: ../libnm-util/crypto.c:121
+#, c-format
+msgid "PEM key file had no end tag '%s'."
+msgstr "El fitxer de clau PEM no té l'etiqueta de final «%s»."
-#~ msgid "Key management:"
-#~ msgstr "Gestió de claus:"
+#: ../libnm-util/crypto.c:131
+#, c-format
+msgid "Doesn't look like a PEM private key file."
+msgstr "No sembla que sigui un fitxer de clau privada PEM."
-#~ msgid "Key:"
-#~ msgstr "Clau:"
+#: ../libnm-util/crypto.c:139
+#, c-format
+msgid "Not enough memory to store PEM file data."
+msgstr "No hi ha prou memòria per a emmagatzemar les dades del fitxer PEM."
-#~ msgid ""
-#~ "None\n"
-#~ "WEP 128-bit Passphrase\n"
-#~ "WEP 64/128-bit Hex\n"
-#~ "WEP 64/128-bit ASCII\n"
-#~ msgstr ""
-#~ "Cap\n"
-#~ "WEP contrasenya de 128 bits\n"
-#~ "WEP 64/128-bit Hex\n"
-#~ "WEP 64/128-bit ASCII\n"
-
-#~ msgid ""
-#~ "Open System\n"
-#~ "Shared Key"
-#~ msgstr ""
-#~ "Sistema obert\n"
-#~ "Clau compartida"
+#: ../libnm-util/crypto.c:155
+#, c-format
+msgid "Malformed PEM file: Proc-Type was not first tag."
+msgstr ""
+"El format del fitxer PEM és incorrecte: la primera etiqueta no és la de Proc-"
+"Type."
-#~ msgid "Other Wireless Network..."
-#~ msgstr "Altres xarxes sense fil..."
+#: ../libnm-util/crypto.c:163
+#, c-format
+msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
+msgstr ""
+"El format del fitxer PEM és incorrecte: l'etiqueta de Proc-Type «%s» és "
+"desconeguda."
-#~ msgid "Passphrase:"
-#~ msgstr "Contrasenya:"
+#: ../libnm-util/crypto.c:173
+#, c-format
+msgid "Malformed PEM file: DEK-Info was not the second tag."
+msgstr ""
+"El format del fitxer PEM és incorrecte: la segona etiqueta no és la de DEK-"
+"Info."
-#~ msgid "Password:"
-#~ msgstr "Contrasenya:"
+#: ../libnm-util/crypto.c:184
+#, c-format
+msgid "Malformed PEM file: no IV found in DEK-Info tag."
+msgstr ""
+"El format del fitxer PEM és incorrecte: no s'ha trobat cap vector "
+"d'inicialització a l'etiqueta de DEK-Info."
-#~ msgid "Primary DNS:"
-#~ msgstr "DNS primari:"
+#: ../libnm-util/crypto.c:191
+#, c-format
+msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
+msgstr ""
+"El format del fitxer PEM és incorrecte: el format del vector "
+"d'inicialització a l'etiqueta DEK-Info no és vàlid."
-#~ msgid "Private Key File:"
-#~ msgstr "Fitxer de la clau privada:"
+#: ../libnm-util/crypto.c:204
+#, c-format
+msgid "Malformed PEM file: unknown private key cipher '%s'."
+msgstr ""
+"El format del fitxer PEM és incorrecte: el criptògraf «%s» de clau privada és "
+"desconegut."
-#~ msgid "Private Key Password:"
-#~ msgstr "Contrasenya de la clau privada:"
+#: ../libnm-util/crypto.c:223
+#, c-format
+msgid "Could not decode private key."
+msgstr "No s'ha pogut descodificar la clau privada."
-#~ msgid "Secondary DNS:"
-#~ msgstr "DNS secundari:"
+#: ../libnm-util/crypto.c:268
+#, c-format
+msgid "PEM certificate '%s' had no end tag '%s'."
+msgstr "No s'ha trobat l'etiqueta de tancament «%2$s» al certificat PEM «%1$s»."
-#~ msgid "Select the CA Certificate File"
-#~ msgstr "Seleccioneu el fitxer del certificat de la CA"
+#: ../libnm-util/crypto.c:278
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "No s'ha pogut descodificar el certificat."
-#~ msgid "Select the Client Certificate File"
-#~ msgstr "Seleccioneu el fitxer del certificat del client"
+#: ../libnm-util/crypto.c:287
+#, c-format
+msgid "Not enough memory to store certificate data."
+msgstr "No hi ha prou memòria per a emmagatzemar les dades del certificat."
-#~ msgid "Select the Private Key File"
-#~ msgstr "Seleccioneu el fitxer de la clau privada"
+#: ../libnm-util/crypto.c:295
+#, c-format
+msgid "Not enough memory to store file data."
+msgstr "No hi ha prou memòria per a emmagatzemar les dades del fitxer."
-#~ msgid "Show key"
-#~ msgstr "Mostra la clau"
+#: ../libnm-util/crypto.c:325
+#, c-format
+msgid "IV must be an even number of bytes in length."
+msgstr ""
+"La llargada del vector d'inicialització ha de ser un nombre parell de bytes."
-#~ msgid "Show passphrase"
-#~ msgstr "Mostra la contrasenya:"
+#: ../libnm-util/crypto.c:334
+#, c-format
+msgid "Not enough memory to store the IV."
+msgstr "No hi ha prou memòria per a emmagatzemar el vector d'inicialització."
-#~ msgid "Show password"
-#~ msgstr "Mostra la contrasenya:"
+#: ../libnm-util/crypto.c:345
+#, c-format
+msgid "IV contains non-hexadecimal digits."
+msgstr "El vector d'inicialització conté dígits que no són hexadecimals."
-#~ msgid "Show passwords"
-#~ msgstr "Mostra les contrasenyes"
+#: ../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
+#, c-format
+msgid "Private key cipher '%s' was unknown."
+msgstr "Es desconeix el criptògraf «%s» de la clau privada."
-#~ msgid "Speed:"
-#~ msgstr "Velocitat:"
+#: ../libnm-util/crypto.c:392
+#, c-format
+msgid "Not enough memory to decrypt private key."
+msgstr "No hi ha prou memòria per desencriptar la clau privada."
-#~ msgid "Subnet Mask:"
-#~ msgstr "Màscara de subxarxa:"
+#: ../libnm-util/crypto.c:512
+#, c-format
+msgid "Unable to determine private key type."
+msgstr "No s'ha pogut determinar el tipus de la clau privada."
-#~ msgid "Type:"
-#~ msgstr "Tipus:"
+#: ../libnm-util/crypto.c:531
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr ""
+"No hi ha prou memòria per a emmagatzemar la clau privada desencriptada."
-#~ msgid "User Name:"
-#~ msgstr "Nom d'usuari:"
+#: ../libnm-util/crypto_gnutls.c:49
+msgid "Failed to initialize the crypto engine."
+msgstr "No s'ha pogut inicialitzar el motor criptogràfic."
-#~ msgid "Wireless Network Key Required"
-#~ msgstr "Es requereix una clau per a la xarxa sense fil"
+#: ../libnm-util/crypto_gnutls.c:93
+#, c-format
+msgid "Failed to initialize the MD5 engine: %s / %s."
+msgstr "No s'ha pogut inicialitzar el motor MD5: %s / %s."
-#~ msgid "Wireless _adapter:"
-#~ msgstr "_Adaptador sense fil:"
+#: ../libnm-util/crypto_gnutls.c:156
+#, c-format
+msgid "Invalid IV length (must be at least %zd)."
+msgstr ""
+"La longitud del vector d'inicialització no és vàlida (la mida mínima és %zd)."
-#~ msgid "_Always Trust this Wireless Network"
-#~ msgstr "Confia sempre en _aquesta xarxa sense fil"
+#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#, c-format
+msgid "Not enough memory for decrypted key buffer."
+msgstr ""
+"No hi ha prou espai per a la memòria intermèdia de la clau desencriptada."
-#~ msgid "_Don't remind me again"
-#~ msgstr "_No m'ho tornis a recordar"
+#: ../libnm-util/crypto_gnutls.c:173
+#, c-format
+msgid "Failed to initialize the decryption cipher context: %s / %s."
+msgstr ""
+"No s'ha pogut inicialitzar el context del criptògraf de desencriptació: %s / "
+"%s."
-#~ msgid "_Fallback on this Network"
-#~ msgstr "Utilitza aquesta _xarxa com a alternativa"
+#: ../libnm-util/crypto_gnutls.c:182
+#, c-format
+msgid "Failed to set symmetric key for decryption: %s / %s."
+msgstr ""
+"No s'ha pogut definir la clau simètrica per a la desencriptació: %s / %s."
-#~ msgid "_Login to Network"
-#~ msgstr "_Entra a la xarxa"
+#: ../libnm-util/crypto_gnutls.c:191
+#, c-format
+msgid "Failed to set IV for decryption: %s / %s."
+msgstr ""
+"No s'ha pogut definir el vector d'inicialització per a la desencriptació: %"
+"s / %s."
-#~ msgid "_Network Name:"
-#~ msgstr "Nom de _xarxa:"
+#: ../libnm-util/crypto_gnutls.c:200
+#, c-format
+msgid "Failed to decrypt the private key: %s / %s."
+msgstr "No s'ha pogut desencriptar la clau privada: %s / %s."
-#~ msgid "_Wireless Security:"
-#~ msgstr "Seguretat de la _xarxa sense fil:"
+#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#, c-format
+msgid "Failed to decrypt the private key: unexpected padding length."
+msgstr ""
+"No s'ha pogut desencriptar la clau privada: no s'esperava la longitud del "
+"farciment."
-#~ msgid "Cannot add VPN connection"
-#~ msgstr "No s'ha pogut afegir la connexions VPN"
+#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#, c-format
+msgid "Failed to decrypt the private key."
+msgstr "No s'ha pogut desencriptar la clau privada."
-#~ msgid ""
-#~ "No suitable VPN software was found on your system. Contact your system "
-#~ "administrator."
-#~ msgstr ""
-#~ "No s'ha pogut trobar el programari VPN adequat en aquest ordinador. "
-#~ "Contacteu el vostre administrador."
+#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#, c-format
+msgid "Could not allocate memory for encrypting."
+msgstr "No s'ha pogut assignar memòria per a l'encriptació."
-#~ msgid "Cannot import VPN connection"
-#~ msgstr "No s'ha pogut importar la connexió VPN"
+#: ../libnm-util/crypto_gnutls.c:294
+#, c-format
+msgid "Failed to initialize the encryption cipher context: %s / %s."
+msgstr ""
+"No s'ha pogut inicialitzar del context del criptògraf d'encriptació: %s / %s."
-#~ msgid ""
-#~ "Cannot find suitable software for VPN connection type '%s' to import the "
-#~ "file '%s'. Contact your system administrator."
-#~ msgstr ""
-#~ "No s'ha pogut trobar el programari adequat per al tipus de connexió VPN «%"
-#~ "s» per a importar el fitxer «%s». Contacteu el vostre administrador de "
-#~ "sistemes."
+#: ../libnm-util/crypto_gnutls.c:303
+#, c-format
+msgid "Failed to set symmetric key for encryption: %s / %s."
+msgstr "No s'ha pogut establir la clau simètrica per a l'encriptació: %s / %s."
-#~ msgid "Error retrieving VPN connection '%s'"
-#~ msgstr "S'ha produït un error en recuperar la connexió VPN «%s»"
+#: ../libnm-util/crypto_gnutls.c:313
+#, c-format
+msgid "Failed to set IV for encryption: %s / %s."
+msgstr ""
+"No s'ha pogut establir el vector d'inicialització per a l'encriptació: %s / %"
+"s."
-#~ msgid ""
-#~ "Could not find the UI files for VPN connection type '%s'. Contact your "
-#~ "system administrator."
-#~ msgstr ""
-#~ "No s'han pogut trobar els fitxers d'UI per al tipus de connexió VPN «%s». "
-#~ "Contacteu el vostre administrador de sistemes."
+#: ../libnm-util/crypto_gnutls.c:322
+#, c-format
+msgid "Failed to encrypt the data: %s / %s."
+msgstr "No s'han pogut encriptar les dades: %s / %s."
-#~ msgid "Delete VPN connection \"%s\"?"
-#~ msgstr "Voleu suprimir la connexió VPN «%s»?"
+#: ../libnm-util/crypto_gnutls.c:362
+#, c-format
+msgid "Error initializing certificate data: %s"
+msgstr "S'ha produït un error en inicialitzar les dades del certificat: %s"
-#~ 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 ""
-#~ "Tota la informació sobre la connexió VPN «%s» es perdrà, i segurament "
-#~ "necessitareu que el vostre administrador us proporcioni informació per a "
-#~ "crear una connexió nova."
+#: ../libnm-util/crypto_gnutls.c:384
+#, c-format
+msgid "Couldn't decode certificate: %s"
+msgstr "No s'ha pogut descodificar el certificat: %s"
-#~ msgid "Unable to load"
-#~ msgstr "No es pot carregar"
+#: ../libnm-util/crypto_gnutls.c:408
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgstr "No s'ha pogut inicialitzar el descodificador PKCS#12: %s"
-#~ msgid "Cannot find some needed resources (the glade file)!"
-#~ msgstr ""
-#~ "No s'han pogut trobar alguns dels recursos requerits el fitxer glade)."
+#: ../libnm-util/crypto_gnutls.c:421
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %s"
+msgstr "No s'ha pogut descodificar el fitxer PKCS#12: %s"
-#~ msgid "Create VPN Connection"
-#~ msgstr "Crea una connexió VPN"
+#: ../libnm-util/crypto_gnutls.c:433
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %s"
+msgstr "No s'ha pogut verificar el fitxer PKCS#12: %s"
-#~ msgid "Edit VPN Connection"
-#~ msgstr "Edita la connexió VPN"
+#: ../libnm-util/crypto_nss.c:56
+#, c-format
+msgid "Failed to initialize the crypto engine: %d."
+msgstr "No s'ha pogut inicialitzar el motor criptogràfic: %d."
-#~ msgid "Add a new VPN connection"
-#~ msgstr "Afegeix una connexions VPN nova"
+#: ../libnm-util/crypto_nss.c:111
+#, c-format
+msgid "Failed to initialize the MD5 context: %d."
+msgstr "No s'ha pogut inicialitzar el context MD5: %d."
-#~ msgid "Delete the selected VPN connection"
-#~ msgstr "Suprimeix la connexió VPN seleccionada"
+#: ../libnm-util/crypto_nss.c:179
+#, c-format
+msgid "Invalid IV length (must be at least %d)."
+msgstr ""
+"La llargada del vector d'inicialització no és vàlida (la mida mínima és %d)."
-#~ msgid "E_xport"
-#~ msgstr "E_xporta"
+#: ../libnm-util/crypto_nss.c:196
+#, c-format
+msgid "Failed to initialize the decryption cipher slot."
+msgstr "No s'ha pogut inicialitzar la ranura del criptògraf de desencriptació."
-#~ msgid "Edit the selected VPN connection"
-#~ msgstr "Edita la connexió VPN seleccionada"
+#: ../libnm-util/crypto_nss.c:206
+#, c-format
+msgid "Failed to set symmetric key for decryption."
+msgstr "No s'ha pogut definir la clau simètrica per a la desencriptació."
-#~ msgid "Export the VPN settings to a file"
-#~ msgstr "Exporta els paràmetres VPN al fitxer"
+#: ../libnm-util/crypto_nss.c:216
+#, c-format
+msgid "Failed to set IV for decryption."
+msgstr ""
+"No s'ha pogut definir el vector d'inicialització per a la desencriptació."
-#~ msgid "Export the selected VPN connection to a file"
-#~ msgstr "Exporta la connexió VPN a un fitxer"
+#: ../libnm-util/crypto_nss.c:224
+#, c-format
+msgid "Failed to initialize the decryption context."
+msgstr "No s'ha pogut inicialitzar el context de desencriptació."
-#~ msgid "Manage Virtual Private Network Connections"
-#~ msgstr "Gestioneu connexions a xarxes privades virtuals"
+#: ../libnm-util/crypto_nss.c:237
+#, c-format
+msgid "Failed to decrypt the private key: %d."
+msgstr "No s'ha pogut desencriptar la clau privada: %d."
-#~ msgid "VPN Connections"
-#~ msgstr "Connexions VPN"
+#: ../libnm-util/crypto_nss.c:245
+#, c-format
+msgid "Failed to decrypt the private key: decrypted data too large."
+msgstr ""
+"No s'ha pogut desencriptar la clau privada: les dades desencriptades són "
+"massa llargues."
-#~ msgid "40-bit WEP"
-#~ msgstr "40-bit WEP"
+#: ../libnm-util/crypto_nss.c:256
+#, c-format
+msgid "Failed to finalize decryption of the private key: %d."
+msgstr "No s'ha pogut finalitzar la desencriptació de la clau privada: %d."
-#~ msgid "104-bit WEP"
-#~ msgstr "104-bit WEP"
+#: ../libnm-util/crypto_nss.c:364
+#, c-format
+msgid "Failed to initialize the encryption cipher slot."
+msgstr "No s'ha pogut inicialitzar la ranura del criptògraf d'encriptació."
-#~ msgid "WPA TKIP"
-#~ msgstr "WPA TKIP"
+#: ../libnm-util/crypto_nss.c:372
+#, c-format
+msgid "Failed to set symmetric key for encryption."
+msgstr "No s'ha pogut establir la clau simètrica per encriptar."
-#~ msgid "WPA CCMP"
-#~ msgstr "WPA CCMP"
+#: ../libnm-util/crypto_nss.c:380
+#, c-format
+msgid "Failed to set IV for encryption."
+msgstr "No s'ha pogut establir el vector d'inicialització per a l'encriptació."
-#~ msgid "WPA Automatic"
-#~ msgstr "WPA automàtic"
+#: ../libnm-util/crypto_nss.c:388
+#, c-format
+msgid "Failed to initialize the encryption context."
+msgstr "No s'ha pogut inicialitzar el context d'encriptació."
-#~ msgid "WPA2 TKIP"
-#~ msgstr "WPA2 TKIP"
+#: ../libnm-util/crypto_nss.c:396
+#, c-format
+msgid "Failed to encrypt: %d."
+msgstr "No s'ha pogut encriptar: %d."
-#~ msgid "WPA2 CCMP"
-#~ msgstr "WPA2 CCMP"
+#: ../libnm-util/crypto_nss.c:404
+#, c-format
+msgid "Unexpected amount of data after encrypting."
+msgstr "No s'esperava aquesta quantitat de dades després de l'encriptació."
-#~ msgid "WPA2 Automatic"
-#~ msgstr "WPA2 automàtic"
+#: ../libnm-util/crypto_nss.c:447
+#, c-format
+msgid "Couldn't decode certificate: %d"
+msgstr "No s'ha pogut descodificar el certificat: %d"
-#~ msgid "none"
-#~ msgstr "cap"
+#: ../libnm-util/crypto_nss.c:482
+#, c-format
+msgid "Couldn't convert password to UCS2: %d"
+msgstr "No s'ha pogut convertir la contrasenya a UCS2: %d"
-#~ msgid "operation took too long"
-#~ msgstr "l'operació ha trigat massa"
+#: ../libnm-util/crypto_nss.c:510
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %d"
+msgstr "No s'ha pogut inicialitzar el descodificador PKCS#12: %d"
-#~ msgid "received data from wrong type of sender"
-#~ msgstr "s'han rebut dades d'un tipus de remitent equivocat"
+#: ../libnm-util/crypto_nss.c:519
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %d"
+msgstr "No s'ha pogut descodificar el fitxer PKCS#12: %d"
-#~ msgid "received data from unexpected sender"
-#~ msgstr "s'han rebut dades d'un remitent que no s'esperava"
+#: ../libnm-util/crypto_nss.c:528
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %d"
+msgstr "No s'ha pogut verificar el fitxer PKCS#12: %d"
-#~ msgid "too much data was sent over socket and some of it was lost"
-#~ msgstr ""
-#~ "s'han enviat massa dades a través del sòcol, i se n'han perdut algunes"
+#: ../libnm-util/crypto_nss.c:557
+msgid "Could not generate random data."
+msgstr "No s'han pogut generar dades aleatòries."
-#~ msgid "You are now connected to the Ad-Hoc wireless network '%s'."
-#~ msgstr "Ara esteu connectat a la xarxa Ad-Hoc sense fil «%s»."
+#: ../libnm-util/nm-utils.c:1993
+#, c-format
+msgid "Not enough memory to make encryption key."
+msgstr "No hi ha prou memòria per crear la clau d'encriptació."
-#~ msgid "You are now connected to the wireless network '%s'."
-#~ msgstr "Ara esteu connectat a la xarxa sense fil «%s»."
+#: ../libnm-util/nm-utils.c:2103
+msgid "Could not allocate memory for PEM file creation."
+msgstr "No s'ha pogut assignar memòria per a la creació del fitxer PEM."
-#~ msgid "You are now connected to the wired network."
-#~ msgstr "Ara esteu connectat a la xarxa amb fil."
+#: ../libnm-util/nm-utils.c:2115
+#, c-format
+msgid "Could not allocate memory for writing IV to PEM file."
+msgstr ""
+"No s'ha pogut assignar memòria per escriure el vector d'inicialització al "
+"fitxer PEM."
-#~ msgid "Connection Established"
-#~ msgstr "S'ha establert la connexió"
+#: ../libnm-util/nm-utils.c:2127
+#, c-format
+msgid "Could not allocate memory for writing encrypted key to PEM file."
+msgstr ""
+"No s'ha pogut assignar memòria per escriure la clau encriptada al fitxer PEM."
-#~ msgid "Disconnected"
-#~ msgstr "Desconnectat"
+#: ../libnm-util/nm-utils.c:2146
+#, c-format
+msgid "Could not allocate memory for PEM file data."
+msgstr "No s'ha pogut assignar memòria per al fitxer de dades PEM."
-#~ msgid "The network connection has been disconnected."
-#~ msgstr "S'ha desconnectat la connexió de xarxa."
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Connexió compartida mitjançant una xarxa Wi-Fi protegida"
-#~ msgid "LEAP"
-#~ msgstr "LEAP"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "Connexió compartida mitjançant una xarxa Wi-Fi oberta"
-#~ msgid "Choose which type of VPN connection you wish to create."
-#~ msgstr "Escolliu el tipus de connexió VPN que vulgueu crear."
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "Modifica el nom de l'ordinador de forma permanent"
-#~ msgid "Connect to:"
-#~ msgstr "Connecta a:"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+msgid "Modify system connections"
+msgstr "Modifica les connexions del sistema"
-#~ msgid "Create VPN Connection - 1 of 2"
-#~ msgstr "Creació d'una connexió VPN - 1 de 2"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr ""
+"La política del sistema impedeix la modificació dels paràmetres del sistema"
-#~ msgid "Create VPN Connection - 2 of 2"
-#~ msgstr "Creació d'una connexió VPN - 2 de 2"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr ""
+"La política del sistema impedeix la modificació del nom de l'ordinador de "
+"forma permanent"
-#~ msgid "Finish Creating VPN Connection"
-#~ msgstr "Finalitza la creació de la connexió VPN"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr ""
+"La política del sistema impedeix compartir connexions mitjançant una xarxa "
+"Wi-Fi protegida"
-#~ msgid ""
-#~ "This assistant will guide you through the creation of a connection to a "
-#~ "Virtual Private Network (VPN).\n"
-#~ "\n"
-#~ "It will require some information, such as IP addresses and secrets. "
-#~ "Please see your system administrator to obtain this information."
-#~ msgstr ""
-#~ "Aquest auxiliar us guiarà a través de la creació d'una nova connexió VPN "
-#~ "a una xarxa privada (VPN).\n"
-#~ "\n"
-#~ "Cal certa informació, com ara l'adreça IP i secrets, que us hauria de "
-#~ "proporcionar el vostre administrador."
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr ""
+"La política del sistema impedeix compartir connexions mitjançant una xarxa "
+"Wi-Fi oberta"
-#~ msgid "VPN Error"
-#~ msgstr "Error VPN"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Permet el control de les connexions de xarxa"
-#~ msgid "The VPN service said: \"%s\""
-#~ msgstr "El servei VPN digué: «%s»"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Permet l'ús de connexions específiques per a cada usuari"
-#~ msgid "VPN connection '%s' said:"
-#~ msgstr "La connexió VPN «%s» digué:"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "Habilita o inhabilita els dispositius Wi-Fi"
-#~ msgid "leap_subwindow"
-#~ msgstr "leap_subwindow"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable WiMAX mobile broadband devices"
+msgstr "Habilita o inhabilita els dispositius de banda ampla mòbil WiMAX"
-#~ msgid "wep_key_subwindow"
-#~ msgstr "wep_key_subwindow"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable mobile broadband devices"
+msgstr "Habilita o inhabilita els dispositius de banda ampla mòbil"
-#~ msgid "wep_passphrase_subwindow"
-#~ msgstr "wep_passphrase_subwindow"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6
+msgid "Enable or disable system networking"
+msgstr "Habilita o inhabilita la xarxa del sistema"
-#~ msgid "wpa_psk_subwindow"
-#~ msgstr "wpa_psk_subwindow"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid ""
+"Put NetworkManager to sleep or wake it up (should only be used by system "
+"power management)"
+msgstr ""
+"Posa el NetworkManager a dormir o desperta'l (només l'hauria d'utilitzar el "
+"sistema de gestió d'energia)"
-#~ msgid ""
-#~ "The requested wireless network '%s' does not appear to be in range. A "
-#~ "different wireless network will be used if any are available."
-#~ msgstr ""
-#~ "La xarxa sense fil sol·licitada «%s», sembla que no està dins del rang. "
-#~ "Se'n farà servir una altra si n'hi ha cap de disponible."
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents control of network connections"
+msgstr "La política del sistema impedeix el control de les connexions de xarxa"
-#~ msgid "Failed to get information about the interface!"
-#~ msgstr "No s'ha pogut obtenir informació quant a la interfície."
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr ""
+"La política del sistema impedeix habilitar o inhabilitar els dispositius Wi-"
+"Fi"
-#~ msgid "_Stop All Wireless Devices"
-#~ msgstr "Atura tots els dispositius _sense fil"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid ""
+"System policy prevents enabling or disabling WiMAX mobile broadband devices"
+msgstr ""
+"La política del sistema impedeix habilitar o inhabilitar els dispositius de "
+"banda ampla mòbil WiMAX"
-#~ msgid "_Start All Wireless Devices"
-#~ msgstr "Inicia tots els dispositius _sense fil"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"La política del sistema impedeix habilitar o inhabilitar els dispositius de "
+"banda ampla mòbil"
-#~ msgid "_Wireless Network Discovery"
-#~ msgstr "Descobriment de _xarxes sense fil"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents enabling or disabling system networking"
+msgstr ""
+"La política del sistema impedeix habilitar o inhabilitar la xarxa del sistema"
-#~ msgid "Always Search"
-#~ msgstr "Cerca sempre"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:13
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr ""
+"La política del sistema impedeix posar el NetworkManager a dormir o "
+"despertar-lo"
-#~ msgid "Search Only When Disconnected"
-#~ msgstr "Cerca només en estar desconnectat"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:14
+msgid "System policy prevents use of user-specific connections"
+msgstr ""
+"La política del sistema impedeix la utilització de connexions específiques "
+"per a cada usuari"
-#~ msgid "Never Search"
-#~ msgstr "No cerquis mai"
+#: ../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 "s'ha produït un error en processar el missatge del netlink: %s"
-#~ msgid "Stop All Wireless Devices"
-#~ msgstr "Atura tots els dispositius sense fil"
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "s'ha produït un error en esperar dades del sòcol"
-#~ msgid "_Passphrase:"
-#~ msgstr "_Contrasenya:"
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr ""
+"no s'ha pogut connectar amb el netlink per a fer un seguiment de l'estat de "
+"l'enllaç: %s"
-#~ msgid "_ASCII Key:"
-#~ msgstr "Klau _ASCII:"
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr "no s'ha pogut habilitar el gestor netlink per passar credencials: %s"
-#~ msgid "_Hex Key:"
-#~ msgstr "Clau _hexadecimal:"
+#: ../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 ""
+"no s'ha pogut assignar el gestor del netlink per a fer un seguiment de "
+"l'estat de l'enllaç: %s"
-#~ msgid ", with no encryption enabled."
-#~ msgstr ", amb el xifratge habilitat."
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr ""
+"no s'ha pogut assignar la memòria cau de l'enllaç del netlink per a fer un "
+"seguiment de l'estat de l'enllaç: %s"
-#~ msgid "ASCII Key:"
-#~ msgstr "Clau ASCII:"
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "no ha pogut unir-se al grup netlink: %s"
-#~ msgid ""
-#~ "128-bit Passphrase (WEP)\n"
-#~ "ASCII Key (WEP)\n"
-#~ "Hex Key (WEP)"
-#~ msgstr ""
-#~ "Contrasenya de 128-bit (WEP)\n"
-#~ "Clau ASCII (WEP)\n"
-#~ "Clau Hexadecimal (WEP)"
-
-#~ msgid ""
-#~ "128-bit passphrase (WEP)\n"
-#~ "ASCII key (WEP)\n"
-#~ "Hex key (WEP)"
-#~ msgstr ""
-#~ "Contrasenya de 128-bit (WEP)\n"
-#~ "Clau ASCII (WEP)\n"
-#~ "Clau hexadecimal (WEP)"
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
+#, c-format
+msgid "error updating link cache: %s"
+msgstr "s'ha produït un error en actualitzar la memòria cau de l'enllaç: %s"
-#~ msgid "Connect with _encryption enabled"
-#~ msgstr "Connecta amb el _xifratge habilitat"
+#: ../src/main.c:518
+#, c-format
+msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgstr ""
+"Opció no vàlida. Utilitzeu --help per a veure la llista d'opcions vàlides.\n"
-#~ msgid "Wireless _network:"
-#~ msgstr "_Xarxa sense fil:"
+#: ../src/main.c:589
+#, c-format
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr "%s. Utilitzeu --help per veure un llistat amb les opcions vàlides.\n"
-#~ msgid ""
-#~ "Dependent on the private network you want to connect to, you need to "
-#~ "select what type of connection you want to create."
-#~ msgstr ""
-#~ "Depenent del tipus de xarxa privada a la que us vulgueu connectar, heu "
-#~ "d'escollir el tipus de connexió que vulgueu crear."
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:62
+msgid "# Created by NetworkManager\n"
+msgstr "# Creat pel NetworkManager\n"
-#~ msgid "Other Wireless Networks..."
-#~ msgstr "Altres xarxes sense fil..."
+#: ../src/dhcp-manager/nm-dhcp-dhclient-utils.c:69
+#, c-format
+msgid ""
+"# Merged from %s\n"
+"\n"
+msgstr ""
+"# Fusionat des de %s\n"
+"\n"
-# FIXME
-#~ msgid "Pause Wireless Scanning"
-#~ msgstr "Atura l'escaneig sense fil"
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "no s'ha pogut trobar cap client DHCP."
-# FIXME
-#~ msgid "Resume Wireless Scanning"
-#~ msgstr "Reprèn l'escaneig sense fil"
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "s'ha trobat el «dhclient»."
-#~ msgid "progress bar label|%d %%"
-#~ msgstr "Etiqueta de la barra de progrés|%d %%"
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "s'ha trobat el «dhcpcd»."
-# FIXME?
-#~ msgid "You must log in to access the Virtual Private Network '%s'."
-#~ msgstr "Heu d'autenticar-vos per accedir a la xarxa privada virtual «%s»."
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
+#, c-format
+msgid "unsupported DHCP client '%s'"
+msgstr "el client DHCP «%s» no és compatible"
-#~ msgid "_OK"
-#~ msgstr "_D'acord"
+#: ../src/logging/nm-logging.c:148
+#, c-format
+msgid "Unknown log level '%s'"
+msgstr "Es desconeix el nivell de registre «%s»"
-#~ msgid "%s"
-#~ msgstr "%s"
+#: ../src/logging/nm-logging.c:173
+#, c-format
+msgid "Unknown log domain '%s'"
+msgstr "Es desconeix el domini de registre «%s»"
-#~ msgid "<span weight=\"bold\">Wireless Networks:</span>"
-#~ msgstr "<span weight=\"bold\">Xarxes sense fil:</span>"
+#: ../src/dns-manager/nm-dns-manager.c:367
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr ""
+"NOTA: pot ser que el sistema de resolució de la libc no permeti més de 3 "
+"servidors de noms."
-#~ msgid "Modify Wireless Networks"
-#~ msgstr "Modifica xarxes sense fil"
+#: ../src/dns-manager/nm-dns-manager.c:369
+msgid "The nameservers listed below may not be recognized."
+msgstr "Pot ser que no es reconeguin els servidors de noms llistats aquí sota."
-#~ msgid "*"
-#~ msgstr "*"
+#: ../src/system-settings/nm-default-wired-connection.c:157
+#, c-format
+msgid "Auto %s"
+msgstr "%s automàtic"
-#~ msgid "You must log in to access the private network %s"
-#~ msgstr "Heu d'autenticar-vos per accedir a la xarxa privada %s"
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3409
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
+msgid "System"
+msgstr "Sistema"
-#~ msgid "_About..."
-#~ msgstr "_Quant a..."
+#~ msgid "unable to join netlink group for monitoring link status: %s"
+#~ msgstr ""
+#~ "no s'ha pogut unir el grup del netlink per a fer un seguiment de l'estat "
+#~ "de l'enllaç: %s"
diff --git a/po/da.po b/po/da.po
index cbdb21154..bbcde42d2 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,710 +8,1851 @@
msgid ""
msgstr ""
"Project-Id-Version: NetworkManager\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-13 20:50+0100\n"
-"PO-Revision-Date: 2007-02-13 20:50+0100\n"
-"Last-Translator: Lasse Bang Mikkelsen <lbm@fatalerror.dk>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&component=general\n"
+"POT-Creation-Date: 2010-12-11 15:25+0000\n"
+"PO-Revision-Date: 2010-12-12 18:49+0100\n"
+"Last-Translator: Anders Jenbo <anders@jenbo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:417
-msgid "Cannot add VPN connection"
-msgstr "Kan ikke tilføje VPN-forbindelse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:419
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Launchpad-Export-Date: 2010-12-12 00:44+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../cli/src/connections.c:60
+#: ../cli/src/connections.c:76
+#: ../cli/src/devices.c:89
+#: ../cli/src/devices.c:102
+#: ../cli/src/devices.c:112
+#: ../cli/src/devices.c:122
+#: ../cli/src/devices.c:135
+#: ../cli/src/devices.c:146
+#: ../cli/src/devices.c:157
+#: ../cli/src/devices.c:166
+#: ../cli/src/devices.c:175
+msgid "NAME"
+msgstr "NAVN"
+
+#. 0
+#: ../cli/src/connections.c:61
+#: ../cli/src/connections.c:77
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:62
+msgid "DEVICES"
+msgstr "ENHEDER"
+
+#. 2
+#: ../cli/src/connections.c:63
+#: ../cli/src/connections.c:79
+msgid "SCOPE"
+msgstr "ANVENDELSESOMRÃ…DE"
+
+#. 3
+#: ../cli/src/connections.c:64
+msgid "DEFAULT"
+msgstr "STANDARD"
+
+#. 4
+#: ../cli/src/connections.c:65
+msgid "DBUS-SERVICE"
+msgstr "DBUS-TJENESTE"
+
+#. 5
+#: ../cli/src/connections.c:66
+msgid "SPEC-OBJECT"
+msgstr "SPEC-OBJEKT"
+
+#. 6
+#: ../cli/src/connections.c:67
+msgid "VPN"
+msgstr "VPN"
+
+#. 7
+#. 2
+#: ../cli/src/connections.c:68
+#: ../cli/src/connections.c:84
+#: ../cli/src/devices.c:64
+msgid "DBUS-PATH"
+msgstr "DBUS-STI"
+
+#. 1
+#. 0
+#. 1
+#: ../cli/src/connections.c:78
+#: ../cli/src/devices.c:62
+#: ../cli/src/devices.c:91
+msgid "TYPE"
+msgstr "TYPE"
+
+#. 3
+#: ../cli/src/connections.c:80
+msgid "TIMESTAMP"
+msgstr "TIDSSTEMPEL"
+
+#. 4
+#: ../cli/src/connections.c:81
+msgid "TIMESTAMP-REAL"
+msgstr "TIDSSTEMPEL-ÆGTE"
+
+#. 5
+#: ../cli/src/connections.c:82
+msgid "AUTOCONNECT"
+msgstr "FORBIND AUTOMATISK"
+
+#. 6
+#: ../cli/src/connections.c:83
+msgid "READONLY"
+msgstr "SKRIVEBESKYTTET"
+
+#: ../cli/src/connections.c:160
+#, 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> | system | user]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwaddr>] [--nowait] [--timeout <timeout>]\n"
+" down id <id> | uuid <id>\n"
msgstr ""
-"Ingen passende VPN-programmel blev fundet på dit system. Kontakt din system-"
-"administrator."
+"Brug: nmcli con { KOMMANDO | help }\n"
+" KOMMANDO := { list | status | up | down }\n"
+"\n"
+" list [id <id> | uuid <id> | system | user]\n"
+" status\n"
+" up id <id> | uuid <id> [iface <iface>] [ap <hwadr>] [--nowait] [--timeout <tidsudløb>]\n"
+" down id <id> | uuid <id>\n"
+
+#: ../cli/src/connections.c:200
+#: ../cli/src/connections.c:541
+#, c-format
+msgid "Error: 'con list': %s"
+msgstr "Fejl: 'con list': %s"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:461
-msgid "Cannot import VPN connection"
-msgstr "Kan ikke importere VPN-forbindelse"
+#: ../cli/src/connections.c:202
+#: ../cli/src/connections.c:543
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Fejl: 'con list': %s; tilladte felter: %s"
+
+#: ../cli/src/connections.c:210
+msgid "Connection details"
+msgstr "Forbindelsesdetaljer"
+
+#: ../cli/src/connections.c:385
+#: ../cli/src/connections.c:606
+msgid "system"
+msgstr "system"
+
+#: ../cli/src/connections.c:385
+#: ../cli/src/connections.c:606
+msgid "user"
+msgstr "bruger"
+
+#: ../cli/src/connections.c:387
+msgid "never"
+msgstr "aldrig"
+
+#. "CAPABILITIES"
+#. Print header
+#. "WIFI-PROPERTIES"
+#: ../cli/src/connections.c:388
+#: ../cli/src/connections.c:389
+#: ../cli/src/connections.c:607
+#: ../cli/src/connections.c:610
+#: ../cli/src/devices.c:433
+#: ../cli/src/devices.c:558
+#: ../cli/src/devices.c:584
+#: ../cli/src/devices.c:585
+#: ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587
+#: ../cli/src/devices.c:588
+#: ../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
+msgid "yes"
+msgstr "ja"
+
+#: ../cli/src/connections.c:388
+#: ../cli/src/connections.c:389
+#: ../cli/src/connections.c:607
+#: ../cli/src/connections.c:610
+#: ../cli/src/devices.c:433
+#: ../cli/src/devices.c:558
+#: ../cli/src/devices.c:584
+#: ../cli/src/devices.c:585
+#: ../cli/src/devices.c:586
+#: ../cli/src/devices.c:587
+#: ../cli/src/devices.c:588
+#: ../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
+msgid "no"
+msgstr "nej"
+
+#: ../cli/src/connections.c:462
+#: ../cli/src/connections.c:505
+msgid "System connections"
+msgstr "System forbindelser"
+
+#: ../cli/src/connections.c:467
+#: ../cli/src/connections.c:518
+msgid "User connections"
+msgstr "Bruger forbindelser"
+
+#: ../cli/src/connections.c:479
+#: ../cli/src/connections.c:1342
+#: ../cli/src/connections.c:1358
+#: ../cli/src/connections.c:1367
+#: ../cli/src/connections.c:1378
+#: ../cli/src/connections.c:1463
+#: ../cli/src/devices.c:964
+#: ../cli/src/devices.c:974
+#: ../cli/src/devices.c:1076
+#: ../cli/src/devices.c:1083
+#, c-format
+msgid "Error: %s argument is missing."
+msgstr "Fejl: %s parameter mangler."
-#: ../gnome/vpn-properties/nm-vpn-properties.c:463
+#: ../cli/src/connections.c:492
#, c-format
-msgid ""
-"Cannot find suitable software for VPN connection type '%s' to import the "
-"file '%s'. Contact your system administrator."
-msgstr ""
-"Kan ikke finde passende programmel til VPN-forbindelsestypen '%s', til "
-"import af filen '%s'. Kontakt din system-administrator."
+msgid "Error: %s - no such connection."
+msgstr "Fejl: %s - ingen sådan forbindelse."
+
+#: ../cli/src/connections.c:524
+#: ../cli/src/connections.c:1391
+#: ../cli/src/connections.c:1481
+#: ../cli/src/devices.c:787
+#: ../cli/src/devices.c:854
+#: ../cli/src/devices.c:988
+#: ../cli/src/devices.c:1089
+#, c-format
+msgid "Unknown parameter: %s\n"
+msgstr "Ukendt parameter: %s\n"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:580
+#: ../cli/src/connections.c:533
#, c-format
-msgid "Error retrieving VPN connection '%s'"
-msgstr "Fejl ved hentning af VPN-forbindelsen '%s'"
+msgid "Error: no valid parameter specified."
+msgstr "Fejl: ingen korrekte parameter angivet."
-#: ../gnome/vpn-properties/nm-vpn-properties.c:583
+#: ../cli/src/connections.c:548
+#: ../cli/src/connections.c:1584
+#: ../cli/src/devices.c:1295
+#: ../cli/src/network-manager.c:359
#, c-format
-msgid ""
-"Could not find the UI files for VPN connection type '%s'. Contact your "
-"system administrator."
-msgstr ""
-"Kunne ikke finde brugergrænseflade-filerne til VPN-forbindelsestypen '%s'. "
-"Kontakt din system-administrator."
+msgid "Error: %s."
+msgstr "Fejl: %s."
-#: ../gnome/vpn-properties/nm-vpn-properties.c:727
+#: ../cli/src/connections.c:655
#, c-format
-msgid "Delete VPN connection \"%s\"?"
-msgstr "Slet VPN-forbindelsen \"%s\"?"
+msgid "Error: 'con status': %s"
+msgstr "Fejl: 'con status': %s"
-#: ../gnome/vpn-properties/nm-vpn-properties.c:730
+#: ../cli/src/connections.c:657
#, 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 ""
-"Al information omkring VPN-forbindelsen \"%s\" vil gå tabt og du får "
-"muligvis brug for din system-administrator, som kan give dig de nødvendige "
-"informationer til oprettelse af en ny forbindelse."
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:924
-msgid "Unable to load"
-msgstr "Kan ikke indlæse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.c:926
-msgid "Cannot find some needed resources (the glade file)!"
-msgstr "Kan ikke finde nogle krævede ressourcer (glade-filen)!"
-
-#. 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 "Opret VPN-forbindelse"
-
-#. 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 "Redigér VPN-forbindelse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:1
-msgid "Add a new VPN connection"
-msgstr "Tilføj ny VPN-forbindelse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:2
-msgid "Delete the selected VPN connection"
-msgstr "Slet den valgte VPN-forbindelse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:3
-msgid "E_xport"
-msgstr "E_ksportér"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:4
-msgid "Edit the selected VPN connection"
-msgstr "Redigér den valgte VPN-forbindelse"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:5
-msgid "Export the VPN settings to a file"
-msgstr "Eksportér VPN-opsætningen til en fil"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:6
-msgid "Export the selected VPN connection to a file"
-msgstr "Eksportér den valgte VPN-forbindelse til en fil"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:7
-msgid "Manage Virtual Private Network Connections"
-msgstr "Håndtér virtuelle private netværks-forbindelser (VPN)"
-
-#: ../gnome/vpn-properties/nm-vpn-properties.glade.h:8
-msgid "VPN Connections"
-msgstr "VPN-forbindelser"
-
-#: ../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 automatisk"
-
-#: ../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 automatisk"
-
-#: ../src/nm-ap-security.c:334
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Fejl: 'con status': %s; tilladte fejlter: %s"
+
+#: ../cli/src/connections.c:664
+msgid "Active connections"
+msgstr "Aktive forbindelser"
+
+#: ../cli/src/connections.c:1034
+#, c-format
+msgid "no active connection on device '%s'"
+msgstr "ingen aktiv forbindelse på enhed '%s'"
+
+#: ../cli/src/connections.c:1042
+#, c-format
+msgid "no active connection or device"
+msgstr "ingen aktiv forbindelse eller enhed"
+
+#: ../cli/src/connections.c:1092
+#, c-format
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "enhed \"%s\" er ikke kompatibel med forbindelse \"%s\""
+
+#: ../cli/src/connections.c:1094
+#, c-format
+msgid "no device found for connection '%s'"
+msgstr "ingen enhed fundet til forbindelsen '%s'"
+
+#: ../cli/src/connections.c:1105
+msgid "activating"
+msgstr "aktiverer"
+
+#: ../cli/src/connections.c:1107
+msgid "activated"
+msgstr "aktiveret"
+
+#: ../cli/src/connections.c:1110
+#: ../cli/src/connections.c:1133
+#: ../cli/src/connections.c:1166
+#: ../cli/src/devices.c:247
+#: ../cli/src/devices.c:559
+#: ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149
+#: ../cli/src/settings.c:473
+msgid "unknown"
+msgstr "ukendt"
+
+#: ../cli/src/connections.c:1119
+msgid "VPN connecting (prepare)"
+msgstr "VPN-forbinder (forbered)"
+
+#: ../cli/src/connections.c:1121
+msgid "VPN connecting (need authentication)"
+msgstr "VPN-forbinder (kræver godkendelse)"
+
+#: ../cli/src/connections.c:1123
+msgid "VPN connecting"
+msgstr "VPN-forbinder"
+
+#: ../cli/src/connections.c:1125
+msgid "VPN connecting (getting IP configuration)"
+msgstr "VPN-forbinder (indhenter IP-konfiguration)"
+
+#: ../cli/src/connections.c:1127
+msgid "VPN connected"
+msgstr "VPN-forbundet"
+
+#: ../cli/src/connections.c:1129
+msgid "VPN connection failed"
+msgstr "VPN-forbindelse fejlede"
+
+#: ../cli/src/connections.c:1131
+msgid "VPN disconnected"
+msgstr "VPN afbrudt"
+
+#: ../cli/src/connections.c:1142
+msgid "unknown reason"
+msgstr "ukendt årsag"
+
+#: ../cli/src/connections.c:1144
msgid "none"
msgstr "ingen"
-#: ../src/nm-netlink-monitor.c:174
+#: ../cli/src/connections.c:1146
+msgid "the user was disconnected"
+msgstr "brugeren blev frakoblet"
+
+#: ../cli/src/connections.c:1148
+msgid "the base network connection was interrupted"
+msgstr "basenetværketsforbindelsen blev afbrudt"
+
+#: ../cli/src/connections.c:1150
+msgid "the VPN service stopped unexpectedly"
+msgstr "VPN servicen stoppede uventet"
+
+#: ../cli/src/connections.c:1152
+msgid "the VPN service returned invalid configuration"
+msgstr "VPN-tjenesten retunerede en ikke gyldig konfiguration"
+
+#: ../cli/src/connections.c:1154
+msgid "the connection attempt timed out"
+msgstr "forbindelsesforsøget udløb"
+
+#: ../cli/src/connections.c:1156
+msgid "the VPN service did not start in time"
+msgstr "VPN-tjenesten startede ikke i tide"
+
+#: ../cli/src/connections.c:1158
+msgid "the VPN service failed to start"
+msgstr "VPN-tjenesten kunne ikke starte"
+
+#: ../cli/src/connections.c:1160
+msgid "no valid VPN secrets"
+msgstr "ingen korrekte VPN-hemmeligheder"
+
+#: ../cli/src/connections.c:1162
+msgid "invalid VPN secrets"
+msgstr "ukorrekte VPN-hemmeligheder"
+
+#: ../cli/src/connections.c:1164
+msgid "the connection was removed"
+msgstr "forbindelsen blev fjernet"
+
+#: ../cli/src/connections.c:1178
+#, c-format
+msgid "state: %s\n"
+msgstr "tilstand: %s\n"
+
+#: ../cli/src/connections.c:1181
+#: ../cli/src/connections.c:1207
+#, c-format
+msgid "Connection activated\n"
+msgstr "Forbindelse aktiveret\n"
+
+#: ../cli/src/connections.c:1184
+#, c-format
+msgid "Error: Connection activation failed."
+msgstr "Fejl: Forbindelsesaktivering fejlede."
+
+#: ../cli/src/connections.c:1203
+#, c-format
+msgid "state: %s (%d)\n"
+msgstr "tilstand: %s (%d)\n"
+
+#: ../cli/src/connections.c:1213
+#, c-format
+msgid "Error: Connection activation failed: %s."
+msgstr "Fejl: Forbindelsesaktivering fejlede: %s."
+
+#: ../cli/src/connections.c:1230
+#: ../cli/src/devices.c:911
+#, c-format
+msgid "Error: Timeout %d sec expired."
+msgstr "Fejl: Ventetid på %d sek udløb."
+
+#: ../cli/src/connections.c:1273
+#, c-format
+msgid "Error: Connection activation failed: %s"
+msgstr "Fejl: Forbindelsesaktivering fejlede: %s"
+
+#: ../cli/src/connections.c:1287
+#, c-format
+msgid "Error: Obtaining active connection for '%s' failed."
+msgstr "Fejl: Indhentelse af aktiv forbindelse for '%s' mislykkedes."
+
+#: ../cli/src/connections.c:1296
+#, c-format
+msgid "Active connection state: %s\n"
+msgstr "Aktiv forbindelsestilstand: %s\n"
+
+#: ../cli/src/connections.c:1297
+#, c-format
+msgid "Active connection path: %s\n"
+msgstr "Aktiv forbindelsessti: %s\n"
+
+#: ../cli/src/connections.c:1351
+#: ../cli/src/connections.c:1472
+#, c-format
+msgid "Error: Unknown connection: %s."
+msgstr "Fejl: Ukendt forbindelse: %s."
+
+#: ../cli/src/connections.c:1386
+#: ../cli/src/devices.c:982
+#, c-format
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Fejl: Værdi for tidsudløb \"%s\" er ikke korrekt."
+
+#: ../cli/src/connections.c:1399
+#: ../cli/src/connections.c:1489
+#, c-format
+msgid "Error: id or uuid has to be specified."
+msgstr "Fejl: Id eller uuid skal angives."
+
+#: ../cli/src/connections.c:1419
+#, c-format
+msgid "Error: No suitable device found: %s."
+msgstr "Fejl: Ingen passende enhed fundet: %s."
+
+#: ../cli/src/connections.c:1421
+#, c-format
+msgid "Error: No suitable device found."
+msgstr "Fejl: Ingen passende enhed fundet."
+
+#: ../cli/src/connections.c:1516
+#, c-format
+msgid "Warning: Connection not active\n"
+msgstr "Advarsel: Forbindelse ikke aktiv\n"
+
+#: ../cli/src/connections.c:1573
+#, c-format
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "Fejl: 'con'-kommandoen '%s' er ikke gyldig."
+
+#: ../cli/src/connections.c:1609
+#, c-format
+msgid "Error: could not connect to D-Bus."
+msgstr "Fejl: Kunne ikke forbinde til D-Bus."
+
+#: ../cli/src/connections.c:1616
+#, c-format
+msgid "Error: Could not get system settings."
+msgstr "Fejl: Kunne ikke indhente systemopsætning."
+
+#: ../cli/src/connections.c:1624
+#, c-format
+msgid "Error: Could not get user settings."
+msgstr "Fejl: Kunne ikke indhente brugeropsætning."
+
+#: ../cli/src/connections.c:1634
+#, c-format
+msgid "Error: Can't obtain connections: settings services are not running."
+msgstr "Fejl: Kan ikke indhente forbindelser: Opsætningstjenester kører ikke."
+
+#. 0
+#. 9
+#: ../cli/src/devices.c:61
+#: ../cli/src/devices.c:90
+#: ../cli/src/devices.c:185
+msgid "DEVICE"
+msgstr "ENHED"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:63
+#: ../cli/src/devices.c:94
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "TILSTAND"
+
+#: ../cli/src/devices.c:73
+msgid "GENERAL"
+msgstr "GENERELT"
+
+#. 0
+#: ../cli/src/devices.c:74
+msgid "CAPABILITIES"
+msgstr "FUNKTIONALITETER"
+
+#. 1
+#: ../cli/src/devices.c:75
+msgid "WIFI-PROPERTIES"
+msgstr "WIFI-EGENSKABER"
+
+#. 2
+#: ../cli/src/devices.c:76
+msgid "AP"
+msgstr "AP"
+
+#. 3
+#: ../cli/src/devices.c:77
+msgid "WIRED-PROPERTIES"
+msgstr "TRÃ…DET-EGENSKABER"
+
+#. 4
+#: ../cli/src/devices.c:78
+msgid "IP4-SETTINGS"
+msgstr "IP4-INSTILLINGER"
+
+#. 5
+#: ../cli/src/devices.c:79
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 6
+#: ../cli/src/devices.c:80
+msgid "IP6-SETTINGS"
+msgstr "IP6-INDSTILLINGER"
+
+#. 7
+#: ../cli/src/devices.c:81
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:92
+msgid "DRIVER"
+msgstr "DRIVER"
+
+#. 3
+#: ../cli/src/devices.c:93
+msgid "HWADDR"
+msgstr "HWADDR"
+
+#. 0
+#: ../cli/src/devices.c:103
+msgid "CARRIER-DETECT"
+msgstr "UDBYDER-OPFANG"
+
+#. 1
+#: ../cli/src/devices.c:104
+msgid "SPEED"
+msgstr "HASTIGHED"
+
+#. 0
+#: ../cli/src/devices.c:113
+msgid "CARRIER"
+msgstr "UDBYDER"
+
+#. 0
+#: ../cli/src/devices.c:123
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:124
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:125
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:126
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:127
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:136
+#: ../cli/src/devices.c:147
+msgid "ADDRESS"
+msgstr "ADRESSE"
+
+#. 1
+#: ../cli/src/devices.c:137
+#: ../cli/src/devices.c:148
+msgid "PREFIX"
+msgstr "PRÆFIKS"
+
+#. 2
+#: ../cli/src/devices.c:138
+#: ../cli/src/devices.c:149
+msgid "GATEWAY"
+msgstr "ADGANGSPUNKT"
+
+#. 0
+#: ../cli/src/devices.c:158
+#: ../cli/src/devices.c:167
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:176
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:177
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:178
+msgid "MODE"
+msgstr "TILSTAND"
+
+#. 3
+#: ../cli/src/devices.c:179
+msgid "FREQ"
+msgstr "FREK"
+
+#. 4
+#: ../cli/src/devices.c:180
+msgid "RATE"
+msgstr "RATE"
+
+#. 5
+#: ../cli/src/devices.c:181
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#. 6
+#: ../cli/src/devices.c:182
+msgid "SECURITY"
+msgstr "SIKKERHED"
+
+#. 7
+#: ../cli/src/devices.c:183
+msgid "WPA-FLAGS"
+msgstr "WPA-FLAG"
+
+#. 8
+#: ../cli/src/devices.c:184
+msgid "RSN-FLAGS"
+msgstr "RSN-FLAG"
+
+#. 10
+#: ../cli/src/devices.c:186
+msgid "ACTIVE"
+msgstr "AKTIV"
+
+#: ../cli/src/devices.c:209
#, c-format
msgid ""
-"unable to create netlink socket for monitoring wired ethernet devices - %s"
+"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"
msgstr ""
-"kan ikke oprette netlink sokkel til overvågning af kablede ethernet enheder "
-"- %s"
+"Brug: nmcli dev { KOMMANDO | help }\n"
+"\n"
+" KOMMANDO := { status | list | disconnect | wifi }\n"
+"\n"
+" status\n"
+" list [iface <iface>]\n"
+" disconnect iface <iface> [--nowait] [--timeout <tidsudløb>]\n"
+" wifi [list [iface <iface>] [hwaddr <hwadr>]]\n"
+"\n"
+
+#: ../cli/src/devices.c:229
+msgid "unmanaged"
+msgstr "uhåndteret"
+
+#: ../cli/src/devices.c:231
+msgid "unavailable"
+msgstr "utilgængelig"
+
+#: ../cli/src/devices.c:233
+#: ../cli/src/network-manager.c:91
+msgid "disconnected"
+msgstr "frakoblet"
+
+#: ../cli/src/devices.c:235
+msgid "connecting (prepare)"
+msgstr "forbinder (forbereder)"
+
+#: ../cli/src/devices.c:237
+msgid "connecting (configuring)"
+msgstr "forbinder (konfigurerer)"
+
+#: ../cli/src/devices.c:239
+msgid "connecting (need authentication)"
+msgstr "forbinder (venter på godkendelse)"
+
+#: ../cli/src/devices.c:241
+msgid "connecting (getting IP configuration)"
+msgstr "forbinder (henter IP-konfiguration)"
+
+#: ../cli/src/devices.c:243
+#: ../cli/src/network-manager.c:89
+msgid "connected"
+msgstr "tilsluttet"
+
+#: ../cli/src/devices.c:245
+msgid "connection failed"
+msgstr "forbindelse fejlet"
+
+#: ../cli/src/devices.c:268
+#: ../cli/src/devices.c:425
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: ../cli/src/devices.c:300
+msgid "(none)"
+msgstr "(ingen)"
+
+#: ../cli/src/devices.c:325
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: Fejl under konvertering af IP4-adresse 0x%X"
+
+#: ../cli/src/devices.c:394
+#, c-format
+msgid "%u MHz"
+msgstr "%u MHz"
+
+#: ../cli/src/devices.c:395
+#, c-format
+msgid "%u MB/s"
+msgstr "%u MB/s"
+
+#: ../cli/src/devices.c:404
+msgid "Encrypted: "
+msgstr "Krypteret: "
+
+#: ../cli/src/devices.c:409
+msgid "WEP "
+msgstr "WEP "
+
+#: ../cli/src/devices.c:411
+msgid "WPA "
+msgstr "WPA "
+
+#: ../cli/src/devices.c:413
+msgid "WPA2 "
+msgstr "WPA2 "
+
+#: ../cli/src/devices.c:416
+msgid "Enterprise "
+msgstr "Erhverv "
+
+#: ../cli/src/devices.c:425
+msgid "Ad-Hoc"
+msgstr "Ad-Hoc"
+
+#: ../cli/src/devices.c:425
+msgid "Infrastructure"
+msgstr "Infrastruktur"
+
+#: ../cli/src/devices.c:487
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "Fejl: 'dev list': %s"
+
+#: ../cli/src/devices.c:489
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Fejl: 'dev list'': %s; tilladte felter: %s"
+
+#: ../cli/src/devices.c:498
+msgid "Device details"
+msgstr "Enhedsdetaljer"
-#: ../src/nm-netlink-monitor.c:192
+#: ../cli/src/devices.c:528
+#: ../cli/src/devices.c:927
+msgid "(unknown)"
+msgstr "(ukendt)"
+
+#: ../cli/src/devices.c:529
+msgid "unknown)"
+msgstr "ukendt)"
+
+#: ../cli/src/devices.c:555
+#, c-format
+msgid "%u Mb/s"
+msgstr "%u Mb/s"
+
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:628
+msgid "on"
+msgstr "tændt"
+
+#: ../cli/src/devices.c:628
+msgid "off"
+msgstr "slukket"
+
+#: ../cli/src/devices.c:810
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Fejl: 'dev status': %s"
+
+#: ../cli/src/devices.c:812
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Fejl: 'dev status': %s; tilladte felter: %s"
+
+#: ../cli/src/devices.c:819
+msgid "Status of devices"
+msgstr "Status på enheder"
+
+#: ../cli/src/devices.c:847
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "Fejl: '%s'-parameter mangler."
+
+#: ../cli/src/devices.c:876
+#: ../cli/src/devices.c:1015
+#: ../cli/src/devices.c:1138
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "Fejl: Enhed \"%s\" ikke fundet."
+
+#: ../cli/src/devices.c:899
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Succes: Enhed '%s' frakoblet."
+
+#: ../cli/src/devices.c:924
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Fejl: Frakobling af enhed \"%s\" (%s) mislykkedes: %s"
+
+#: ../cli/src/devices.c:932
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "Enhedstilstand: %d (%s)\n"
+
+#: ../cli/src/devices.c:996
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Fejl: iface skal være angivet."
+
+#: ../cli/src/devices.c:1114
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Fejl: 'dev wifi': %s"
+
+#: ../cli/src/devices.c:1116
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Fejl: 'dev wifi': %s; tilladte felter: %s"
+
+#: ../cli/src/devices.c:1123
+msgid "WiFi scan list"
+msgstr "WiFi-skanningsliste"
+
+#: ../cli/src/devices.c:1158
+#: ../cli/src/devices.c:1212
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Fejl: Adgangspunkt med hwadr '%s' blev ikke fundet."
+
+#: ../cli/src/devices.c:1175
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "Fejl: Enhed '%s' er ikke en WiFi-enhed."
+
+#: ../cli/src/devices.c:1239
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "Fejl: 'dev wifi'-kommandoen '%s' er ikke gyldig."
+
+#: ../cli/src/devices.c:1286
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "Fejl: 'dev'-kommanoden '%s' er ikke gyldig."
+
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "KØRER"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "NET-AKTIVERET"
+
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "WIFI-HARDWARE"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "WIFI"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "WWAN-HARDWARE"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "WWAN"
+
+#: ../cli/src/network-manager.c:64
#, c-format
msgid ""
-"unable to bind to netlink socket for monitoring wired ethernet devices - %s"
+"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"
msgstr ""
-"kan ikke tilslutte netlink sokkel til overvågning af kablede ethernet "
-"enheder - %s"
+"Brug: nmcli nm { KOMMANDO | help }\n"
+"\n"
+" KOMMANDO := { 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:85
+msgid "asleep"
+msgstr "sover"
+
+#: ../cli/src/network-manager.c:87
+msgid "connecting"
+msgstr "forbinder"
+
+#: ../cli/src/network-manager.c:128
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Fejl: 'nm status': %s"
-#: ../src/nm-netlink-monitor.c:427
-msgid "operation took too long"
-msgstr "handlingen overskred tidsgrænsen"
+#: ../cli/src/network-manager.c:130
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Fejl: 'nm status': %s; tilladte felter: %s"
+
+#: ../cli/src/network-manager.c:137
+msgid "NetworkManager status"
+msgstr "Status for NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:144
+#: ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146
+#: ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328
+msgid "enabled"
+msgstr "aktiveret"
+
+#: ../cli/src/network-manager.c:144
+#: ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146
+#: ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328
+msgid "disabled"
+msgstr "deaktiveret"
+
+#: ../cli/src/network-manager.c:152
+msgid "running"
+msgstr "kører"
+
+#: ../cli/src/network-manager.c:152
+msgid "not running"
+msgstr "kører ikke"
+
+#: ../cli/src/network-manager.c:175
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Fejl: Kunne ikke forbinde til systembus: %s"
-#: ../src/nm-netlink-monitor.c:524
-msgid "received data from wrong type of sender"
-msgstr "modtog data fra forkert type afsender"
+#: ../cli/src/network-manager.c:186
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Fejl: Kunne ikke oprette proxy-objekt for D-Bus."
-#: ../src/nm-netlink-monitor.c:537
-msgid "received data from unexpected sender"
-msgstr "modtog data fra uventet afsender"
+#: ../cli/src/network-manager.c:192
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "Fejl ved søvn: %s"
-#: ../src/nm-netlink-monitor.c:666
-msgid "too much data was sent over socket and some of it was lost"
-msgstr "for meget data var sendt over sokkelen og noget gik tabt"
+#: ../cli/src/network-manager.c:237
+#: ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr "Fejl: '--fields'-værdi '%s' er ikke gyldig her; tilladte felter: %s"
-#: ../src/nm-netlink-monitor.c:774
-msgid "error occurred while waiting for data on socket"
-msgstr "der opstod en fejl mens der blev ventet på data på sokkelen"
+#: ../cli/src/network-manager.c:245
+msgid "Networking enabled"
+msgstr "Netværk aktiveret"
-#: ../src/nm-ap-security-wpa-eap.c:93 ../src/nm-ap-security-wpa-eap.c:117
-msgid "WPA2 Enterprise"
-msgstr "WPA2 i virksomhed"
+#: ../cli/src/network-manager.c:256
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr "Fejl: Ugyldig 'enable'-parameter: '%s'; brug 'true' eller 'false'."
-#: ../src/nm-ap-security-wpa-eap.c:95 ../src/nm-ap-security-wpa-eap.c:122
-msgid "WPA Enterprise"
-msgstr "WPA i virksomhed"
+#: ../cli/src/network-manager.c:265
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Fejl: NetworkManager eksporterer ikke søvnstatus."
-#: ../src/nm-ap-security-leap.c:66 ../src/nm-ap-security-leap.c:82
-msgid "LEAP"
-msgstr "LEAP"
+#: ../cli/src/network-manager.c:273
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr "Fejl: Ugyldig 'sleep'-parameter: '%s'; brug 'true' eller 'false'."
-#~ msgid "Passphrase for wireless network %s"
-#~ msgstr "Adgangskode til trådløst netværk %s"
+#: ../cli/src/network-manager.c:294
+msgid "WiFi enabled"
+msgstr "WiFi aktiveret"
-#~ msgid "Connection to the wireless network '%s' failed."
-#~ msgstr "Tilslutning til det trådløse netværk '%s' mislykkedes."
+#: ../cli/src/network-manager.c:305
+#, c-format
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "Fejl: Ugyldig 'wifi'-parameter: '%s'."
-#~ msgid "Connection to the wired network failed."
-#~ msgstr "Tilslutning til det kablede netværk mislykkedes."
+#: ../cli/src/network-manager.c:326
+msgid "WWAN enabled"
+msgstr "WWAN aktiveret"
-#~ msgid "Error displaying connection information: "
-#~ msgstr "Fejl ved visning af forbindelses-information: "
+#: ../cli/src/network-manager.c:337
+#, c-format
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "Fejl: Ugyldig 'wwan'-parameter: '%s'."
-#~ msgid "Could not find some required resources (the glade file)!"
-#~ msgstr "Kunne ikke finde nogle krævede ressourcer (glade-filen)!"
+#: ../cli/src/network-manager.c:348
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "Fejl: 'nm'-kommando '%s' er ikke gyldig."
-#~ msgid "No active connections!"
-#~ msgstr "Ingen aktive forbindelser!"
+#: ../cli/src/nmcli.c:69
+#, 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"
+msgstr ""
+"Brug: %s [TILVALG] OBJEKT { KOMMANDO | help }\n"
+"\n"
+"TILVALG\n"
+" -t[erse] kort udskrift\n"
+" -p[retty] pæn udskrift\n"
+" -m[ode] tabular|multiline udskriftstilstand\n"
+" -f[ields] <felt1,felt2,...>|all|common angiv felter til udskrift\n"
+" -e[scape] yes|no undvig kolonneadskillere i værdier\n"
+" -v[ersion] vis programversion\n"
+" -h[elp] vis denne hjælpetekst\n"
+"\n"
+"OBJEKT\n"
+" nm status for NetworkManager \n"
+" con forbindelser for NetworkManager\n"
+" dev enheder håndteret af NetworkManager\n"
+"\n"
+
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Fejl: Objekt '%s' er ukendt, prøv 'nmcli help'."
-#~ msgid "Wired Ethernet (%s)"
-#~ msgstr "Kablet Ethernet (%s)"
+#: ../cli/src/nmcli.c:143
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Fejl: Tilvalg '--terse' er angivet anden gang."
-#~ msgid "Wireless Ethernet (%s)"
-#~ msgstr "Trådløst Ethernet (%s)"
+#: ../cli/src/nmcli.c:148
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr "Fejl: Tilvalg '--terse' kan ikke bruges sammen med '--pretty'."
+
+#: ../cli/src/nmcli.c:156
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Fejl: Tilvalg '--pretty' er angivet anden gang."
+
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr "Fejl: Tilvalg '--pretty' kan ikke bruges sammen med '--terse'."
+
+#: ../cli/src/nmcli.c:171
+#: ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "Fejl: Mangler argument for tilvalget '%s'."
+
+#: ../cli/src/nmcli.c:180
+#: ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Fejl: '%s' er ikke et gyldigt argument for tilvalget '%s'."
+
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Fejl: Felter for tilvalgene '%s' mangler."
+
+#: ../cli/src/nmcli.c:209
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "nmcli-værktøj, version %s\n"
+
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "Fejl: Tilvalg '%s' er ukendt, prøv 'nmcli -help'."
+
+#: ../cli/src/nmcli.c:234
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "Fik signal %d, afslutter..."
+
+#: ../cli/src/nmcli.c:259
+#, c-format
+msgid "Error: Could not connect to NetworkManager."
+msgstr "Fejl: Kunne ikke oprette forbinde til NetworkManager."
+
+#: ../cli/src/nmcli.c:275
+msgid "Success"
+msgstr "Succes"
+
+#: ../cli/src/settings.c:411
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (hex-ascii-nøgle)"
+
+#: ../cli/src/settings.c:413
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128-bit adgangsfrase)"
+
+#: ../cli/src/settings.c:416
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (ukendt)"
+
+#: ../cli/src/settings.c:442
+msgid "0 (unknown)"
+msgstr "0 (ukendt)"
+
+#: ../cli/src/settings.c:448
+msgid "any, "
+msgstr "enhver, "
+
+#: ../cli/src/settings.c:450
+msgid "900 MHz, "
+msgstr "900 MHz, "
+
+#: ../cli/src/settings.c:452
+msgid "1800 MHz, "
+msgstr "1800 MHz, "
+
+#: ../cli/src/settings.c:454
+msgid "1900 MHz, "
+msgstr "1900 MHz, "
+
+#: ../cli/src/settings.c:456
+msgid "850 MHz, "
+msgstr "850 MHz, "
+
+#: ../cli/src/settings.c:458
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 MHz, "
+
+#: ../cli/src/settings.c:460
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 MHz, "
+
+#: ../cli/src/settings.c:462
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
+
+#: ../cli/src/settings.c:464
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 MHz, "
+
+#: ../cli/src/settings.c:466
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 MHz, "
+
+#: ../cli/src/settings.c:468
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 MHz, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 MHz, "
+
+#: ../cli/src/settings.c:554
+#: ../cli/src/settings.c:721
+msgid "auto"
+msgstr "automatisk"
+
+#: ../cli/src/settings.c:716
+#: ../cli/src/settings.c:719
+#: ../cli/src/settings.c:720
+#: ../cli/src/utils.c:172
+msgid "not set"
+msgstr "ikke sat"
+
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "feltet '%s' skal stå alene"
+
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "ugyldigt felt '%s'"
+
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "Tilvalg '--terse' kræver angivelse af '--fields'"
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr "Tilvalg '--terse' kræver specifikke tilvalgsværdier for '--fields', ikke '%s'"
+
+#: ../libnm-util/crypto.c:121
+#, c-format
+msgid "PEM key file had no end tag '%s'."
+msgstr "PEM-nøglefil havde intet slutmærke \"%s\"."
+
+#: ../libnm-util/crypto.c:131
+#, c-format
+msgid "Doesn't look like a PEM private key file."
+msgstr "Ligner ikke en privat PEM-nøglefil."
+
+#: ../libnm-util/crypto.c:139
+#, c-format
+msgid "Not enough memory to store PEM file data."
+msgstr "Ikke nok hukommelse til at lagre PEM-fildata."
+
+#: ../libnm-util/crypto.c:155
+#, c-format
+msgid "Malformed PEM file: Proc-Type was not first tag."
+msgstr "Fejlskrevet PEM-fil: Proc-Type var ikke første mærke."
+
+#: ../libnm-util/crypto.c:163
+#, c-format
+msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
+msgstr "Fejlskrevet PEM-fil: Ukendt mærke \"%s\" for Proc-type."
+
+#: ../libnm-util/crypto.c:173
+#, c-format
+msgid "Malformed PEM file: DEK-Info was not the second tag."
+msgstr "Fejlskrevet PEM-fil: DEK-info var ikke andet mærke."
+
+#: ../libnm-util/crypto.c:184
+#, c-format
+msgid "Malformed PEM file: no IV found in DEK-Info tag."
+msgstr "Fejlskrevet PEM-fil: intet IV fundet i mærket DEK-Info."
+
+#: ../libnm-util/crypto.c:191
+#, c-format
+msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
+msgstr "Fejlskrevet PEM-fil: ugyldigt format af IV i mærket DEK-Info."
+
+#: ../libnm-util/crypto.c:204
+#, c-format
+msgid "Malformed PEM file: unknown private key cipher '%s'."
+msgstr "Fejlskrevet PEM-fil: ukendt privat nøgleciffer \"%s\"."
+
+#: ../libnm-util/crypto.c:223
+#, c-format
+msgid "Could not decode private key."
+msgstr "Kunne ikke afkode privat nøgle."
+
+#: ../libnm-util/crypto.c:268
+#, c-format
+msgid "PEM certificate '%s' had no end tag '%s'."
+msgstr "PEM-certifikatet \"%s\" har intet slutmærke \"%s\"."
+
+#: ../libnm-util/crypto.c:278
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "Fejl ved afkodning af certifikat."
+
+#: ../libnm-util/crypto.c:287
+#, c-format
+msgid "Not enough memory to store certificate data."
+msgstr "Ikke nok hukommelse til at gemme certifikatdata."
+
+#: ../libnm-util/crypto.c:295
+#, c-format
+msgid "Not enough memory to store file data."
+msgstr "Ikke nok hukommelse til at gemme fildata."
+
+#: ../libnm-util/crypto.c:325
+#, c-format
+msgid "IV must be an even number of bytes in length."
+msgstr "IV skal have en længde på et lige antal byte."
+
+#: ../libnm-util/crypto.c:334
+#, c-format
+msgid "Not enough memory to store the IV."
+msgstr "Ikke nok hukommelse til at gemme IV'en."
+
+#: ../libnm-util/crypto.c:345
+#, c-format
+msgid "IV contains non-hexadecimal digits."
+msgstr "IV indeholder ikke-hexadecimale cifre."
+
+#: ../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
+#, c-format
+msgid "Private key cipher '%s' was unknown."
+msgstr "Privat nøgleciffer \"%s\" var ukendt."
+
+#: ../libnm-util/crypto.c:392
+#, c-format
+msgid "Not enough memory to decrypt private key."
+msgstr "Ikke nok hukommelse til at dekryptere privat nøgle."
+
+#: ../libnm-util/crypto.c:512
+#, c-format
+msgid "Unable to determine private key type."
+msgstr "Kunne ikke afgøre typen af privat nøgle."
-#~ msgid "NetworkManager Applet"
-#~ msgstr "NetworkManager-panelprogram"
+#: ../libnm-util/crypto.c:531
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "Ikke nok hukommelse til at gemme dekrypteret privat nøgle."
-#~ msgid "Copyright © 2004-2005 Red Hat, Inc."
-#~ msgstr "Copyright © 2004-2005 Red Hat, Inc."
+#: ../libnm-util/crypto_gnutls.c:49
+msgid "Failed to initialize the crypto engine."
+msgstr "Kunne ikke initialisere kryptomotor."
-#~ msgid ""
-#~ "Notification area applet for managing your network devices and "
-#~ "connections."
-#~ msgstr ""
-#~ "Statusfelt-panelprogram til håndtering af dine netværks-enheder og -"
-#~ "forbindelser."
+#: ../libnm-util/crypto_gnutls.c:93
+#, c-format
+msgid "Failed to initialize the MD5 engine: %s / %s."
+msgstr "Kunne ikke initialisere MD5-motor: %s / %s."
-#~ msgid "translator-credits"
-#~ msgstr ""
-#~ "David Nielsen\n"
-#~ "Martin Willemoes Hansen\n"
-#~ "Lasse Bang Mikkelsen\n"
-#~ "\n"
-#~ "Dansk-gruppen <dansk@dansk-gruppen.dk>\n"
-#~ "Mere info: http://www.dansk-gruppen.dk"
+#: ../libnm-util/crypto_gnutls.c:156
+#, c-format
+msgid "Invalid IV length (must be at least %zd)."
+msgstr "Ugyldig IV-længde (skal være mindst %zd)."
-#~ msgid "VPN Error"
-#~ msgstr "VPN fejl"
+#: ../libnm-util/crypto_gnutls.c:165
+#: ../libnm-util/crypto_nss.c:188
+#, c-format
+msgid "Not enough memory for decrypted key buffer."
+msgstr "Ikke nok hukommelse til afkodet nøglebuffer."
-#~ msgid "VPN Login Failure"
-#~ msgstr "VPN logind-fejl"
+#: ../libnm-util/crypto_gnutls.c:173
+#, c-format
+msgid "Failed to initialize the decryption cipher context: %s / %s."
+msgstr "Kunne ikke initialisere cifferkontekst til dekryptering: %s / %s."
-#~ msgid "Could not start the VPN connection '%s' due to a login failure."
-#~ msgstr ""
-#~ "Kunne ikke etablere VPN-forbindelsen '%s' pågrund af en logind-fejl."
+#: ../libnm-util/crypto_gnutls.c:182
+#, c-format
+msgid "Failed to set symmetric key for decryption: %s / %s."
+msgstr "Kunne ikke sætte symmetrisk nøgle til dekryptering: %s / %s."
-#~ msgid "VPN Start Failure"
-#~ msgstr "VPN etablerings-fejl"
+#: ../libnm-util/crypto_gnutls.c:191
+#, c-format
+msgid "Failed to set IV for decryption: %s / %s."
+msgstr "Kunne ikke sætte IV til dekryptering: %s / %s."
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' due to a failure launching the "
-#~ "VPN program."
-#~ msgstr ""
-#~ "Kunne ikke etablere VPN-forbindelsen '%s' pågrund af fejl ved start af "
-#~ "VPN-program."
+#: ../libnm-util/crypto_gnutls.c:200
+#, c-format
+msgid "Failed to decrypt the private key: %s / %s."
+msgstr "Kunne ikke dekryptere den private nøgle: %s / %s."
-#~ msgid "VPN Connect Failure"
-#~ msgstr "VPN tilslutnings-fejl"
+#: ../libnm-util/crypto_gnutls.c:210
+#: ../libnm-util/crypto_nss.c:267
+#, c-format
+msgid "Failed to decrypt the private key: unexpected padding length."
+msgstr "Kunne ikke dekryptere den private nøgle: uventet længde af fylddata."
-#~ msgid "Could not start the VPN connection '%s' due to a connection error."
-#~ msgstr ""
-#~ "Kunne ikke etablere VPN-forbindelsen '%s' pågrund af en forbindelses-fejl."
+#: ../libnm-util/crypto_gnutls.c:221
+#: ../libnm-util/crypto_nss.c:278
+#, c-format
+msgid "Failed to decrypt the private key."
+msgstr "Kunne ikke dekryptere den private nøgle."
-#~ msgid "VPN Configuration Error"
-#~ msgstr "VPN konfigurations-fejl"
+#: ../libnm-util/crypto_gnutls.c:286
+#: ../libnm-util/crypto_nss.c:356
+#, c-format
+msgid "Could not allocate memory for encrypting."
+msgstr "Kunne ikke allokere hukommelse til kryptering."
-#~ msgid "The VPN connection '%s' was not correctly configured."
-#~ msgstr "VPN-forbindelsen '%s' er ikke konfigureret korrekt."
+#: ../libnm-util/crypto_gnutls.c:294
+#, c-format
+msgid "Failed to initialize the encryption cipher context: %s / %s."
+msgstr "Kunne ikke initialisere krypteringscifferkontekst: %s / %s."
-#~ msgid ""
-#~ "Could not start the VPN connection '%s' because the VPN server did not "
-#~ "return an adequate network configuration."
-#~ msgstr ""
-#~ "Kunne ikke etablere VPN-forbindelsen '%s' fordi VPN-serveren ikke "
-#~ "returnerede en passende netværks-konfiguration."
+#: ../libnm-util/crypto_gnutls.c:303
+#, c-format
+msgid "Failed to set symmetric key for encryption: %s / %s."
+msgstr "Kunne ikke sætte symmetrisk nøgle til kryptering: %s / %s."
-#~ msgid "The VPN service said: \"%s\""
-#~ msgstr "VPN-tjenesten sagde: \"%s\""
+#: ../libnm-util/crypto_gnutls.c:313
+#, c-format
+msgid "Failed to set IV for encryption: %s / %s."
+msgstr "Kunne ikke sætte IV til kryptering: %s / %s."
-#~ msgid "VPN connection '%s' said:"
-#~ msgstr "VPN-forbindelsen '%s' sagde:"
+#: ../libnm-util/crypto_gnutls.c:322
+#, c-format
+msgid "Failed to encrypt the data: %s / %s."
+msgstr "Kunne ikke kryptere data: %s / %s."
-#~ msgid "VPN Login Message"
-#~ msgstr "VPN logind-meddelelse"
+#: ../libnm-util/crypto_gnutls.c:362
+#, c-format
+msgid "Error initializing certificate data: %s"
+msgstr "Fejl under initialisering af certifikatdata: %s"
-#~ msgid ""
-#~ "The NetworkManager Applet could not find some required resources (the "
-#~ "glade file was not found)."
-#~ msgstr ""
-#~ "NetworkManager panelprogrammet kunne ikke finde nogle krævede ressourcer "
-#~ "(glade-filen blev ikke fundet)."
+#: ../libnm-util/crypto_gnutls.c:384
+#, c-format
+msgid "Couldn't decode certificate: %s"
+msgstr "Kunne ikke afkode certifikat: %s"
-#~ msgid "The network device \"%s (%s)\" does not support wireless scanning."
-#~ msgstr "Netværks-enheden \"%s (%s)\" understøtter ikke trådløs scanning."
+#: ../libnm-util/crypto_gnutls.c:408
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgstr "Kunne ikke initialisere PKCS#12-afkoder: %s"
-#~ msgid "The network device \"%s (%s)\" does not support link detection."
-#~ msgstr "Netværks-enheden \"%s (%s)\" understøtter ikke link-detektering."
+#: ../libnm-util/crypto_gnutls.c:421
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %s"
+msgstr "Kunne ikke afkode PKCS#12-fil: %s"
-#~ msgid "Preparing device %s for the wired network..."
-#~ msgstr "Klargører enheden %s til det kablede netværk..."
+#: ../libnm-util/crypto_gnutls.c:433
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %s"
+msgstr "Kunne ikke bekræfte PKCS#12-fil: %s"
-#~ msgid "Preparing device %s for the wireless network '%s'..."
-#~ msgstr "Klargører enheden %s til det trådløse netværk '%s'..."
+#: ../libnm-util/crypto_nss.c:56
+#, c-format
+msgid "Failed to initialize the crypto engine: %d."
+msgstr "Kunne ikke initialisere kryptomotor: %d."
-#~ msgid "Configuring device %s for the wired network..."
-#~ msgstr "Konfigurerer enheden %s til det kablede netværk..."
+#: ../libnm-util/crypto_nss.c:111
+#, c-format
+msgid "Failed to initialize the MD5 context: %d."
+msgstr "Kunne ikke initialisere MD5-kontekst: %d."
-#~ msgid "Attempting to join the wireless network '%s'..."
-#~ msgstr "Forsøger at tilslutte til det trådløse netværk '%s'..."
+#: ../libnm-util/crypto_nss.c:179
+#, c-format
+msgid "Invalid IV length (must be at least %d)."
+msgstr "Ugyldig IV-længde (skal være mindst %d)."
-#~ msgid "Waiting for Network Key for the wireless network '%s'..."
-#~ msgstr "Venter på netværksnøglen til det trådløse netværk '%s'..."
+#: ../libnm-util/crypto_nss.c:196
+#, c-format
+msgid "Failed to initialize the decryption cipher slot."
+msgstr "Kunne ikke initialisere cifferplads til dekryptering."
-#~ msgid "Requesting a network address from the wired network..."
-#~ msgstr "Forespørger en netværks-adresse fra det kablede netværk..."
+#: ../libnm-util/crypto_nss.c:206
+#, c-format
+msgid "Failed to set symmetric key for decryption."
+msgstr "Kunne ikke sætte symmetrisk nøgle til kryptering."
-#~ msgid "Requesting a network address from the wireless network '%s'..."
-#~ msgstr "Forespørger en netværks-adresse fra det trådløse netværk '%s'..."
+#: ../libnm-util/crypto_nss.c:216
+#, c-format
+msgid "Failed to set IV for decryption."
+msgstr "Kunne ikke sætte IV til dekryptering."
-#~ msgid "Finishing connection to the wired network..."
-#~ msgstr "Færdiggører tilslutning til det kablede netværk..."
+#: ../libnm-util/crypto_nss.c:224
+#, c-format
+msgid "Failed to initialize the decryption context."
+msgstr "Kunne ikke initialisere dekrypteringskonteksten."
-#~ msgid "Finishing connection to the wireless network '%s'..."
-#~ msgstr "Færdiggører tilslutning til det trådløse netværk '%s'..."
+#: ../libnm-util/crypto_nss.c:237
+#, c-format
+msgid "Failed to decrypt the private key: %d."
+msgstr "Kunne ikke dekryptere den private nøgle: %d."
-#~ msgid "NetworkManager is not running"
-#~ msgstr "NetworkManager kører ikke"
+#: ../libnm-util/crypto_nss.c:245
+#, c-format
+msgid "Failed to decrypt the private key: decrypted data too large."
+msgstr "Kunne ikke dekryptere den private nøgle: for stor mængde dekrypteret data."
-#~ msgid "Networking disabled"
-#~ msgstr "Netværks-understøttelse deaktiveret"
+#: ../libnm-util/crypto_nss.c:256
+#, c-format
+msgid "Failed to finalize decryption of the private key: %d."
+msgstr "Kunne ikke afslutte dekryptering af den private nøgle: %d."
-#~ msgid "No network connection"
-#~ msgstr "Ingen netværks-forbindelse"
+#: ../libnm-util/crypto_nss.c:364
+#, c-format
+msgid "Failed to initialize the encryption cipher slot."
+msgstr "Kunne ikke initialisere cifferplads til kryptering."
-#~ msgid "Wired network connection"
-#~ msgstr "Kablet netværks-forbindelse"
+#: ../libnm-util/crypto_nss.c:372
+#, c-format
+msgid "Failed to set symmetric key for encryption."
+msgstr "Kunne ikke sætte symmetrisk nøgle til kryptering."
-#~ msgid "Connected to an Ad-Hoc wireless network"
-#~ msgstr "Tilsluttet til et trådløst ad hoc netværk"
+#: ../libnm-util/crypto_nss.c:380
+#, c-format
+msgid "Failed to set IV for encryption."
+msgstr "Kunne ikke sætte IV til kryptering."
-#~ msgid "Wireless network connection to '%s' (%d%%)"
-#~ msgstr "Trådløs netværks-forbindelse til '%s' (%d%%)"
+#: ../libnm-util/crypto_nss.c:388
+#, c-format
+msgid "Failed to initialize the encryption context."
+msgstr "Kunne ikke initialisere krypteringskontekst."
-#~ msgid "VPN connection to '%s'"
-#~ msgstr "VPN-forbindelse til '%s'"
+#: ../libnm-util/crypto_nss.c:396
+#, c-format
+msgid "Failed to encrypt: %d."
+msgstr "Kunne ikke kryptere: %d."
-#~ msgid "VPN connecting to '%s'"
-#~ msgstr "VPN tilslutter til '%s'"
+#: ../libnm-util/crypto_nss.c:404
+#, c-format
+msgid "Unexpected amount of data after encrypting."
+msgstr "Uventet mængde af data efter kryptering."
-#~ msgid "_Connect to Other Wireless Network..."
-#~ msgstr "_Tilslut til andet trådløst netværk..."
+#: ../libnm-util/crypto_nss.c:447
+#, c-format
+msgid "Couldn't decode certificate: %d"
+msgstr "Kunne ikke afkode certifikat: %d"
-#~ msgid "Create _New Wireless Network..."
-#~ msgstr "Opret _nyt trådløst netværk..."
+#: ../libnm-util/crypto_nss.c:482
+#, c-format
+msgid "Couldn't convert password to UCS2: %d"
+msgstr "Kunne ikke konvertere adgangskode til UCS2: %d"
-#~ msgid "_VPN Connections"
-#~ msgstr "_VPN-forbindelser"
+#: ../libnm-util/crypto_nss.c:510
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %d"
+msgstr "Kunne ikke initialisere PKCS#12-afkoder: %d"
-#~ msgid "_Configure VPN..."
-#~ msgstr "_Konfigurér VPN..."
+#: ../libnm-util/crypto_nss.c:519
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %d"
+msgstr "Kunne ikke afkode PKCS#12-fil: %d"
-#~ msgid "_Disconnect VPN..."
-#~ msgstr "_Afbryd VPN..."
+#: ../libnm-util/crypto_nss.c:528
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %d"
+msgstr "Kunne ikke verificere PKCS#12-fil: %d"
-#~ msgid "_Dial Up Connections"
-#~ msgstr "_Opkalds-forbindelser"
+#: ../libnm-util/crypto_nss.c:557
+msgid "Could not generate random data."
+msgstr "Kunne ikke generere tilfældige data."
-#~ msgid "Connect to %s..."
-#~ msgstr "Tilslut til %s..."
+#: ../libnm-util/nm-utils.c:1975
+#, c-format
+msgid "Not enough memory to make encryption key."
+msgstr "Ikke nok hukommelse til at oprette krypteringsnøgle."
-#~ msgid "Disconnect from %s..."
-#~ msgstr "Afbryd fra %s..."
+#: ../libnm-util/nm-utils.c:2085
+msgid "Could not allocate memory for PEM file creation."
+msgstr "Kunne ikke allokere hukommelse til PEM-filoprettelse."
-#~ msgid "No network devices have been found"
-#~ msgstr "Ingen netværks-enheder blev fundet"
+#: ../libnm-util/nm-utils.c:2097
+#, c-format
+msgid "Could not allocate memory for writing IV to PEM file."
+msgstr "Kunne ikke allokere hukommelse til at skrive IV til PEM-fil."
-#~ msgid "NetworkManager is not running..."
-#~ msgstr "NetworkManager kører ikke..."
+#: ../libnm-util/nm-utils.c:2109
+#, c-format
+msgid "Could not allocate memory for writing encrypted key to PEM file."
+msgstr "Kunne ikke allokere hukommelse til at skrive krypteret nøgle til PEM-fil."
-#~ msgid "Enable _Networking"
-#~ msgstr "Aktivér _netværks-understøttelse"
+#: ../libnm-util/nm-utils.c:2128
+#, c-format
+msgid "Could not allocate memory for PEM file data."
+msgstr "Kunne ikke allokere hukommelse til PEM-fildata."
-#~ msgid "Enable _Wireless"
-#~ msgstr "Aktivér _trådløst netværk"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Deling af forbindelse via et beskyttet WiFi-netværk"
-#~ msgid "Connection _Information"
-#~ msgstr "Forbindelses-_information"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "Deling af forbindelse via et åbent WiFi-netværk"
-#~ msgid "_Help"
-#~ msgstr "_Hjælp"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "Ændr fast systemværtsnavn"
-#~ msgid "_About"
-#~ msgstr "_Om"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+msgid "Modify system connections"
+msgstr "Ændr systemforbindelser"
-#~ msgid ""
-#~ "The NetworkManager applet could not find some required resources. It "
-#~ "cannot continue.\n"
-#~ msgstr ""
-#~ "NetworkManager panelprogrammet kunne ikke finde nogle krævede ressourcer "
-#~ "- kan ikke fortsætte.\n"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr "Systempolitikken forhindrer modifikation af systemindstillinger"
-#~ msgid "Open System"
-#~ msgstr "Ã…bent system"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr "Systempolitikken forhindrer ændring af det faste systemværtsnavn"
-#~ msgid "Shared Key"
-#~ msgstr "Delt nøgle"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr "Systempolitikken forhindrer deling af forbindelser via et beskyttet WiFi-netværk"
-#~ msgid "TKIP (Default)"
-#~ msgstr "TKIP (forvalgt)"
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr "Systempolitikken forhindrer deling af forbindelser via et åbent WiFi-netværk"
-#~ msgid "AES-CCMP"
-#~ msgstr "AES-CCMP"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Tillad kontrol af netværksforbindelser"
-#~ msgid "None"
-#~ msgstr "Ingen"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Tillad brug af brugerspecifikke forbindelser"
-#~ msgid "WEP 40/128-bit ASCII"
-#~ msgstr "WEP 40/128-bit ASCII"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "Aktiver eller deaktiver WiFi-enheder"
-#~ msgid "WEP 40/128-bit hex"
-#~ msgstr "WEP 40/128-bit hex"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable mobile broadband devices"
+msgstr "Aktiver eller deaktiver mobile bredbåndsenheder"
-#~ msgid "WEP Passphrase"
-#~ msgstr "WEP-adgangskode:"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable system networking"
+msgstr "Aktiver eller deaktiver systemnetværk"
-#~ msgid "Orientation"
-#~ msgstr "Retning"
+#: ../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 "Sæt NetworkManager i hvile eller væk den (bør kun bruges af systemstrømstyringen)"
-#~ msgid "The orientation of the tray."
-#~ msgstr "Retningen på statusikonet."
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "System policy prevents control of network connections"
+msgstr "Systempolitik forhindrer kontrol af netværksforbindelser"
-#~ msgid "Wired Network (%s)"
-#~ msgstr "Kablet netværk (%s)"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "Systempolitik forhindrer aktivering eller deaktivering af WiFi-enheder"
-#~ msgid "_Wired Network"
-#~ msgstr "_Kablet netværk"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr "Systempolitik forhindrer aktivering eller deaktivering af mobile bredbåndsenheder"
-#~ msgid "Wireless Network (%s)"
-#~ msgid_plural "Wireless Networks (%s)"
-#~ msgstr[0] "Trådløst netværk (%s)"
-#~ msgstr[1] "Trådløse netværk (%s)"
-
-#~ msgid "Wireless Network"
-#~ msgid_plural "Wireless Networks"
-#~ msgstr[0] "Trådløst netværk"
-#~ msgstr[1] "Trådløse netværk"
-
-#~ msgid " (invalid Unicode)"
-#~ msgstr " (ugyldig Unicode)"
-
-#~ msgid ""
-#~ "By default, the wireless network's name is set to your computer's name, %"
-#~ "s, with no encryption enabled"
-#~ msgstr ""
-#~ "Som standard navngives det trådløse netværk til din maskines navn, %s, "
-#~ "uden nogen kryptering slået til"
-
-#~ msgid "Create new wireless network"
-#~ msgstr "Opret nyt trådløst netværk"
-
-#~ msgid ""
-#~ "Enter the name and security settings of the wireless network you wish to "
-#~ "create."
-#~ msgstr ""
-#~ "Indtast navn- og sikkerhedsopsætning på det trådløse netværk du ønsker at "
-#~ "oprette."
-
-#~ msgid "Create New Wireless Network"
-#~ msgstr "Opret nyt trådløst netværk"
-
-#~ msgid "Existing wireless network"
-#~ msgstr "Eksisterende trådløst netværk"
-
-#~ msgid "Enter the name of the wireless network to which you wish to connect."
-#~ msgstr "Indtast navnet på det trådløse netværk du ønsker at tilslutte dig."
-
-#~ msgid "Connect to Other Wireless Network"
-#~ msgstr "Tilslut til andet trådløst netværk"
-
-#~ msgid "Cannot start VPN connection '%s'"
-#~ msgstr "Kan ikke etablere VPN-forbindelsen '%s'"
-
-#~ msgid ""
-#~ "Could not find the authentication dialog for VPN connection type '%s'. "
-#~ "Contact your system administrator."
-#~ msgstr ""
-#~ "Kunne ikke finde godkendelses-vinduet til VPN-forbindelsestypen '%s'. "
-#~ "Kontakt din system-administrator."
-
-#~ msgid ""
-#~ "There was a problem launching the authentication dialog for VPN "
-#~ "connection type '%s'. Contact your system administrator."
-#~ msgstr ""
-#~ "Der opstod en fejl ved start af godkendelses-vinduet til VPN-"
-#~ "forbindelsestypen '%s'. Kontakt din system-administrator."
-
-#~ msgid " "
-#~ msgstr " "
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Active Connection Information</span>"
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Information om aktiv forbindelse</"
-#~ "span>"
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Passphrase Required by Wireless "
-#~ "Network</span>\n"
-#~ "\n"
-#~ "A passphrase or encryption key is required to access the wireless network "
-#~ "'%s'."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Adgangskode påkrævet af trådløst "
-#~ "netværk</span>\n"
-#~ "\n"
-#~ "En adgangskode eller krypteringsnøgle er påkrævet, for at opnå adgang til "
-#~ "det trådløse netværk '%s'."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Reduced Network Functionality</"
-#~ "span>\n"
-#~ "\n"
-#~ "%s It will not be completely functional."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Reduceret netværks-funktionalitet</"
-#~ "span>\n"
-#~ "\n"
-#~ "%s Den vil ikke være fuldstændig funktionsdygtig."
-
-#~ msgid ""
-#~ "<span weight=\"bold\" size=\"larger\">Wireless Network Login "
-#~ "Confirmation</span>\n"
-#~ "\n"
-#~ "You have chosen to log in to the wireless network '%s'. If you are sure "
-#~ "that this wireless network is secure, click the checkbox below and "
-#~ "NetworkManager will not require confirmation on subsequent log ins."
-#~ msgstr ""
-#~ "<span weight=\"bold\" size=\"larger\">Bekræftelse af logind på trådløst "
-#~ "netværk</span>\n"
-#~ "\n"
-#~ "Du har valgt at logge på det trådløse netværk '%s'. Hvis du er sikker på "
-#~ "at dette trådløse netværk er sikkert, afkryds nedenstående "
-#~ "afkrydsningsfelt og NetworkManager vil ikke spørge i fremtiden."
-
-#~ msgid "Authentication:"
-#~ msgstr "Godkendelse:"
-
-#~ msgid "Broadcast Address:"
-#~ msgstr "Rundsendings-adresse:"
-
-#~ msgid "C_onnect"
-#~ msgstr "T_ilslut"
-
-#~ msgid "Connection Information"
-#~ msgstr "Forbindelses-information"
-
-#~ msgid "Default Route:"
-#~ msgstr "Standard rute:"
-
-#~ msgid "Destination Address:"
-#~ msgstr "Destinations-adresse:"
-
-#~ msgid "Hardware Address:"
-#~ msgstr "Hardware-adresse:"
-
-#~ msgid "IP Address:"
-#~ msgstr "IP-adresse:"
-
-#~ msgid "Interface:"
-#~ msgstr "Enhed:"
-
-#~ msgid "Key:"
-#~ msgstr "Nøgle:"
-
-#~ msgid ""
-#~ "None\n"
-#~ "WEP Passphrase\n"
-#~ "WEP 40/128-bit hex\n"
-#~ "WEP 40/128-bit ASCII\n"
-#~ msgstr ""
-#~ "Ingen\n"
-#~ "WEP-adgangskode\n"
-#~ "WEP 40/128-bit hex\n"
-#~ "WEP 40/128-bit ASCII\n"
-
-#~ msgid ""
-#~ "Open System\n"
-#~ "Shared Key"
-#~ msgstr ""
-#~ "Ã…bent system\n"
-#~ "Delt nøgle"
-
-#~ msgid "Other Wireless Network..."
-#~ msgstr "Andet trådløst netværk..."
-
-#~ msgid "Passphrase:"
-#~ msgstr "Adgangskode:"
-
-#~ msgid "Password:"
-#~ msgstr "Adgangskode:"
-
-#~ msgid "Primary DNS:"
-#~ msgstr "Primær DNS:"
-
-#~ msgid "Secondary DNS:"
-#~ msgstr "Sekundær DNS:"
-
-#~ msgid "Subnet Mask:"
-#~ msgstr "Undernet-maske:"
-
-#~ msgid "Type:"
-#~ msgstr "Type:"
-
-#~ msgid "User Name:"
-#~ msgstr "Brugernavn:"
-
-#~ msgid "Wireless Network Key Required"
-#~ msgstr "Nøgle til trådløst netværk påkrævet"
-
-#~ msgid "Wireless _adapter:"
-#~ msgstr "Trådløs _adapter:"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "System policy prevents enabling or disabling system networking"
+msgstr "Systempolitik forhindrer aktivering eller deaktivering af systemnetværk"
-#~ msgid "_Always Trust this Wireless Network"
-#~ msgstr "_Stol altid på dette trådløse netværk"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr "Systempolitik forhindrer at sætte NetworkManager i hvile eller at vække den"
-#~ msgid "_Don't remind me again"
-#~ msgstr "_PÃ¥mind mig ikke igen"
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents use of user-specific connections"
+msgstr "Systempolitik forhindrer brug af brugerspecifikke forbindelser"
-#~ msgid "_Login to Network"
-#~ msgstr "_Log på netværk"
+#: ../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 "fejl under behandling af netlink-besked: %s"
-#~ msgid "_Network Name:"
-#~ msgstr "_Netværksnavn:"
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "der opstod en fejl mens der blev ventet på data på soklen"
-#~ msgid "_Wireless Security:"
-#~ msgstr "Trådløs sikkerhed:"
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr "kan ikke forbinde til netlink for at overvåge forbindelsesstatus: %s"
-#~ msgid "leap_subwindow"
-#~ msgstr "leap_subwindow"
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr "kan ikke aktivere videregivelse af akkreditiver for netlink-håndtag: %s"
-#~ msgid "wep_key_subwindow"
-#~ msgstr "wep_key_subwindow"
+#: ../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 "kan ikke allokere netlink-håndtag til overvågning af forbindelsesstatus: %s"
-#~ msgid "wep_passphrase_subwindow"
-#~ msgstr "wep_passphrase_subwindow"
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr "kan ikke allokere netlink-forbindelsesmellemlager til overvågning af forbindelsesstatus: %s"
-#~ msgid "wpa_psk_subwindow"
-#~ msgstr "wpa_psk_subwindow"
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "kan ikke gå ind i netlink-gruppen: %s"
-#~ msgid "WPA2 Personal"
-#~ msgstr "Personlig WPA2"
+#: ../src/nm-netlink-monitor.c:629
+#: ../src/nm-netlink-monitor.c:642
+#, c-format
+msgid "error updating link cache: %s"
+msgstr "fejl ved opdatering af forbindelsesmellemlager: %s"
-#~ msgid "WPA Personal"
-#~ msgstr "Personlig WPA"
+#: ../src/main.c:506
+#, c-format
+msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgstr "Ugyldigt tilvalg. Brug venligst --help for at se en liste af gyldige tilvalg.\n"
-#~ msgid "Choose which type of VPN connection you wish to create."
-#~ msgstr "Vælg hvilken type VPN-forbindelse du ønsker at oprette."
+#: ../src/main.c:577
+#, c-format
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr "%s. Brug venligst --help for at få en liste af gyldige tilvalg.\n"
-#~ msgid "Connect to:"
-#~ msgstr "Tilslut til:"
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
+msgid "# Created by NetworkManager\n"
+msgstr "# Oprettet af NetworkManager\n"
-#~ msgid "Create VPN Connection - 1 of 2"
-#~ msgstr "Opret VPN-forbindelse - 1 af 2"
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
+#, c-format
+msgid ""
+"# Merged from %s\n"
+"\n"
+msgstr ""
+"# Sammenflettet fra %s\n"
+"\n"
-#~ msgid "Create VPN Connection - 2 of 2"
-#~ msgstr "Opret VPN-forbindelse - 2 af 2"
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "kunne ikke finde en brugbar DHCP-klient."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "'dhclient' blev fundet."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "'dhcpcd' blev fundet."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
+#, c-format
+msgid "unsupported DHCP client '%s'"
+msgstr "ikke-understøttet DHCP-klient '%s'"
+
+#: ../src/logging/nm-logging.c:146
+#, c-format
+msgid "Unknown log level '%s'"
+msgstr "Ukendt logningsniveau '%s'"
+
+#: ../src/logging/nm-logging.c:171
+#, c-format
+msgid "Unknown log domain '%s'"
+msgstr "Ukendt logningsdomæne '%s'"
+
+#: ../src/dns-manager/nm-dns-manager.c:367
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr "BEMÆRK: libc-opløseren understøtter måske ikke mere end tre navneservere."
+
+#: ../src/dns-manager/nm-dns-manager.c:369
+msgid "The nameservers listed below may not be recognized."
+msgstr "Navneserverne vist nedenfor vil måske ikke blive genkendt."
+
+#: ../src/system-settings/nm-default-wired-connection.c:157
+#, c-format
+msgid "Auto %s"
+msgstr "Auto %s"
-#~ msgid "Finish Creating VPN Connection"
-#~ msgstr "Færdiggør oprettelse af VPN-forbindelse"
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3408
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
+msgid "System"
+msgstr "System"
-#~ msgid ""
-#~ "This assistant will guide you through the creation of a connection to a "
-#~ "Virtual Private Network (VPN).\n"
-#~ "\n"
-#~ "It will require some information, such as IP addresses and secrets. "
-#~ "Please see your system administrator to obtain this information."
-#~ msgstr ""
-#~ "Denne vil guide dig gennem oprettelsen af en forbindelse til et virtuelt "
-#~ "privat netværk (VPN).\n"
-#~ "\n"
-#~ "Denne guide vil kræve nogle informationer, såsom IP-adresser og "
-#~ "adgangskode. Henvend dig venligst til din system-administrator for at få "
-#~ "disse informationer."
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 000000000..c099b86cd
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,1766 @@
+# Esperanto translation for NetworkManager
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the network-manager package.
+#
+# Patrick (Petriko) OUDEJANS < >, 2010.
+# Aisano < >, 2010.
+# Kim RIBEIRO < >, 2010.
+# Serge LEBLANC < >, 2010.
+# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: network-manager\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=NetworkManager&component=general\n"
+"POT-Creation-Date: 2010-12-10 15:25+0000\n"
+"PO-Revision-Date: 2010-12-11 10:32+0100\n"
+"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
+"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Launchpad-Export-Date: 2010-12-10 16:56+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../cli/src/connections.c:60 ../cli/src/connections.c:76
+#: ../cli/src/devices.c:89 ../cli/src/devices.c:102 ../cli/src/devices.c:112
+#: ../cli/src/devices.c:122 ../cli/src/devices.c:135 ../cli/src/devices.c:146
+#: ../cli/src/devices.c:157 ../cli/src/devices.c:166 ../cli/src/devices.c:175
+msgid "NAME"
+msgstr "NOMO"
+
+#. 0
+#: ../cli/src/connections.c:61 ../cli/src/connections.c:77
+msgid "UUID"
+msgstr "UUID"
+
+#. 1
+#: ../cli/src/connections.c:62
+msgid "DEVICES"
+msgstr "APARATOJ"
+
+#. 2
+#: ../cli/src/connections.c:63 ../cli/src/connections.c:79
+msgid "SCOPE"
+msgstr "AMPLEKSO"
+
+#. 3
+#: ../cli/src/connections.c:64
+msgid "DEFAULT"
+msgstr "DEFAŬLTA"
+
+#. 4
+#: ../cli/src/connections.c:65
+msgid "DBUS-SERVICE"
+msgstr "DBUS-SERVO"
+
+#. 5
+#: ../cli/src/connections.c:66
+msgid "SPEC-OBJECT"
+msgstr "SPEC-OBJEKTO"
+
+#. 6
+#: ../cli/src/connections.c:67
+msgid "VPN"
+msgstr "VPN"
+
+#. 7
+#. 2
+#: ../cli/src/connections.c:68 ../cli/src/connections.c:84
+#: ../cli/src/devices.c:64
+msgid "DBUS-PATH"
+msgstr "DBUS-VOJO"
+
+#. 1
+#. 0
+#. 1
+#: ../cli/src/connections.c:78 ../cli/src/devices.c:62 ../cli/src/devices.c:91
+msgid "TYPE"
+msgstr "SPECO"
+
+#. 3
+#: ../cli/src/connections.c:80
+msgid "TIMESTAMP"
+msgstr "TEMPINDIKO"
+
+#. 4
+#: ../cli/src/connections.c:81
+msgid "TIMESTAMP-REAL"
+msgstr "REALA-TEMPINDIKO"
+
+#. 5
+#: ../cli/src/connections.c:82
+msgid "AUTOCONNECT"
+msgstr "AŬTOMATA-KONEKTO"
+
+#. 6
+#: ../cli/src/connections.c:83
+msgid "READONLY"
+msgstr "NUR-LEGI"
+
+#: ../cli/src/connections.c:160
+#, 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"
+msgstr ""
+"Uzo: nmcli con { KOMANDO | help }\n"
+" KOMANDO := { 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:200 ../cli/src/connections.c:541
+#, c-format
+msgid "Error: 'con list': %s"
+msgstr "Eraro: 'con list': %s"
+
+#: ../cli/src/connections.c:202 ../cli/src/connections.c:543
+#, c-format
+msgid "Error: 'con list': %s; allowed fields: %s"
+msgstr "Eraro: 'con list': %s; permesataj kampoj: %s"
+
+#: ../cli/src/connections.c:210
+msgid "Connection details"
+msgstr "Konektodetaloj"
+
+#: ../cli/src/connections.c:385 ../cli/src/connections.c:606
+msgid "system"
+msgstr "sistemo"
+
+#: ../cli/src/connections.c:385 ../cli/src/connections.c:606
+msgid "user"
+msgstr "uzanto"
+
+#: ../cli/src/connections.c:387
+msgid "never"
+msgstr "neniam"
+
+#. "CAPABILITIES"
+#. Print header
+#. "WIFI-PROPERTIES"
+#: ../cli/src/connections.c:388 ../cli/src/connections.c:389
+#: ../cli/src/connections.c:607 ../cli/src/connections.c:610
+#: ../cli/src/devices.c:433 ../cli/src/devices.c:558 ../cli/src/devices.c:584
+#: ../cli/src/devices.c:585 ../cli/src/devices.c:586 ../cli/src/devices.c:587
+#: ../cli/src/devices.c:588 ../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
+msgid "yes"
+msgstr "jes"
+
+#: ../cli/src/connections.c:388 ../cli/src/connections.c:389
+#: ../cli/src/connections.c:607 ../cli/src/connections.c:610
+#: ../cli/src/devices.c:433 ../cli/src/devices.c:558 ../cli/src/devices.c:584
+#: ../cli/src/devices.c:585 ../cli/src/devices.c:586 ../cli/src/devices.c:587
+#: ../cli/src/devices.c:588 ../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
+msgid "no"
+msgstr "ne"
+
+#: ../cli/src/connections.c:462 ../cli/src/connections.c:505
+msgid "System connections"
+msgstr "Sistemkonektoj"
+
+#: ../cli/src/connections.c:467 ../cli/src/connections.c:518
+msgid "User connections"
+msgstr "Uzanto-konektoj"
+
+#: ../cli/src/connections.c:479 ../cli/src/connections.c:1342
+#: ../cli/src/connections.c:1358 ../cli/src/connections.c:1367
+#: ../cli/src/connections.c:1378 ../cli/src/connections.c:1463
+#: ../cli/src/devices.c:964 ../cli/src/devices.c:974 ../cli/src/devices.c:1076
+#: ../cli/src/devices.c:1083
+#, c-format
+msgid "Error: %s argument is missing."
+msgstr "Eraro: argumento %s mankas."
+
+#: ../cli/src/connections.c:492
+#, c-format
+msgid "Error: %s - no such connection."
+msgstr "Eraro: %s - neniu tia konekto"
+
+#: ../cli/src/connections.c:524 ../cli/src/connections.c:1391
+#: ../cli/src/connections.c:1481 ../cli/src/devices.c:787
+#: ../cli/src/devices.c:854 ../cli/src/devices.c:988 ../cli/src/devices.c:1089
+#, c-format
+msgid "Unknown parameter: %s\n"
+msgstr "Nekonata parametro: %s\n"
+
+#: ../cli/src/connections.c:533
+#, c-format
+msgid "Error: no valid parameter specified."
+msgstr "Eraro: neniu valida parametro difinita."
+
+#: ../cli/src/connections.c:548 ../cli/src/connections.c:1584
+#: ../cli/src/devices.c:1295 ../cli/src/network-manager.c:359
+#, c-format
+msgid "Error: %s."
+msgstr "Eraro: %s."
+
+#: ../cli/src/connections.c:655
+#, c-format
+msgid "Error: 'con status': %s"
+msgstr "Eraro: 'con status': %s"
+
+#: ../cli/src/connections.c:657
+#, c-format
+msgid "Error: 'con status': %s; allowed fields: %s"
+msgstr "Eraro: 'con status': %s; permesataj kampoj: %s"
+
+#: ../cli/src/connections.c:664
+msgid "Active connections"
+msgstr "Aktivaj konektoj"
+
+#: ../cli/src/connections.c:1034
+#, c-format
+msgid "no active connection on device '%s'"
+msgstr "neniu aktiva konekto sur aparato '%s'"
+
+#: ../cli/src/connections.c:1042
+#, c-format
+msgid "no active connection or device"
+msgstr "neniu aktiva konekto aÅ­ aparato"
+
+#: ../cli/src/connections.c:1092
+#, c-format
+msgid "device '%s' not compatible with connection '%s'"
+msgstr "aparato '%s' ne kongruas kun konekto '%s'"
+
+#: ../cli/src/connections.c:1094
+#, c-format
+msgid "no device found for connection '%s'"
+msgstr "neniu aparato trovita por konekto '%s'"
+
+#: ../cli/src/connections.c:1105
+msgid "activating"
+msgstr "enÅaltas"
+
+#: ../cli/src/connections.c:1107
+msgid "activated"
+msgstr "enÅaltite"
+
+#: ../cli/src/connections.c:1110 ../cli/src/connections.c:1133
+#: ../cli/src/connections.c:1166 ../cli/src/devices.c:247
+#: ../cli/src/devices.c:559 ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473
+msgid "unknown"
+msgstr "nekonate"
+
+#: ../cli/src/connections.c:1119
+msgid "VPN connecting (prepare)"
+msgstr "VPN konektas (preparo)"
+
+#: ../cli/src/connections.c:1121
+msgid "VPN connecting (need authentication)"
+msgstr "VPN konektas (bezonas aÅ­tentigon)"
+
+#: ../cli/src/connections.c:1123
+msgid "VPN connecting"
+msgstr "VPN konektas"
+
+#: ../cli/src/connections.c:1125
+msgid "VPN connecting (getting IP configuration)"
+msgstr "VPN konektas (akiras IP-agordaron)"
+
+#: ../cli/src/connections.c:1127
+msgid "VPN connected"
+msgstr "VPN konektita"
+
+#: ../cli/src/connections.c:1129
+msgid "VPN connection failed"
+msgstr "VPN-konekto fiaskis"
+
+#: ../cli/src/connections.c:1131
+msgid "VPN disconnected"
+msgstr "VPN malkonektis"
+
+#: ../cli/src/connections.c:1142
+msgid "unknown reason"
+msgstr "nekonata kialo"
+
+#: ../cli/src/connections.c:1144
+msgid "none"
+msgstr "nenio"
+
+#: ../cli/src/connections.c:1146
+msgid "the user was disconnected"
+msgstr "la uzanto estis malkonektita"
+
+#: ../cli/src/connections.c:1148
+msgid "the base network connection was interrupted"
+msgstr "la baza retkonekto estis interrompita"
+
+#: ../cli/src/connections.c:1150
+msgid "the VPN service stopped unexpectedly"
+msgstr "la VPN-servo neatendite ĉesis"
+
+#: ../cli/src/connections.c:1152
+msgid "the VPN service returned invalid configuration"
+msgstr "la VPN-servo revenigis nevalidan agordaron"
+
+#: ../cli/src/connections.c:1154
+msgid "the connection attempt timed out"
+msgstr "la konektoprovo eltempiÄis"
+
+#: ../cli/src/connections.c:1156
+msgid "the VPN service did not start in time"
+msgstr "la VPN-servo ne startis Äustatempe"
+
+#: ../cli/src/connections.c:1158
+msgid "the VPN service failed to start"
+msgstr "la VPN-servo fiaskis starti"
+
+#: ../cli/src/connections.c:1160
+msgid "no valid VPN secrets"
+msgstr "neniu valida VPN-sekreto"
+
+#: ../cli/src/connections.c:1162
+msgid "invalid VPN secrets"
+msgstr "nevalidaj VPN-sekretoj"
+
+#: ../cli/src/connections.c:1164
+msgid "the connection was removed"
+msgstr "la konekto estis forigita"
+
+#: ../cli/src/connections.c:1178
+#, c-format
+msgid "state: %s\n"
+msgstr "stato: %s\n"
+
+#: ../cli/src/connections.c:1181 ../cli/src/connections.c:1207
+#, c-format
+msgid "Connection activated\n"
+msgstr "Konekto enÅaltita\n"
+
+#: ../cli/src/connections.c:1184
+#, c-format
+msgid "Error: Connection activation failed."
+msgstr "Eraro: EnÅalto de konekto fiaskis."
+
+#: ../cli/src/connections.c:1203
+#, c-format
+msgid "state: %s (%d)\n"
+msgstr "stato: %s (%d)\n"
+
+#: ../cli/src/connections.c:1213
+#, c-format
+msgid "Error: Connection activation failed: %s."
+msgstr "Eraro: EnÅalto de konekto fiaskis: %s."
+
+#: ../cli/src/connections.c:1230 ../cli/src/devices.c:911
+#, c-format
+msgid "Error: Timeout %d sec expired."
+msgstr "Eraro: EltempiÄo finiÄis %d sek."
+
+#: ../cli/src/connections.c:1273
+#, c-format
+msgid "Error: Connection activation failed: %s"
+msgstr "Eraro: EnÅalto de konekto fiaskis: %s"
+
+#: ../cli/src/connections.c:1287
+#, c-format
+msgid "Error: Obtaining active connection for '%s' failed."
+msgstr "Eraro: Akiro de aktiva konekto por '%s' fiaskis."
+
+#: ../cli/src/connections.c:1296
+#, c-format
+msgid "Active connection state: %s\n"
+msgstr "Stato de aktiva konekto: %s\n"
+
+#: ../cli/src/connections.c:1297
+#, c-format
+msgid "Active connection path: %s\n"
+msgstr "Vojo de aktiva konekto: %s\n"
+
+#: ../cli/src/connections.c:1351 ../cli/src/connections.c:1472
+#, c-format
+msgid "Error: Unknown connection: %s."
+msgstr "Eraro: Nekonata konekto: %s."
+
+#: ../cli/src/connections.c:1386 ../cli/src/devices.c:982
+#, c-format
+msgid "Error: timeout value '%s' is not valid."
+msgstr "Eraro: eltempiÄa valoro '%s' ne validas."
+
+#: ../cli/src/connections.c:1399 ../cli/src/connections.c:1489
+#, c-format
+msgid "Error: id or uuid has to be specified."
+msgstr "Eraro: id aÅ­ uuid devas esti specifata."
+
+#: ../cli/src/connections.c:1419
+#, c-format
+msgid "Error: No suitable device found: %s."
+msgstr "Eraro: Trovis neniun taÅ­gan aparaton: %s."
+
+#: ../cli/src/connections.c:1421
+#, c-format
+msgid "Error: No suitable device found."
+msgstr "Eraro: Trovis neniun taÅ­gan aparaton."
+
+#: ../cli/src/connections.c:1516
+#, c-format
+msgid "Warning: Connection not active\n"
+msgstr "Atenton: Konekto ne aktivas\n"
+
+#: ../cli/src/connections.c:1573
+#, c-format
+msgid "Error: 'con' command '%s' is not valid."
+msgstr "Eraro: 'con'-komando '%s' ne validas."
+
+#: ../cli/src/connections.c:1609
+#, c-format
+msgid "Error: could not connect to D-Bus."
+msgstr "Eraro: ne povis konekti al D-Bus."
+
+#: ../cli/src/connections.c:1616
+#, c-format
+msgid "Error: Could not get system settings."
+msgstr "Eraro: Ne povis akiri sistemajn agordojn."
+
+#: ../cli/src/connections.c:1624
+#, c-format
+msgid "Error: Could not get user settings."
+msgstr "Eraro: Ne povis akiri uzanto-agordojn."
+
+#: ../cli/src/connections.c:1634
+#, c-format
+msgid "Error: Can't obtain connections: settings services are not running."
+msgstr "Eraro: Ne povas obteni konektojn: agordo-servoj ne aktivas."
+
+#. 0
+#. 9
+#: ../cli/src/devices.c:61 ../cli/src/devices.c:90 ../cli/src/devices.c:185
+msgid "DEVICE"
+msgstr "APARATO"
+
+#. 1
+#. 4
+#. 0
+#: ../cli/src/devices.c:63 ../cli/src/devices.c:94
+#: ../cli/src/network-manager.c:36
+msgid "STATE"
+msgstr "STATO"
+
+#: ../cli/src/devices.c:73
+msgid "GENERAL"
+msgstr "ÄœENERALA"
+
+#. 0
+#: ../cli/src/devices.c:74
+msgid "CAPABILITIES"
+msgstr "KAPABLOJ"
+
+#. 1
+#: ../cli/src/devices.c:75
+msgid "WIFI-PROPERTIES"
+msgstr "WIFI-ECOJ"
+
+#. 2
+#: ../cli/src/devices.c:76
+msgid "AP"
+msgstr "AP"
+
+#. 3
+#: ../cli/src/devices.c:77
+msgid "WIRED-PROPERTIES"
+msgstr "DRATA-ECOJ"
+
+#. 4
+#: ../cli/src/devices.c:78
+msgid "IP4-SETTINGS"
+msgstr "IP4-AGORDOJ"
+
+#. 5
+#: ../cli/src/devices.c:79
+msgid "IP4-DNS"
+msgstr "IP4-DNS"
+
+#. 6
+#: ../cli/src/devices.c:80
+msgid "IP6-SETTINGS"
+msgstr "IP6-AGORDOJ"
+
+#. 7
+#: ../cli/src/devices.c:81
+msgid "IP6-DNS"
+msgstr "IP6-DNS"
+
+#. 2
+#: ../cli/src/devices.c:92
+msgid "DRIVER"
+msgstr "PELILO"
+
+#. 3
+#: ../cli/src/devices.c:93
+msgid "HWADDR"
+msgstr "APARATADRESO"
+
+#. 0
+#: ../cli/src/devices.c:103
+msgid "CARRIER-DETECT"
+msgstr "PORTANTO-REKONO"
+
+#. 1
+#: ../cli/src/devices.c:104
+msgid "SPEED"
+msgstr "RAPIDO"
+
+#. 0
+#: ../cli/src/devices.c:113
+msgid "CARRIER"
+msgstr "PORTANTO"
+
+#. 0
+#: ../cli/src/devices.c:123
+msgid "WEP"
+msgstr "WEP"
+
+#. 1
+#: ../cli/src/devices.c:124
+msgid "WPA"
+msgstr "WPA"
+
+#. 2
+#: ../cli/src/devices.c:125
+msgid "WPA2"
+msgstr "WPA2"
+
+#. 3
+#: ../cli/src/devices.c:126
+msgid "TKIP"
+msgstr "TKIP"
+
+#. 4
+#: ../cli/src/devices.c:127
+msgid "CCMP"
+msgstr "CCMP"
+
+#. 0
+#: ../cli/src/devices.c:136 ../cli/src/devices.c:147
+msgid "ADDRESS"
+msgstr "ADRESO"
+
+#. 1
+#: ../cli/src/devices.c:137 ../cli/src/devices.c:148
+msgid "PREFIX"
+msgstr "PREFIKSO"
+
+#. 2
+#: ../cli/src/devices.c:138 ../cli/src/devices.c:149
+msgid "GATEWAY"
+msgstr "KLUZO"
+
+#. 0
+#: ../cli/src/devices.c:158 ../cli/src/devices.c:167
+msgid "DNS"
+msgstr "DNS"
+
+#. 0
+#: ../cli/src/devices.c:176
+msgid "SSID"
+msgstr "SSID"
+
+#. 1
+#: ../cli/src/devices.c:177
+msgid "BSSID"
+msgstr "BSSID"
+
+#. 2
+#: ../cli/src/devices.c:178
+msgid "MODE"
+msgstr "REÄœIMO"
+
+#. 3
+#: ../cli/src/devices.c:179
+msgid "FREQ"
+msgstr "FREKV"
+
+#. 4
+#: ../cli/src/devices.c:180
+msgid "RATE"
+msgstr "TRANSMETRAPIDO"
+
+#. 5
+#: ../cli/src/devices.c:181
+msgid "SIGNAL"
+msgstr "SIGNALO"
+
+#. 6
+#: ../cli/src/devices.c:182
+msgid "SECURITY"
+msgstr "SEKURECO"
+
+#. 7
+#: ../cli/src/devices.c:183
+msgid "WPA-FLAGS"
+msgstr "WPA-FLAGOJ"
+
+#. 8
+#: ../cli/src/devices.c:184
+msgid "RSN-FLAGS"
+msgstr "RSN-FLAGOJ"
+
+#. 10
+#: ../cli/src/devices.c:186
+msgid "ACTIVE"
+msgstr "AKTIVA"
+
+#: ../cli/src/devices.c:209
+#, 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"
+msgstr ""
+"Usage: nmcli dev { KOMANDO | help }\n"
+"\n"
+" KOMANDO := { 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:229
+msgid "unmanaged"
+msgstr "nemastrumata"
+
+#: ../cli/src/devices.c:231
+msgid "unavailable"
+msgstr "neatingebla"
+
+#: ../cli/src/devices.c:233 ../cli/src/network-manager.c:91
+msgid "disconnected"
+msgstr "nekonektite"
+
+#: ../cli/src/devices.c:235
+msgid "connecting (prepare)"
+msgstr "konektas (preparo)"
+
+#: ../cli/src/devices.c:237
+msgid "connecting (configuring)"
+msgstr "konektas (agordado)"
+
+#: ../cli/src/devices.c:239
+msgid "connecting (need authentication)"
+msgstr "konektas (bezonas aÅ­tentigon)"
+
+#: ../cli/src/devices.c:241
+msgid "connecting (getting IP configuration)"
+msgstr "konektas (akiras IP-agordaron)"
+
+#: ../cli/src/devices.c:243 ../cli/src/network-manager.c:89
+msgid "connected"
+msgstr "konektita"
+
+#: ../cli/src/devices.c:245
+msgid "connection failed"
+msgstr "konekto fiaskis"
+
+#: ../cli/src/devices.c:268 ../cli/src/devices.c:425
+msgid "Unknown"
+msgstr "Nekonata"
+
+#: ../cli/src/devices.c:300
+msgid "(none)"
+msgstr "(nenio)"
+
+#: ../cli/src/devices.c:325
+#, c-format
+msgid "%s: error converting IP4 address 0x%X"
+msgstr "%s: eraro dum konverto de IP4-adreso 0x%X"
+
+#: ../cli/src/devices.c:394
+#, c-format
+msgid "%u MHz"
+msgstr "%u MHz"
+
+#: ../cli/src/devices.c:395
+#, c-format
+msgid "%u MB/s"
+msgstr "%u MB/s"
+
+#: ../cli/src/devices.c:404
+msgid "Encrypted: "
+msgstr "Ĉifrita: "
+
+#: ../cli/src/devices.c:409
+msgid "WEP "
+msgstr "WEP "
+
+#: ../cli/src/devices.c:411
+msgid "WPA "
+msgstr "WPA "
+
+#: ../cli/src/devices.c:413
+msgid "WPA2 "
+msgstr "WPA2 "
+
+#: ../cli/src/devices.c:416
+msgid "Enterprise "
+msgstr "Entrepreno "
+
+#: ../cli/src/devices.c:425
+msgid "Ad-Hoc"
+msgstr "LaÅ­cela"
+
+#: ../cli/src/devices.c:425
+msgid "Infrastructure"
+msgstr "Infrastrukturo"
+
+#: ../cli/src/devices.c:487
+#, c-format
+msgid "Error: 'dev list': %s"
+msgstr "Eraro: 'dev list': %s"
+
+#: ../cli/src/devices.c:489
+#, c-format
+msgid "Error: 'dev list': %s; allowed fields: %s"
+msgstr "Eraro: 'dev list': %s; permesataj kampoj: %s"
+
+#: ../cli/src/devices.c:498
+msgid "Device details"
+msgstr "Detaloj de aparato"
+
+#: ../cli/src/devices.c:528 ../cli/src/devices.c:927
+msgid "(unknown)"
+msgstr "(nekonata)"
+
+#: ../cli/src/devices.c:529
+msgid "unknown)"
+msgstr "nekonata)"
+
+#: ../cli/src/devices.c:555
+#, c-format
+msgid "%u Mb/s"
+msgstr "%u Mb/s"
+
+#. Print header
+#. "WIRED-PROPERTIES"
+#: ../cli/src/devices.c:628
+msgid "on"
+msgstr "enÅaltite"
+
+#: ../cli/src/devices.c:628
+msgid "off"
+msgstr "elÅaltite"
+
+#: ../cli/src/devices.c:810
+#, c-format
+msgid "Error: 'dev status': %s"
+msgstr "Eraro: 'dev status': %s"
+
+#: ../cli/src/devices.c:812
+#, c-format
+msgid "Error: 'dev status': %s; allowed fields: %s"
+msgstr "Eraro: 'dev status': %s; permesataj kampoj: %s"
+
+#: ../cli/src/devices.c:819
+msgid "Status of devices"
+msgstr "Stato de aparatoj"
+
+#: ../cli/src/devices.c:847
+#, c-format
+msgid "Error: '%s' argument is missing."
+msgstr "Eraro: argumento '%s' mankas."
+
+#: ../cli/src/devices.c:876 ../cli/src/devices.c:1015
+#: ../cli/src/devices.c:1138
+#, c-format
+msgid "Error: Device '%s' not found."
+msgstr "Eraro: Aparato '%s' ne trovita."
+
+#: ../cli/src/devices.c:899
+#, c-format
+msgid "Success: Device '%s' successfully disconnected."
+msgstr "Sukceso: Aparato '%s' sukcese malkonektiÄis."
+
+#: ../cli/src/devices.c:924
+#, c-format
+msgid "Error: Device '%s' (%s) disconnecting failed: %s"
+msgstr "Eraro: Aparato '%s' (%s) eraro dum malkonektiÄo: %s"
+
+#: ../cli/src/devices.c:932
+#, c-format
+msgid "Device state: %d (%s)\n"
+msgstr "Stato de aparato: %d (%s)\n"
+
+#: ../cli/src/devices.c:996
+#, c-format
+msgid "Error: iface has to be specified."
+msgstr "Eraro: 'iface' devas esti specifata."
+
+#: ../cli/src/devices.c:1114
+#, c-format
+msgid "Error: 'dev wifi': %s"
+msgstr "Eraro: 'dev wifi': %s"
+
+#: ../cli/src/devices.c:1116
+#, c-format
+msgid "Error: 'dev wifi': %s; allowed fields: %s"
+msgstr "Eraro: 'dev wifi': %s; permesataj kampoj: %s"
+
+#: ../cli/src/devices.c:1123
+msgid "WiFi scan list"
+msgstr "WiFi-skanlisto"
+
+#: ../cli/src/devices.c:1158 ../cli/src/devices.c:1212
+#, c-format
+msgid "Error: Access point with hwaddr '%s' not found."
+msgstr "Eraro: Retkaptejo kun 'hwaddr' '%s' ne trovita"
+
+#: ../cli/src/devices.c:1175
+#, c-format
+msgid "Error: Device '%s' is not a WiFi device."
+msgstr "Eraro: Aparato '%s' ne estas WiFi-aparato."
+
+#: ../cli/src/devices.c:1239
+#, c-format
+msgid "Error: 'dev wifi' command '%s' is not valid."
+msgstr "Eraro: 'dev wifi'-komando '%s' ne validas."
+
+#: ../cli/src/devices.c:1286
+#, c-format
+msgid "Error: 'dev' command '%s' is not valid."
+msgstr "Eraro: 'dev'-komando '%s' ne validas."
+
+#: ../cli/src/network-manager.c:35
+msgid "RUNNING"
+msgstr "AKTIVA"
+
+#. 1
+#: ../cli/src/network-manager.c:37
+msgid "NET-ENABLED"
+msgstr "RET-ENÅœALTITE"
+
+#. 2
+#: ../cli/src/network-manager.c:38
+msgid "WIFI-HARDWARE"
+msgstr "WIFI-APARATARO"
+
+#. 3
+#: ../cli/src/network-manager.c:39
+msgid "WIFI"
+msgstr "WIFI"
+
+#. 4
+#: ../cli/src/network-manager.c:40
+msgid "WWAN-HARDWARE"
+msgstr "WWAN-APARATARO"
+
+#. 5
+#: ../cli/src/network-manager.c:41
+msgid "WWAN"
+msgstr "WWAN"
+
+#: ../cli/src/network-manager.c:64
+#, 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"
+msgstr ""
+"Uzo: nmcli nm { KOMANDO | help }\n"
+"\n"
+" KOMANDO := { 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:85
+msgid "asleep"
+msgstr "dormas"
+
+#: ../cli/src/network-manager.c:87
+msgid "connecting"
+msgstr "konektas"
+
+#: ../cli/src/network-manager.c:128
+#, c-format
+msgid "Error: 'nm status': %s"
+msgstr "Eraro: 'nm status': %s"
+
+#: ../cli/src/network-manager.c:130
+#, c-format
+msgid "Error: 'nm status': %s; allowed fields: %s"
+msgstr "Eraro: 'nm status': %s; permesataj kampoj: %s"
+
+#: ../cli/src/network-manager.c:137
+msgid "NetworkManager status"
+msgstr "Stato de NetworkManager"
+
+#. Print header
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "enabled"
+msgstr "enÅaltita"
+
+#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328
+msgid "disabled"
+msgstr "elÅaltite"
+
+#: ../cli/src/network-manager.c:152
+msgid "running"
+msgstr "aktiva"
+
+#: ../cli/src/network-manager.c:152
+msgid "not running"
+msgstr "neaktiva"
+
+#: ../cli/src/network-manager.c:175
+#, c-format
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Eraro: Ne povis konekti al sistem-buso: %s."
+
+#: ../cli/src/network-manager.c:186
+#, c-format
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Eraro: Ne povis krei D-busan objekt-prokurservilon."
+
+#: ../cli/src/network-manager.c:192
+#, c-format
+msgid "Error in sleep: %s"
+msgstr "Eraro dum dormo: %s"
+
+#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
+#, c-format
+msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
+msgstr "Eraro: valoro '--fields' '%s' ne validas tie ĉi; permesataj kampoj: %s"
+
+#: ../cli/src/network-manager.c:245
+msgid "Networking enabled"
+msgstr "Retkonektado enÅaltita"
+
+#: ../cli/src/network-manager.c:256
+#, c-format
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr "Eraro: nevalida 'enÅalt'-parametro: '%s'; uzu 'true' aÅ­ 'false'."
+
+#: ../cli/src/network-manager.c:265
+#, c-format
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Eraro: Dorm-stato ne estas elportite de NetworkManager."
+
+#: ../cli/src/network-manager.c:273
+#, c-format
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr "Eraro: nevalida 'dorm'-parametro: '%s'; uzu 'true' aŭ 'false'."
+
+#: ../cli/src/network-manager.c:294
+msgid "WiFi enabled"
+msgstr "WiFi enÅaltita"
+
+#: ../cli/src/network-manager.c:305
+#, c-format
+msgid "Error: invalid 'wifi' parameter: '%s'."
+msgstr "Eraro: nevalida 'wifi'-parametro: '%s'."
+
+#: ../cli/src/network-manager.c:326
+msgid "WWAN enabled"
+msgstr "WWAN enÅaltita"
+
+#: ../cli/src/network-manager.c:337
+#, c-format
+msgid "Error: invalid 'wwan' parameter: '%s'."
+msgstr "Eraro: nevalida 'wwan'-parametro: '%s'."
+
+#: ../cli/src/network-manager.c:348
+#, c-format
+msgid "Error: 'nm' command '%s' is not valid."
+msgstr "Eraro: 'nm'-komando '%s' ne validas."
+
+#: ../cli/src/nmcli.c:69
+#, 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"
+msgstr ""
+"Uzo: %s [OPCIOJ] OBJEKTO { KOMANDO | help }\n"
+"\n"
+"OPCIOJ\n"
+" -t[erse] konciza eligo\n"
+" -p[retty] bela eligo\n"
+" -m[ode] tabular|multiline eliga reÄimo\n"
+" -f[ields] <field1,field2,...>|all|common specifigi eligo-kampojn\n"
+" -e[scape] yes|no eskapaj kolumno-separoj en "
+"valoroj\n"
+" -v[ersion] montri programversion\n"
+" -h[elp] printi tiun ĉi help-paÄon\n"
+"\n"
+"OBJEKTO\n"
+" nm stato de NetworkManager\n"
+" con konektoj de NetworkManager\n"
+" dev aparatoj mastrumataj de NetworkManager\n"
+"\n"
+
+#: ../cli/src/nmcli.c:113
+#, c-format
+msgid "Error: Object '%s' is unknown, try 'nmcli help'."
+msgstr "Eraro: Objekto '%s' estas nekonata, provu: 'nmcli help'."
+
+#: ../cli/src/nmcli.c:143
+#, c-format
+msgid "Error: Option '--terse' is specified the second time."
+msgstr "Eraro: Opcio '--terse' specifiÄis duan fojon."
+
+#: ../cli/src/nmcli.c:148
+#, c-format
+msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
+msgstr "Eraro: Opcioj '--terse' kaj '--pretty' ekskludas unu la alian."
+
+#: ../cli/src/nmcli.c:156
+#, c-format
+msgid "Error: Option '--pretty' is specified the second time."
+msgstr "Eraro: Opcio '--pretty' specifiÄis duan fojon."
+
+#: ../cli/src/nmcli.c:161
+#, c-format
+msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
+msgstr "Eraro: Opcioj '--pretty' kaj '--terse' ekskludas unu la alian."
+
+#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
+#, c-format
+msgid "Error: missing argument for '%s' option."
+msgstr "Eraro: mankas argumento por elektindaĵo '%s'."
+
+#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
+#, c-format
+msgid "Error: '%s' is not valid argument for '%s' option."
+msgstr "Eraro: '%s' ne estas valida argumento por elektindaĵo '%s'."
+
+#: ../cli/src/nmcli.c:203
+#, c-format
+msgid "Error: fields for '%s' options are missing."
+msgstr "Eraro: kampoj por elektindaĵoj '%s' mankas."
+
+#: ../cli/src/nmcli.c:209
+#, c-format
+msgid "nmcli tool, version %s\n"
+msgstr "ilo 'nmcli', versio %s\n"
+
+#: ../cli/src/nmcli.c:215
+#, c-format
+msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
+msgstr "Eraro: Opcio '%s' estas nekonata, provu: 'nmcli -help'."
+
+#: ../cli/src/nmcli.c:234
+#, c-format
+msgid "Caught signal %d, shutting down..."
+msgstr "Ricevis signalon '%d', elÅaltas..."
+
+#: ../cli/src/nmcli.c:259
+#, c-format
+msgid "Error: Could not connect to NetworkManager."
+msgstr "Eraro: Ne eblis konekti al NetworkManager"
+
+#: ../cli/src/nmcli.c:275
+msgid "Success"
+msgstr "Sukceso"
+
+#: ../cli/src/settings.c:411
+#, c-format
+msgid "%d (hex-ascii-key)"
+msgstr "%d (heks-ascii-Ålosilo)"
+
+#: ../cli/src/settings.c:413
+#, c-format
+msgid "%d (104/128-bit passphrase)"
+msgstr "%d (104/128-bita pasvorto)"
+
+#: ../cli/src/settings.c:416
+#, c-format
+msgid "%d (unknown)"
+msgstr "%d (nekonata)"
+
+#: ../cli/src/settings.c:442
+msgid "0 (unknown)"
+msgstr "0 (nekonata)"
+
+#: ../cli/src/settings.c:448
+msgid "any, "
+msgstr "ajna, "
+
+#: ../cli/src/settings.c:450
+msgid "900 MHz, "
+msgstr "900 MHz, "
+
+#: ../cli/src/settings.c:452
+msgid "1800 MHz, "
+msgstr "1800 MHz, "
+
+#: ../cli/src/settings.c:454
+msgid "1900 MHz, "
+msgstr "1900 MHz, "
+
+#: ../cli/src/settings.c:456
+msgid "850 MHz, "
+msgstr "850 MHz, "
+
+#: ../cli/src/settings.c:458
+msgid "WCDMA 3GPP UMTS 2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 2100 MHz, "
+
+#: ../cli/src/settings.c:460
+msgid "WCDMA 3GPP UMTS 1800 MHz, "
+msgstr "WCDMA 3GPP UMTS 1800 MHz, "
+
+#: ../cli/src/settings.c:462
+msgid "WCDMA 3GPP UMTS 1700/2100 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700/2100 MHz, "
+
+#: ../cli/src/settings.c:464
+msgid "WCDMA 3GPP UMTS 800 MHz, "
+msgstr "WCDMA 3GPP UMTS 800 MHz, "
+
+#: ../cli/src/settings.c:466
+msgid "WCDMA 3GPP UMTS 850 MHz, "
+msgstr "WCDMA 3GPP UMTS 850 MHz, "
+
+#: ../cli/src/settings.c:468
+msgid "WCDMA 3GPP UMTS 900 MHz, "
+msgstr "WCDMA 3GPP UMTS 900 MHz, "
+
+#: ../cli/src/settings.c:470
+msgid "WCDMA 3GPP UMTS 1700 MHz, "
+msgstr "WCDMA 3GPP UMTS 1700 MHz, "
+
+#: ../cli/src/settings.c:554 ../cli/src/settings.c:721
+msgid "auto"
+msgstr "aÅ­to"
+
+#: ../cli/src/settings.c:716 ../cli/src/settings.c:719
+#: ../cli/src/settings.c:720 ../cli/src/utils.c:172
+msgid "not set"
+msgstr "neagordita"
+
+#: ../cli/src/utils.c:124
+#, c-format
+msgid "field '%s' has to be alone"
+msgstr "kampo '%s' devas esti sola"
+
+#: ../cli/src/utils.c:127
+#, c-format
+msgid "invalid field '%s'"
+msgstr "nevalida kampo '%s'"
+
+#: ../cli/src/utils.c:146
+#, c-format
+msgid "Option '--terse' requires specifying '--fields'"
+msgstr "Elektindaĵo '--terse' postulas specifigon de '--fields'"
+
+#: ../cli/src/utils.c:150
+#, c-format
+msgid "Option '--terse' requires specific '--fields' option values , not '%s'"
+msgstr ""
+"Elektindaĵo '--terse' postulas specifajn elektindajn valorojn de '--fields', "
+"ne '%s'"
+
+#: ../libnm-util/crypto.c:121
+#, c-format
+msgid "PEM key file had no end tag '%s'."
+msgstr "PEM-Ålosil-dosiero ne havis finan etikedon '%s'."
+
+#: ../libnm-util/crypto.c:131
+#, c-format
+msgid "Doesn't look like a PEM private key file."
+msgstr "Tio ĉi ne aspektas kiel privat-Ålosila PEM-dosiero."
+
+#: ../libnm-util/crypto.c:139
+#, c-format
+msgid "Not enough memory to store PEM file data."
+msgstr "Malsufiĉas memoro por stori datenojn de PEM-dosiero."
+
+#: ../libnm-util/crypto.c:155
+#, c-format
+msgid "Malformed PEM file: Proc-Type was not first tag."
+msgstr "Misforma PEM-dosiero: 'Proc-Type' ne estas la unua etikedo."
+
+#: ../libnm-util/crypto.c:163
+#, c-format
+msgid "Malformed PEM file: unknown Proc-Type tag '%s'."
+msgstr "Misforma PEM-dosiero: nekonata Proc-Type-etikedo \"%s\"."
+
+#: ../libnm-util/crypto.c:173
+#, c-format
+msgid "Malformed PEM file: DEK-Info was not the second tag."
+msgstr "Misforma PEM-dosiero: 'DEK-Info' ne estas la dua etikedo."
+
+#: ../libnm-util/crypto.c:184
+#, c-format
+msgid "Malformed PEM file: no IV found in DEK-Info tag."
+msgstr "Misforma PEM-dosiero: mi ne trovis IV en la etikedo \"DEK-Info\"."
+
+#: ../libnm-util/crypto.c:191
+#, c-format
+msgid "Malformed PEM file: invalid format of IV in DEK-Info tag."
+msgstr ""
+"Misforma PEM-dosiero: nevalida struktturo de IV en la etikedo \"DEK-Info\"."
+
+#: ../libnm-util/crypto.c:204
+#, c-format
+msgid "Malformed PEM file: unknown private key cipher '%s'."
+msgstr "Misforma PEM-dosiero: nekonata privat-Ålosila ĉifro \"%s\"."
+
+#: ../libnm-util/crypto.c:223
+#, c-format
+msgid "Could not decode private key."
+msgstr "Ne eblis malĉifri la privatan Ålosilon."
+
+#: ../libnm-util/crypto.c:268
+#, c-format
+msgid "PEM certificate '%s' had no end tag '%s'."
+msgstr "La PEM-certigilo \"%s\" ne havas finan etikedon \"%s\"."
+
+#: ../libnm-util/crypto.c:278
+#, c-format
+msgid "Failed to decode certificate."
+msgstr "Malsuksesis malĉifri la certigilon."
+
+#: ../libnm-util/crypto.c:287
+#, c-format
+msgid "Not enough memory to store certificate data."
+msgstr "Malsufiĉas memoro por stori la datenojn de la certigilo."
+
+#: ../libnm-util/crypto.c:295
+#, c-format
+msgid "Not enough memory to store file data."
+msgstr "Malsufiĉas memoro por stori la datenojn de la dosiero."
+
+#: ../libnm-util/crypto.c:325
+#, c-format
+msgid "IV must be an even number of bytes in length."
+msgstr "IV nepre amkplesu paran nombron da bajtoj."
+
+#: ../libnm-util/crypto.c:334
+#, c-format
+msgid "Not enough memory to store the IV."
+msgstr "Malsufiĉas memoro por stori la IV-on."
+
+#: ../libnm-util/crypto.c:345
+#, c-format
+msgid "IV contains non-hexadecimal digits."
+msgstr "IV enhavas nedeksesumajn ciferojn"
+
+#: ../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
+#, c-format
+msgid "Private key cipher '%s' was unknown."
+msgstr "Privata Cipher-Ålosilo '%s' estas nekonata."
+
+#: ../libnm-util/crypto.c:392
+#, c-format
+msgid "Not enough memory to decrypt private key."
+msgstr "Nesufiĉa memoro por malĉifri privatan Ålosilon."
+
+#: ../libnm-util/crypto.c:512
+#, c-format
+msgid "Unable to determine private key type."
+msgstr "Ne eblas determini la tipon de la privata Ålosilo."
+
+#: ../libnm-util/crypto.c:531
+#, c-format
+msgid "Not enough memory to store decrypted private key."
+msgstr "Nesufiĉa memoro por gardi privatan Ålosilon malĉifritan."
+
+#: ../libnm-util/crypto_gnutls.c:49
+msgid "Failed to initialize the crypto engine."
+msgstr "Pretigo de la kriptografia maÅino fiaskis."
+
+#: ../libnm-util/crypto_gnutls.c:93
+#, c-format
+msgid "Failed to initialize the MD5 engine: %s / %s."
+msgstr "Pretigo de la MD5-maÅino fiaskis: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:156
+#, c-format
+msgid "Invalid IV length (must be at least %zd)."
+msgstr "Nevalida amplekso por IV (devas esti almenaÅ­ %zd)."
+
+#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188
+#, c-format
+msgid "Not enough memory for decrypted key buffer."
+msgstr "Nesufiĉa memoro por bufro de la malĉifrita Ålosilo."
+
+#: ../libnm-util/crypto_gnutls.c:173
+#, c-format
+msgid "Failed to initialize the decryption cipher context: %s / %s."
+msgstr "Fiaskis pravalorizi la malĉifran Cipher-kuntekston: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:182
+#, c-format
+msgid "Failed to set symmetric key for decryption: %s / %s."
+msgstr "Fiaskis agordi simetrian Ålosilon por malĉifro: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:191
+#, c-format
+msgid "Failed to set IV for decryption: %s / %s."
+msgstr "Fiaskis agordi IV por malĉifro: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:200
+#, c-format
+msgid "Failed to decrypt the private key: %s / %s."
+msgstr "Fiaskis malĉifri la privatan Ålosilon: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267
+#, c-format
+msgid "Failed to decrypt the private key: unexpected padding length."
+msgstr "Fiaskis malĉifri la privatan Ålosilon: neatendita Åtopada longo."
+
+#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
+#, c-format
+msgid "Failed to decrypt the private key."
+msgstr "Fiaskis malĉifri la privatan Ålosilon."
+
+#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356
+#, c-format
+msgid "Could not allocate memory for encrypting."
+msgstr "Ne eblis rezervi memoron por ĉifrado."
+
+#: ../libnm-util/crypto_gnutls.c:294
+#, c-format
+msgid "Failed to initialize the encryption cipher context: %s / %s."
+msgstr "Fiaskis valorizi la ĉifradan kuntekston: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:303
+#, c-format
+msgid "Failed to set symmetric key for encryption: %s / %s."
+msgstr "Fiaskis agordi simetrian Ålosilon por ĉifrado: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:313
+#, c-format
+msgid "Failed to set IV for encryption: %s / %s."
+msgstr "Fiaskis agordi IV por ĉifrado: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:322
+#, c-format
+msgid "Failed to encrypt the data: %s / %s."
+msgstr "Ĉifrado de datumoj malsukcesis: %s / %s."
+
+#: ../libnm-util/crypto_gnutls.c:362
+#, c-format
+msgid "Error initializing certificate data: %s"
+msgstr "Eraro dum pravalorizo de atestilaj datumoj: %s"
+
+#: ../libnm-util/crypto_gnutls.c:384
+#, c-format
+msgid "Couldn't decode certificate: %s"
+msgstr "Ne povis malkodi certigilon: %s"
+
+#: ../libnm-util/crypto_gnutls.c:408
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %s"
+msgstr "Ne povis pravalorizi PKCS#12-malkodilon: %s"
+
+#: ../libnm-util/crypto_gnutls.c:421
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %s"
+msgstr "Ne eblis dekodi PKCS#12-dosieron: %s"
+
+#: ../libnm-util/crypto_gnutls.c:433
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %s"
+msgstr "No povis kontroli PKCS#12-dosieron: %s"
+
+#: ../libnm-util/crypto_nss.c:56
+#, c-format
+msgid "Failed to initialize the crypto engine: %d."
+msgstr "Pravalorigo de la kriptografia maÅino fiaskis: %d."
+
+#: ../libnm-util/crypto_nss.c:111
+#, c-format
+msgid "Failed to initialize the MD5 context: %d."
+msgstr "Fiaskis pravalorizi la MD5-kuntekston: %d."
+
+#: ../libnm-util/crypto_nss.c:179
+#, c-format
+msgid "Invalid IV length (must be at least %d)."
+msgstr "Nevalida IV-longo (devas esti almenaÅ­ %d)."
+
+#: ../libnm-util/crypto_nss.c:196
+#, c-format
+msgid "Failed to initialize the decryption cipher slot."
+msgstr "Fiaskis pravalorizi la malĉifran Cipher-foldon."
+
+#: ../libnm-util/crypto_nss.c:206
+#, c-format
+msgid "Failed to set symmetric key for decryption."
+msgstr "Fiaskis agordi simetrian Ålosilon por malĉifrado."
+
+#: ../libnm-util/crypto_nss.c:216
+#, c-format
+msgid "Failed to set IV for decryption."
+msgstr "Fiaskis agordi IV por malĉifrado."
+
+#: ../libnm-util/crypto_nss.c:224
+#, c-format
+msgid "Failed to initialize the decryption context."
+msgstr "Fiaskis pravalorizi la malĉifran kuntekston."
+
+#: ../libnm-util/crypto_nss.c:237
+#, c-format
+msgid "Failed to decrypt the private key: %d."
+msgstr "Fiaskis malĉifri la privatan Ålosilon: %d."
+
+#: ../libnm-util/crypto_nss.c:245
+#, c-format
+msgid "Failed to decrypt the private key: decrypted data too large."
+msgstr "Fiaskis malĉifri la privatan Ålosilon: malĉifritaj datumoj tro longas."
+
+#: ../libnm-util/crypto_nss.c:256
+#, c-format
+msgid "Failed to finalize decryption of the private key: %d."
+msgstr "Fiaskis fini malĉifradon de la privata Ålosilo: %d."
+
+#: ../libnm-util/crypto_nss.c:364
+#, c-format
+msgid "Failed to initialize the encryption cipher slot."
+msgstr "Fiaskis pravalorizi la ĉifran Cipher-foldon."
+
+#: ../libnm-util/crypto_nss.c:372
+#, c-format
+msgid "Failed to set symmetric key for encryption."
+msgstr "Fiaskis agordi simetrian Ålosilon por ĉifrado."
+
+#: ../libnm-util/crypto_nss.c:380
+#, c-format
+msgid "Failed to set IV for encryption."
+msgstr "Fiaskis agordi IV por ĉifrado."
+
+#: ../libnm-util/crypto_nss.c:388
+#, c-format
+msgid "Failed to initialize the encryption context."
+msgstr "Fiaskis pravalorizi la ĉifradan kuntekston."
+
+#: ../libnm-util/crypto_nss.c:396
+#, c-format
+msgid "Failed to encrypt: %d."
+msgstr "Fiaskis ĉifri: %d."
+
+#: ../libnm-util/crypto_nss.c:404
+#, c-format
+msgid "Unexpected amount of data after encrypting."
+msgstr "Neatendita nombro da datumoj post ĉifrado."
+
+#: ../libnm-util/crypto_nss.c:447
+#, c-format
+msgid "Couldn't decode certificate: %d"
+msgstr "Ne povis malkodigi atestilon: %d"
+
+#: ../libnm-util/crypto_nss.c:482
+#, c-format
+msgid "Couldn't convert password to UCS2: %d"
+msgstr "Ne povis konverti pasvorton al UCS2: %d"
+
+#: ../libnm-util/crypto_nss.c:510
+#, c-format
+msgid "Couldn't initialize PKCS#12 decoder: %d"
+msgstr "Ne povis pravalorizi PKCS#12-malkodilon: %d"
+
+#: ../libnm-util/crypto_nss.c:519
+#, c-format
+msgid "Couldn't decode PKCS#12 file: %d"
+msgstr "Ne povis malkodigi PKCS#12-dosieron: %d"
+
+#: ../libnm-util/crypto_nss.c:528
+#, c-format
+msgid "Couldn't verify PKCS#12 file: %d"
+msgstr "Ne povis kontroli PKCS#12-dosieron: %d"
+
+#: ../libnm-util/crypto_nss.c:557
+msgid "Could not generate random data."
+msgstr "Ne povis generi hazardajn datumojn."
+
+#: ../libnm-util/nm-utils.c:1975
+#, c-format
+msgid "Not enough memory to make encryption key."
+msgstr "Nesufiĉa memoro por fari ĉifran Ålosilon."
+
+#: ../libnm-util/nm-utils.c:2085
+msgid "Could not allocate memory for PEM file creation."
+msgstr "Ne povis atribui memoron por kreo de PEM-dosiero."
+
+#: ../libnm-util/nm-utils.c:2097
+#, c-format
+msgid "Could not allocate memory for writing IV to PEM file."
+msgstr "Ne povis atribui memoron por konservi IV en PEM-dosieron."
+
+#: ../libnm-util/nm-utils.c:2109
+#, c-format
+msgid "Could not allocate memory for writing encrypted key to PEM file."
+msgstr ""
+"Ne povis atribui memoron por konservi ĉifritan Ålosilon en PEM-dosieron."
+
+#: ../libnm-util/nm-utils.c:2128
+#, c-format
+msgid "Could not allocate memory for PEM file data."
+msgstr "Ne povis atribui memoron por datumoj de PEM-dosiero."
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1
+msgid "Connection sharing via a protected WiFi network"
+msgstr "Kundivido de konektoj per protektita WiFi-reto"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2
+msgid "Connection sharing via an open WiFi network"
+msgstr "Kundivido de konektoj per malferma WiFi-reto"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3
+msgid "Modify persistent system hostname"
+msgstr "Modifi permanentan sisteman gastigan nomon"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4
+msgid "Modify system connections"
+msgstr "Modifi sistemajn konektojn"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5
+msgid "System policy prevents modification of system settings"
+msgstr "Sistempolico preventas modifadon de sistemagordoj"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6
+msgid "System policy prevents modification of the persistent system hostname"
+msgstr "Sistempolico preventas modifadon de la konstanta sistem-gastnomo"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7
+msgid "System policy prevents sharing connections via a protected WiFi network"
+msgstr "Sistempolico preventas kundividon de konektoj per protektita WiFi-reto"
+
+#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8
+msgid "System policy prevents sharing connections via an open WiFi network"
+msgstr "Sistempolitiko preventas kundividon de konektoj per malferma WiFi-reto"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
+msgid "Allow control of network connections"
+msgstr "Permesi kontrolon de retkonektoj"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2
+msgid "Allow use of user-specific connections"
+msgstr "Permesi uzon de specifaj konektoj por uzantoj"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3
+msgid "Enable or disable WiFi devices"
+msgstr "EnÅalti aÅ­ elÅalti WiFi-aparatojn"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4
+msgid "Enable or disable mobile broadband devices"
+msgstr "EnÅalti aÅ­ elÅalti poÅtelefonajn larÄkapacitajn aparatojn"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
+msgid "Enable or disable system networking"
+msgstr "EnÅalti aÅ­ elÅalti sistemretkonektadon"
+
+#: ../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 ""
+"Dormigi aÅ­ veki NetworkManager (estu uzata nur de sistema energimastumado)"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
+msgid "System policy prevents control of network connections"
+msgstr "Sistempolitiko preventas kontrolon de retkonektoj"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
+msgid "System policy prevents enabling or disabling WiFi devices"
+msgstr "Sistempolitiko preventas enÅalton aÅ­ malÅalton de WiFi-aparatoj"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9
+msgid "System policy prevents enabling or disabling mobile broadband devices"
+msgstr ""
+"Sistempolitiko preventas enÅalton aÅ­ malÅalton de poÅtelefonaj larÄkapacitaj "
+"aparatoj"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
+msgid "System policy prevents enabling or disabling system networking"
+msgstr "Sistempolitiko preventas enÅalton aÅ­ malÅalton de sistema retkonektado"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11
+msgid "System policy prevents putting NetworkManager to sleep or waking it up"
+msgstr "Sistempolitiko preventas dormigi aÅ­ veki NetworkManager"
+
+#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
+msgid "System policy prevents use of user-specific connections"
+msgstr "Sistempolitiko preventas uzon de uzant-specifaj konektoj"
+
+#: ../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 "eraro dum traktado de netlink-mesaÄo: %s"
+
+#: ../src/nm-netlink-monitor.c:214
+msgid "error occurred while waiting for data on socket"
+msgstr "okazis eraro dum atendado je datumoj sur kontaktoskatolo"
+
+#: ../src/nm-netlink-monitor.c:254
+#, c-format
+msgid "unable to connect to netlink for monitoring link status: %s"
+msgstr "ne eblas konekti al netlink por kontroli ligilan staton: %s"
+
+#: ../src/nm-netlink-monitor.c:265
+#, c-format
+msgid "unable to enable netlink handle credential passing: %s"
+msgstr "ne povis aktivigi la netlink-tenilan legitimaĵo-pasadon: %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 "ne povis atribui retligiltenilon por kontroli ligilstaton: %s"
+
+#: ../src/nm-netlink-monitor.c:376
+#, c-format
+msgid "unable to allocate netlink link cache for monitoring link status: %s"
+msgstr ""
+"ne povis atribui ligilan kaÅmemoron de netlink por kontroli ligilstaton: %s"
+
+#: ../src/nm-netlink-monitor.c:502
+#, c-format
+msgid "unable to join netlink group: %s"
+msgstr "ne eblas membriÄi al retligila grupo: %s"
+
+#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
+#, c-format
+msgid "error updating link cache: %s"
+msgstr "eraro dum Äisdatigo de ligila kaÅmemoro: %s"
+
+#: ../src/main.c:502
+#, c-format
+msgid "Invalid option. Please use --help to see a list of valid options.\n"
+msgstr ""
+"Nevalida elektindaĵo. Bonvolu uzi --help por vidi liston da validaj "
+"elektindaĵoj.\n"
+
+#: ../src/main.c:573
+#, c-format
+msgid "%s. Please use --help to see a list of valid options.\n"
+msgstr "%s. Bovolu uzi --help por vidi liston da validaj elektindaĵoj.\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
+msgid "# Created by NetworkManager\n"
+msgstr "# Kreita de NetworkManager\n"
+
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
+#, c-format
+msgid ""
+"# Merged from %s\n"
+"\n"
+msgstr ""
+"# Kunfandita el %s\n"
+"\n"
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:284
+msgid "no usable DHCP client could be found."
+msgstr "neniu uzebla DHCP-kliento estis trovebla"
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:293
+msgid "'dhclient' could be found."
+msgstr "'dhclient' povis esti trovita."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:303
+msgid "'dhcpcd' could be found."
+msgstr "'dhcpcd' povis esti trovita."
+
+#: ../src/dhcp-manager/nm-dhcp-manager.c:311
+#, c-format
+msgid "unsupported DHCP client '%s'"
+msgstr "nesubtenata DHCP-kliento '%s'"
+
+#: ../src/logging/nm-logging.c:146
+#, c-format
+msgid "Unknown log level '%s'"
+msgstr "Nekonata protokolnivelo '%s'"
+
+#: ../src/logging/nm-logging.c:171
+#, c-format
+msgid "Unknown log domain '%s'"
+msgstr "Nekonata protokola regiono '%s'"
+
+#: ../src/dns-manager/nm-dns-manager.c:367
+msgid "NOTE: the libc resolver may not support more than 3 nameservers."
+msgstr "NOTO: la libc-solvilo eble ne povus subteni pli ol 3 nomservilojn."
+
+#: ../src/dns-manager/nm-dns-manager.c:369
+msgid "The nameservers listed below may not be recognized."
+msgstr "La sube ligstigitaj nomserviloj eble ne estos rekonataj."
+
+#: ../src/system-settings/nm-default-wired-connection.c:157
+#, c-format
+msgid "Auto %s"
+msgstr "AÅ­to %s"
+
+#: ../system-settings/plugins/ifcfg-rh/reader.c:3408
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
+msgid "System"
+msgstr "Sistemo"
diff --git a/po/fr.po b/po/fr.po
index 25b6c76b8..67a36db72 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -116,12 +116,12 @@ msgstr ""
#: ../cli/src/connections.c:197 ../cli/src/connections.c:536
#, c-format
msgid "Error: 'con list': %s"
-msgstr "Erreur&nbsp;: 'con list': %s"
+msgstr "Erreur: 'con list': %s"
#: ../cli/src/connections.c:199 ../cli/src/connections.c:538
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'con list': %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'con list': %s; champs autorisés: %s"
#: ../cli/src/connections.c:207
msgid "Connection details"
@@ -197,40 +197,40 @@ msgstr "Connexions utilisateur"
#: ../cli/src/devices.c:980
#, c-format
msgid "Error: %s argument is missing."
-msgstr "Erreur&nbsp;: l'argument %s est manquant."
+msgstr "Erreur: l'argument %s est manquant."
#: ../cli/src/connections.c:487
#, c-format
msgid "Error: %s - no such connection."
-msgstr "Erreur&nbsp;: %s - connexion introuvable."
+msgstr "Erreur: %s - connexion introuvable."
#: ../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
#, c-format
msgid "Unknown parameter: %s\n"
-msgstr "Paramètre inconnu&nbsp;: %s\n"
+msgstr "Paramètre inconnu: %s\n"
#: ../cli/src/connections.c:528
#, c-format
msgid "Error: no valid parameter specified."
-msgstr "Erreur&nbsp;: aucun paramètre valide spécifié."
+msgstr "Erreur: aucun paramètre valide spécifié."
#: ../cli/src/connections.c:543 ../cli/src/connections.c:1572
#: ../cli/src/devices.c:1192 ../cli/src/network-manager.c:274
#, c-format
msgid "Error: %s."
-msgstr "Erreur&nbsp;: %s."
+msgstr "Erreur: %s."
#: ../cli/src/connections.c:649
#, c-format
msgid "Error: 'con status': %s"
-msgstr "Erreur&nbsp;: 'con status'&nbsp;: %s"
+msgstr "Erreur: 'con status': %s"
#: ../cli/src/connections.c:651
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'con status'&nbsp;: %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'con status': %s; champs autorisés: %s"
#: ../cli/src/connections.c:658
msgid "Active connections"
@@ -350,7 +350,7 @@ msgstr "la connexion a été supprimée"
#: ../cli/src/connections.c:1170
#, c-format
msgid "state: %s\n"
-msgstr "état&nbsp;: %s\n"
+msgstr "état: %s\n"
#: ../cli/src/connections.c:1173 ../cli/src/connections.c:1199
#, c-format
@@ -360,98 +360,98 @@ msgstr "Connexion activée\n"
#: ../cli/src/connections.c:1176
#, c-format
msgid "Error: Connection activation failed."
-msgstr "Erreur&nbsp;: Échec de l'activation de la connexion"
+msgstr "Erreur: Échec de l'activation de la connexion"
#: ../cli/src/connections.c:1195
#, c-format
msgid "state: %s (%d)\n"
-msgstr "état&nbsp;: %s (%d)\n"
+msgstr "état: %s (%d)\n"
#: ../cli/src/connections.c:1205
#, c-format
msgid "Error: Connection activation failed: %s."
-msgstr "Erreur&nbsp;: L'activation de la connexion a échoué&nbsp;: %s."
+msgstr "Erreur: L'activation de la connexion a échoué: %s."
#: ../cli/src/connections.c:1222 ../cli/src/devices.c:811
#, c-format
msgid "Error: Timeout %d sec expired."
-msgstr "Erreur&nbsp;: Le délai d'attente de %d sec a expiré."
+msgstr "Erreur: Le délai d'attente de %d sec a expiré."
#: ../cli/src/connections.c:1265
#, c-format
msgid "Error: Connection activation failed: %s"
-msgstr "Erreur&nbsp;: L'activation de la connexion a échoué&nbsp;: %s"
+msgstr "Erreur: L'activation de la connexion a échoué: %s"
#: ../cli/src/connections.c:1279
#, c-format
msgid "Error: Obtaining active connection for '%s' failed."
-msgstr "Erreur&nbsp;: L'obtention d'une connexion active pour '%s' a échoué."
+msgstr "Erreur: L'obtention d'une connexion active pour '%s' a échoué."
#: ../cli/src/connections.c:1288
#, c-format
msgid "Active connection state: %s\n"
-msgstr "État de connexion active&nbsp;: %s\n"
+msgstr "État de connexion active: %s\n"
#: ../cli/src/connections.c:1289
#, c-format
msgid "Active connection path: %s\n"
-msgstr "État de chemin actif&nbsp;: %s\n"
+msgstr "État de chemin actif: %s\n"
#: ../cli/src/connections.c:1343 ../cli/src/connections.c:1461
#, c-format
msgid "Error: Unknown connection: %s."
-msgstr "Erreur&nbsp;: Connexion inconnue&nbsp;: %s."
+msgstr "Erreur: Connexion inconnue: %s."
#: ../cli/src/connections.c:1378 ../cli/src/devices.c:882
#, c-format
msgid "Error: timeout value '%s' is not valid."
-msgstr "Erreur&nbsp;: Valeur de délai d'attente '%s' invalide."
+msgstr "Erreur: Valeur de délai d'attente '%s' invalide."
#: ../cli/src/connections.c:1391 ../cli/src/connections.c:1478
#, c-format
msgid "Error: id or uuid has to be specified."
-msgstr "Erreur&nbsp;: ID ou UUID doit être spécifié."
+msgstr "Erreur: ID ou UUID doit être spécifié."
#: ../cli/src/connections.c:1411
#, c-format
msgid "Error: No suitable device found: %s."
-msgstr "Erreur&nbsp;: Aucun périphérique convenable trouvé&nbsp;: %s."
+msgstr "Erreur: Aucun périphérique convenable trouvé: %s."
#: ../cli/src/connections.c:1413
#, c-format
msgid "Error: No suitable device found."
-msgstr "Erreur&nbsp;: Aucun périphérique convenable trouvé."
+msgstr "Erreur: Aucun périphérique convenable trouvé."
#: ../cli/src/connections.c:1505
#, c-format
msgid "Warning: Connection not active\n"
-msgstr "Avertissement&nbsp;: Connexion inactive\n"
+msgstr "Avertissement: Connexion inactive\n"
#: ../cli/src/connections.c:1561
#, c-format
msgid "Error: 'con' command '%s' is not valid."
-msgstr "Erreur&nbsp;: Commande 'con' '%s' invalide."
+msgstr "Erreur: Commande 'con' '%s' invalide."
#: ../cli/src/connections.c:1597
#, c-format
msgid "Error: could not connect to D-Bus."
-msgstr "Erreur&nbsp;: impossible de connecter à D-Bus."
+msgstr "Erreur: impossible de connecter à D-Bus."
#: ../cli/src/connections.c:1604
#, c-format
msgid "Error: Could not get system settings."
-msgstr "Erreur&nbsp;: Paramètres système introuvables."
+msgstr "Erreur: Paramètres système introuvables."
#: ../cli/src/connections.c:1612
#, c-format
msgid "Error: Could not get user settings."
-msgstr "Erreur&nbsp;: Paramètres utilisteur introuvables."
+msgstr "Erreur: Paramètres utilisteur introuvables."
#: ../cli/src/connections.c:1622
#, c-format
msgid "Error: Can't obtain connections: settings services are not running."
msgstr ""
-"Erreur&nbsp;: Impossible d'obtenir les connexions&nbsp;: les services des "
+"Erreur: Impossible d'obtenir les connexions: les services des "
"paramètres ne sont pas en cours d'exécution."
#. 0
@@ -692,7 +692,7 @@ msgstr "(aucun)"
#: ../cli/src/devices.c:302
#, c-format
msgid "%s: error converting IP4 address 0x%X"
-msgstr "%s&nbsp;: erreur lors de la conversion de l'adresse IP4 0x%X"
+msgstr "%s: erreur lors de la conversion de l'adresse IP4 0x%X"
#: ../cli/src/devices.c:349
#, c-format
@@ -706,7 +706,7 @@ msgstr "%u Mo/s"
#: ../cli/src/devices.c:359
msgid "Encrypted: "
-msgstr "Chiffré&nbsp;: "
+msgstr "Chiffré: "
#: ../cli/src/devices.c:364
msgid "WEP "
@@ -735,12 +735,12 @@ msgstr "Infrastructure"
#: ../cli/src/devices.c:442
#, c-format
msgid "Error: 'dev list': %s"
-msgstr "Erreur&nbsp;: 'dev list'&nbsp;: %s"
+msgstr "Erreur: 'dev list': %s"
#: ../cli/src/devices.c:444
#, c-format
msgid "Error: 'dev list': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'dev list'&nbsp;: %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'dev list': %s; champs autorisés: %s"
#: ../cli/src/devices.c:453
msgid "Device details"
@@ -772,12 +772,12 @@ msgstr "arrêt"
#: ../cli/src/devices.c:710
#, c-format
msgid "Error: 'dev status': %s"
-msgstr "Erreur&nbsp;: 'dev status'&nbsp;: %s"
+msgstr "Erreur: 'dev status': %s"
#: ../cli/src/devices.c:712
#, c-format
msgid "Error: 'dev status': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'dev status'&nbsp;: %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'dev status': %s; champs autorisés: %s"
#: ../cli/src/devices.c:719
msgid "Status of devices"
@@ -786,42 +786,42 @@ msgstr "Statut des périphériques"
#: ../cli/src/devices.c:747
#, c-format
msgid "Error: '%s' argument is missing."
-msgstr "Erreur&nbsp;: L'argument '%s' est manquant."
+msgstr "Erreur: L'argument '%s' est manquant."
#: ../cli/src/devices.c:776 ../cli/src/devices.c:915 ../cli/src/devices.c:1035
#, c-format
msgid "Error: Device '%s' not found."
-msgstr "Erreur&nbsp;: Périphérique '%s' introuvable."
+msgstr "Erreur: Périphérique '%s' introuvable."
#: ../cli/src/devices.c:799
#, c-format
msgid "Success: Device '%s' successfully disconnected."
-msgstr "Opération réussie&nbsp;: Périphérique '%s' correctement déconnecté."
+msgstr "Opération réussie: Périphérique '%s' correctement déconnecté."
#: ../cli/src/devices.c:824
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s"
-msgstr "Erreur&nbsp;: Échec de la déconnexion du périphérique '%s' (%s)&nbsp;: %s"
+msgstr "Erreur: Échec de la déconnexion du périphérique '%s' (%s): %s"
#: ../cli/src/devices.c:832
#, c-format
msgid "Device state: %d (%s)\n"
-msgstr "État du périphérique&nbsp;: %d (%s)\n"
+msgstr "État du périphérique: %d (%s)\n"
#: ../cli/src/devices.c:896
#, c-format
msgid "Error: iface has to be specified."
-msgstr "Erreur&nbsp;: iface doit être spécifié."
+msgstr "Erreur: iface doit être spécifié."
#: ../cli/src/devices.c:1011
#, c-format
msgid "Error: 'dev wifi': %s"
-msgstr "Erreur&nbsp;: 'dev wifi'&nbsp;: %s"
+msgstr "Erreur: 'dev wifi': %s"
#: ../cli/src/devices.c:1013
#, c-format
msgid "Error: 'dev wifi': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'dev wifi'&nbsp;: %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'dev wifi': %s; champs autorisés: %s"
#: ../cli/src/devices.c:1020
msgid "WiFi scan list"
@@ -830,22 +830,22 @@ msgstr "Liste du balayage WiFi"
#: ../cli/src/devices.c:1055 ../cli/src/devices.c:1109
#, c-format
msgid "Error: Access point with hwaddr '%s' not found."
-msgstr "Erreur&nbsp;: Point d'accès avec hwaddr '%s' introuvable."
+msgstr "Erreur: Point d'accès avec hwaddr '%s' introuvable."
#: ../cli/src/devices.c:1072
#, c-format
msgid "Error: Device '%s' is not a WiFi device."
-msgstr "Erreur&nbsp;: Le périphérique '%s' n'est pas un périphérique WiFi."
+msgstr "Erreur: Le périphérique '%s' n'est pas un périphérique WiFi."
#: ../cli/src/devices.c:1136
#, c-format
msgid "Error: 'dev wifi' command '%s' is not valid."
-msgstr "Erreur&nbsp;: Commande 'dev wifi' '%s' invalide."
+msgstr "Erreur: Commande 'dev wifi' '%s' invalide."
#: ../cli/src/devices.c:1183
#, c-format
msgid "Error: 'dev' command '%s' is not valid."
-msgstr "Erreur&nbsp;: Commande 'dev' '%s' invalide."
+msgstr "Erreur: Commande 'dev' '%s' invalide."
#: ../cli/src/network-manager.c:35
msgid "RUNNING"
@@ -907,12 +907,12 @@ msgstr "connexion"
#: ../cli/src/network-manager.c:125
#, c-format
msgid "Error: 'nm status': %s"
-msgstr "Erreur&nbsp;: 'nm status'&nbsp;: %s"
+msgstr "Erreur: 'nm status': %s"
#: ../cli/src/network-manager.c:127
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
-msgstr "Erreur&nbsp;: 'nm status'&nbsp;: %s&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: 'nm status': %s; champs autorisés: %s"
#: ../cli/src/network-manager.c:134
msgid "NetworkManager status"
@@ -942,7 +942,7 @@ msgstr "inactif"
#: ../cli/src/network-manager.c:201 ../cli/src/network-manager.c:233
#, c-format
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
-msgstr "Erreur&nbsp;: Valeur '--fields' '%s' est invalide&nbsp;; champs autorisés&nbsp;: %s"
+msgstr "Erreur: Valeur '--fields' '%s' est invalide; champs autorisés: %s"
#: ../cli/src/network-manager.c:209
msgid "WiFi enabled"
@@ -951,7 +951,7 @@ msgstr "WiFi activé"
#: ../cli/src/network-manager.c:220
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
-msgstr "Erreur&nbsp;: Paramètre 'wifi' invalide&nbsp;: '%s'."
+msgstr "Erreur: Paramètre 'wifi' invalide: '%s'."
#: ../cli/src/network-manager.c:241
msgid "WWAN enabled"
@@ -960,12 +960,12 @@ msgstr "WWAN activé"
#: ../cli/src/network-manager.c:252
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
-msgstr "Erreur&nbsp;: Paramètre 'wwan' invalide&nbsp;: '%s'."
+msgstr "Erreur: Paramètre 'wwan' invalide: '%s'."
#: ../cli/src/network-manager.c:263
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
-msgstr "Erreur&nbsp;: Commande 'nm' '%s' invalide."
+msgstr "Erreur: Commande 'nm' '%s' invalide."
#: ../cli/src/nmcli.c:69
#, c-format
@@ -1008,42 +1008,42 @@ msgstr ""
#: ../cli/src/nmcli.c:113
#, c-format
msgid "Error: Object '%s' is unknown, try 'nmcli help'."
-msgstr "Erreur&nbsp;: Objet '%s' inconnu, essayez 'nmcli help'."
+msgstr "Erreur: Objet '%s' inconnu, essayez 'nmcli help'."
#: ../cli/src/nmcli.c:143
#, c-format
msgid "Error: Option '--terse' is specified the second time."
-msgstr "Erreur&nbsp;: Option '--terse' est spécifiée la seconde fois."
+msgstr "Erreur: Option '--terse' est spécifiée la seconde fois."
#: ../cli/src/nmcli.c:148
#, c-format
msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
-msgstr "Erreur&nbsp;: Option '--terse' est mutuellement exclusive avec '--pretty'."
+msgstr "Erreur: Option '--terse' est mutuellement exclusive avec '--pretty'."
#: ../cli/src/nmcli.c:156
#, c-format
msgid "Error: Option '--pretty' is specified the second time."
-msgstr "Erreur&nbsp;: Option '--pretty' est spécifiée la seconde fois."
+msgstr "Erreur: Option '--pretty' est spécifiée la seconde fois."
#: ../cli/src/nmcli.c:161
#, c-format
msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
-msgstr "Erreur&nbsp;: Option '--pretty' est mutuellement exclusive avec '--terse'."
+msgstr "Erreur: Option '--pretty' est mutuellement exclusive avec '--terse'."
#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187
#, c-format
msgid "Error: missing argument for '%s' option."
-msgstr "Erreur&nbsp;: argument manquant pour l'option '%s'."
+msgstr "Erreur: argument manquant pour l'option '%s'."
#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196
#, c-format
msgid "Error: '%s' is not valid argument for '%s' option."
-msgstr "Erreur&nbsp;: '%s' est un argument invalide pour l'option '%s'."
+msgstr "Erreur: '%s' est un argument invalide pour l'option '%s'."
#: ../cli/src/nmcli.c:203
#, c-format
msgid "Error: fields for '%s' options are missing."
-msgstr "Erreur&nbsp;: Les champs pour les options '%s' sont manquants."
+msgstr "Erreur: Les champs pour les options '%s' sont manquants."
#: ../cli/src/nmcli.c:209
#, c-format
@@ -1053,7 +1053,7 @@ msgstr "outil nmcli, version %s\n"
#: ../cli/src/nmcli.c:215
#, c-format
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
-msgstr "Erreur&nbsp;: Option '%s' inconnue, essayez 'nmcli -help'."
+msgstr "Erreur: Option '%s' inconnue, essayez 'nmcli -help'."
#: ../cli/src/nmcli.c:234
#, c-format
@@ -1063,7 +1063,7 @@ msgstr "Signal %d reçu, arrêt en cours..."
#: ../cli/src/nmcli.c:259
#, c-format
msgid "Error: Could not connect to NetworkManager."
-msgstr "Erreur&nbsp;: Impossible de connecter à NetworkManager."
+msgstr "Erreur: Impossible de connecter à NetworkManager."
#: ../cli/src/nmcli.c:275
msgid "Success"
@@ -1314,7 +1314,7 @@ msgstr "Le déchiffrement de la clé privée a échoué : %s / %s."
#, c-format
msgid "Failed to decrypt the private key: unexpected padding length."
msgstr ""
-"Le déchiffrement de la clé privée a échoué&nbsp;: Longueur de remplissage "
+"Le déchiffrement de la clé privée a échoué: Longueur de remplissage "
"inattendue."
#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278
@@ -1331,25 +1331,25 @@ msgstr "Allocation de mémoire pour chiffrement impossible."
#, c-format
msgid "Failed to initialize the encryption cipher context: %s / %s."
msgstr ""
-"L'initialisation du contexte du cryptage de chiffrement a échoué&nbsp;: %s / "
+"L'initialisation du contexte du cryptage de chiffrement a échoué: %s / "
"%s."
#: ../libnm-util/crypto_gnutls.c:303
#, c-format
msgid "Failed to set symmetric key for encryption: %s / %s."
msgstr ""
-"La définition de la clé symétrique pour le chiffrement a échoué&nbsp;: %s / %"
+"La définition de la clé symétrique pour le chiffrement a échoué: %s / %"
"s."
#: ../libnm-util/crypto_gnutls.c:313
#, c-format
msgid "Failed to set IV for encryption: %s / %s."
-msgstr "La définition d'IV pour le chiffrement a échoué&nbsp;: %s / %s."
+msgstr "La définition d'IV pour le chiffrement a échoué: %s / %s."
#: ../libnm-util/crypto_gnutls.c:322
#, c-format
msgid "Failed to encrypt the data: %s / %s."
-msgstr "Le chiffrement des données a échoué&nbsp;; %s / %s."
+msgstr "Le chiffrement des données a échoué; %s / %s."
#: ../libnm-util/crypto_gnutls.c:362
#, c-format
@@ -1364,17 +1364,17 @@ msgstr "Impossible de décoder le certificat : %s"
#: ../libnm-util/crypto_gnutls.c:408
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %s"
-msgstr "L'initialisation du décodeur PKCS#12 a échoué&nbsp;: %s"
+msgstr "L'initialisation du décodeur PKCS#12 a échoué: %s"
#: ../libnm-util/crypto_gnutls.c:421
#, c-format
msgid "Couldn't decode PKCS#12 file: %s"
-msgstr "Impossible de décoder le fichier PKCS#12&nbsp;: %s"
+msgstr "Impossible de décoder le fichier PKCS#12: %s"
#: ../libnm-util/crypto_gnutls.c:433
#, c-format
msgid "Couldn't verify PKCS#12 file: %s"
-msgstr "Impossible de vérifier le fichier PKCS#12&nbsp;: %s"
+msgstr "Impossible de vérifier le fichier PKCS#12: %s"
#: ../libnm-util/crypto_nss.c:56
#, c-format
@@ -1420,7 +1420,7 @@ msgstr "Le déchiffrement de la clé privée a échoué : %d."
#, c-format
msgid "Failed to decrypt the private key: decrypted data too large."
msgstr ""
-"Le déchiffrement de la clé privée a échoué&nbsp;: les données déchiffrées "
+"Le déchiffrement de la clé privée a échoué: les données déchiffrées "
"sont trop longues."
#: ../libnm-util/crypto_nss.c:256
@@ -1466,22 +1466,22 @@ msgstr "Impossible de décoder le certificat : %d"
#: ../libnm-util/crypto_nss.c:482
#, c-format
msgid "Couldn't convert password to UCS2: %d"
-msgstr "Impossible de convertir le mot de passe en UCS2&nbsp;: %d."
+msgstr "Impossible de convertir le mot de passe en UCS2: %d."
#: ../libnm-util/crypto_nss.c:510
#, c-format
msgid "Couldn't initialize PKCS#12 decoder: %d"
-msgstr "Impossible d'initialiser le décodeur PKCS#12&nbsp;: %d"
+msgstr "Impossible d'initialiser le décodeur PKCS#12: %d"
#: ../libnm-util/crypto_nss.c:519
#, c-format
msgid "Couldn't decode PKCS#12 file: %d"
-msgstr "Impossible de décoder le fichier PKCS#12&nbsp;: %d"
+msgstr "Impossible de décoder le fichier PKCS#12: %d"
#: ../libnm-util/crypto_nss.c:528
#, c-format
msgid "Couldn't verify PKCS#12 file: %d"
-msgstr "Impossible de vérifier le fichier PKCS#12&nbsp;: %d"
+msgstr "Impossible de vérifier le fichier PKCS#12: %d"
#: ../libnm-util/crypto_nss.c:557
msgid "Could not generate random data."
@@ -1533,7 +1533,7 @@ msgstr ""
#: ../src/nm-netlink-monitor.c:265
#, c-format
msgid "unable to enable netlink handle credential passing: %s"
-msgstr "impossible d'activer le passage de crédentiels de gestion netlink&nbsp;: %s"
+msgstr "impossible d'activer le passage de crédentiels de gestion netlink: %s"
#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353
#, c-format
@@ -1552,7 +1552,7 @@ msgstr ""
#: ../src/nm-netlink-monitor.c:502
#, c-format
msgid "unable to join netlink group: %s"
-msgstr "impossible de joindre le groupe netlink&nbsp;: %s"
+msgstr "impossible de joindre le groupe netlink: %s"
#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642
#, c-format
diff --git a/po/sv.po b/po/sv.po
index dc9869ed1..56b73dc1e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: NetworkManager\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-12 01:57+0100\n"
+"POT-Creation-Date: 2010-09-20 15:25+0000\n"
+"PO-Revision-Date: 2010-12-29 12:23+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -98,7 +98,12 @@ msgstr "AUTOCONNECT"
msgid "READONLY"
msgstr "SKRIVSKYDDAD"
-#: ../cli/src/connections.c:158
+#. 7
+#: ../cli/src/connections.c:83
+msgid "DBUS-PATH"
+msgstr "DBUS-SÖKVÄG"
+
+#: ../cli/src/connections.c:159
#, c-format
msgid ""
"Usage: nmcli con { COMMAND | help }\n"
@@ -117,45 +122,43 @@ msgstr ""
" up id <id> | uuid <id> [iface <gränssnitt>] [ap <hwaddr>] [--nowait] [--timeout <tidsgräns>]\n"
" down id <id> | uuid <id>\n"
-#: ../cli/src/connections.c:198
-#: ../cli/src/connections.c:537
+#: ../cli/src/connections.c:199
+#: ../cli/src/connections.c:540
#, c-format
msgid "Error: 'con list': %s"
msgstr "Fel: \"con list\": %s"
-#: ../cli/src/connections.c:200
-#: ../cli/src/connections.c:539
+#: ../cli/src/connections.c:201
+#: ../cli/src/connections.c:542
#, c-format
msgid "Error: 'con list': %s; allowed fields: %s"
msgstr "Fel: \"con list\": %s; tillåtna fält: %s"
-#: ../cli/src/connections.c:208
-#| msgid "Connections"
+#: ../cli/src/connections.c:209
msgid "Connection details"
msgstr "Anslutningsdetaljer"
-#: ../cli/src/connections.c:382
-#: ../cli/src/connections.c:602
-#| msgid "System"
+#: ../cli/src/connections.c:384
+#: ../cli/src/connections.c:605
msgid "system"
msgstr "system"
-#: ../cli/src/connections.c:382
-#: ../cli/src/connections.c:602
+#: ../cli/src/connections.c:384
+#: ../cli/src/connections.c:605
msgid "user"
msgstr "användare"
-#: ../cli/src/connections.c:384
+#: ../cli/src/connections.c:386
msgid "never"
msgstr "aldrig"
#. "CAPABILITIES"
#. Print header
#. "WIFI-PROPERTIES"
-#: ../cli/src/connections.c:385
-#: ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603
+#: ../cli/src/connections.c:387
+#: ../cli/src/connections.c:388
#: ../cli/src/connections.c:606
+#: ../cli/src/connections.c:609
#: ../cli/src/devices.c:432
#: ../cli/src/devices.c:557
#: ../cli/src/devices.c:583
@@ -190,10 +193,10 @@ msgstr "aldrig"
msgid "yes"
msgstr "ja"
-#: ../cli/src/connections.c:385
-#: ../cli/src/connections.c:386
-#: ../cli/src/connections.c:603
+#: ../cli/src/connections.c:387
+#: ../cli/src/connections.c:388
#: ../cli/src/connections.c:606
+#: ../cli/src/connections.c:609
#: ../cli/src/devices.c:432
#: ../cli/src/devices.c:557
#: ../cli/src/devices.c:583
@@ -229,23 +232,22 @@ msgstr "ja"
msgid "no"
msgstr "nej"
-#: ../cli/src/connections.c:458
-#: ../cli/src/connections.c:501
-#| msgid "System connections:\n"
+#: ../cli/src/connections.c:461
+#: ../cli/src/connections.c:504
msgid "System connections"
msgstr "systemanslutningar"
-#: ../cli/src/connections.c:463
-#: ../cli/src/connections.c:514
+#: ../cli/src/connections.c:466
+#: ../cli/src/connections.c:517
msgid "User connections"
msgstr "Användaranslutningar"
-#: ../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/connections.c:478
+#: ../cli/src/connections.c:1338
+#: ../cli/src/connections.c:1354
+#: ../cli/src/connections.c:1363
+#: ../cli/src/connections.c:1374
+#: ../cli/src/connections.c:1459
#: ../cli/src/devices.c:962
#: ../cli/src/devices.c:972
#: ../cli/src/devices.c:1074
@@ -254,14 +256,14 @@ msgstr "Användaranslutningar"
msgid "Error: %s argument is missing."
msgstr "Fel: %s-argument saknas."
-#: ../cli/src/connections.c:488
+#: ../cli/src/connections.c:491
#, c-format
msgid "Error: %s - no such connection."
msgstr "Fel: %s - ingen sådan anslutning."
-#: ../cli/src/connections.c:520
-#: ../cli/src/connections.c:1384
-#: ../cli/src/connections.c:1474
+#: ../cli/src/connections.c:523
+#: ../cli/src/connections.c:1387
+#: ../cli/src/connections.c:1477
#: ../cli/src/devices.c:785
#: ../cli/src/devices.c:852
#: ../cli/src/devices.c:986
@@ -270,255 +272,254 @@ msgstr "Fel: %s - ingen sådan anslutning."
msgid "Unknown parameter: %s\n"
msgstr "Okänd parameter: %s\n"
-#: ../cli/src/connections.c:529
+#: ../cli/src/connections.c:532
#, c-format
msgid "Error: no valid parameter specified."
msgstr "Fel: ingen giltig parameter angiven."
-#: ../cli/src/connections.c:544
-#: ../cli/src/connections.c:1577
+#: ../cli/src/connections.c:547
+#: ../cli/src/connections.c:1580
#: ../cli/src/devices.c:1293
-#: ../cli/src/network-manager.c:274
+#: ../cli/src/network-manager.c:359
#, c-format
msgid "Error: %s."
msgstr "Fel: %s."
-#: ../cli/src/connections.c:650
+#: ../cli/src/connections.c:653
#, c-format
msgid "Error: 'con status': %s"
msgstr "Fel: \"con status\": %s"
-#: ../cli/src/connections.c:652
+#: ../cli/src/connections.c:655
#, c-format
msgid "Error: 'con status': %s; allowed fields: %s"
msgstr "Fel: \"con status\": %s; tillåtna fält: %s"
-#: ../cli/src/connections.c:659
+#: ../cli/src/connections.c:662
msgid "Active connections"
msgstr "Aktiva anslutningar"
-#: ../cli/src/connections.c:1027
+#: ../cli/src/connections.c:1030
#, c-format
msgid "no active connection on device '%s'"
msgstr "ingen aktiv anslutning på enheten \"%s\""
-#: ../cli/src/connections.c:1035
+#: ../cli/src/connections.c:1038
#, c-format
msgid "no active connection or device"
msgstr "ingen aktiv anslutning eller enhet"
-#: ../cli/src/connections.c:1085
+#: ../cli/src/connections.c:1088
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr "enheten \"%s\" är inte kompatibel med anslutningen \"%s\""
-#: ../cli/src/connections.c:1087
+#: ../cli/src/connections.c:1090
#, c-format
-#| msgid "no active connection on device '%s'"
msgid "no device found for connection '%s'"
msgstr "ingen enhet hittades för anslutningen \"%s\""
-#: ../cli/src/connections.c:1098
+#: ../cli/src/connections.c:1101
msgid "activating"
msgstr "aktiverar"
-#: ../cli/src/connections.c:1100
+#: ../cli/src/connections.c:1103
msgid "activated"
msgstr "aktiverad"
-#: ../cli/src/connections.c:1103
-#: ../cli/src/connections.c:1126
-#: ../cli/src/connections.c:1159
+#: ../cli/src/connections.c:1106
+#: ../cli/src/connections.c:1129
+#: ../cli/src/connections.c:1162
#: ../cli/src/devices.c:246
#: ../cli/src/devices.c:558
-#: ../cli/src/network-manager.c:92
-#: ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:94
+#: ../cli/src/network-manager.c:149
#: ../cli/src/settings.c:473
msgid "unknown"
msgstr "okänt"
-#: ../cli/src/connections.c:1112
+#: ../cli/src/connections.c:1115
msgid "VPN connecting (prepare)"
msgstr "VPN ansluter (förbereder)"
-#: ../cli/src/connections.c:1114
+#: ../cli/src/connections.c:1117
msgid "VPN connecting (need authentication)"
msgstr "VPN ansluter (behöver autentisering)"
-#: ../cli/src/connections.c:1116
+#: ../cli/src/connections.c:1119
msgid "VPN connecting"
msgstr "VPN ansluter"
-#: ../cli/src/connections.c:1118
+#: ../cli/src/connections.c:1121
msgid "VPN connecting (getting IP configuration)"
msgstr "VPN ansluter (hämtar IP-konfiguration)"
-#: ../cli/src/connections.c:1120
+#: ../cli/src/connections.c:1123
msgid "VPN connected"
msgstr "VPN ansluten"
-#: ../cli/src/connections.c:1122
+#: ../cli/src/connections.c:1125
msgid "VPN connection failed"
msgstr "VPN-anslutning misslyckades"
-#: ../cli/src/connections.c:1124
+#: ../cli/src/connections.c:1127
msgid "VPN disconnected"
msgstr "VPN frånkopplad"
-#: ../cli/src/connections.c:1135
+#: ../cli/src/connections.c:1138
msgid "unknown reason"
msgstr "okänd anledning"
-#: ../cli/src/connections.c:1137
+#: ../cli/src/connections.c:1140
msgid "none"
msgstr "ingen"
-#: ../cli/src/connections.c:1139
+#: ../cli/src/connections.c:1142
msgid "the user was disconnected"
msgstr "användaren kopplades från"
-#: ../cli/src/connections.c:1141
+#: ../cli/src/connections.c:1144
msgid "the base network connection was interrupted"
msgstr "basnätverksanslutningen avbröts"
-#: ../cli/src/connections.c:1143
+#: ../cli/src/connections.c:1146
msgid "the VPN service stopped unexpectedly"
msgstr "VPN-tjänsten stoppades oväntat"
-#: ../cli/src/connections.c:1145
+#: ../cli/src/connections.c:1148
msgid "the VPN service returned invalid configuration"
msgstr "VPN-tjänsten returnerade en ogiltig konfiguration"
-#: ../cli/src/connections.c:1147
+#: ../cli/src/connections.c:1150
msgid "the connection attempt timed out"
msgstr "anslutningsförsöket översteg tidsgränsen"
-#: ../cli/src/connections.c:1149
+#: ../cli/src/connections.c:1152
msgid "the VPN service did not start in time"
msgstr "VPN-tjänsten startade inte i tid"
-#: ../cli/src/connections.c:1151
+#: ../cli/src/connections.c:1154
msgid "the VPN service failed to start"
msgstr "VPN-tjänsten misslyckades med att starta"
-#: ../cli/src/connections.c:1153
+#: ../cli/src/connections.c:1156
msgid "no valid VPN secrets"
msgstr "inga giltiga VPN-hemligheter"
-#: ../cli/src/connections.c:1155
+#: ../cli/src/connections.c:1158
msgid "invalid VPN secrets"
msgstr "ogiltiga VPN-hemligheter"
-#: ../cli/src/connections.c:1157
+#: ../cli/src/connections.c:1160
msgid "the connection was removed"
msgstr "anslutningen togs bort"
-#: ../cli/src/connections.c:1171
+#: ../cli/src/connections.c:1174
#, c-format
msgid "state: %s\n"
msgstr "tillstånd: %s\n"
-#: ../cli/src/connections.c:1174
-#: ../cli/src/connections.c:1200
+#: ../cli/src/connections.c:1177
+#: ../cli/src/connections.c:1203
#, c-format
msgid "Connection activated\n"
msgstr "Anslutning aktiverad\n"
-#: ../cli/src/connections.c:1177
+#: ../cli/src/connections.c:1180
#, c-format
msgid "Error: Connection activation failed."
msgstr "Fel: Aktivering av anslutning misslyckades."
-#: ../cli/src/connections.c:1196
+#: ../cli/src/connections.c:1199
#, c-format
msgid "state: %s (%d)\n"
msgstr "tillstånd: %s (%d)\n"
-#: ../cli/src/connections.c:1206
+#: ../cli/src/connections.c:1209
#, c-format
msgid "Error: Connection activation failed: %s."
msgstr "Fel: Aktivering av anslutning misslyckades: %s."
-#: ../cli/src/connections.c:1223
+#: ../cli/src/connections.c:1226
#: ../cli/src/devices.c:909
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr "Fel: Tidsgränsen %d sekunder gick ut."
-#: ../cli/src/connections.c:1266
+#: ../cli/src/connections.c:1269
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr "Fel: Aktivering av anslutning misslyckades: %s"
-#: ../cli/src/connections.c:1280
+#: ../cli/src/connections.c:1283
#, c-format
msgid "Error: Obtaining active connection for '%s' failed."
msgstr "Fel: Hämtning av aktiv anslutning för \"%s\" misslyckades."
-#: ../cli/src/connections.c:1289
+#: ../cli/src/connections.c:1292
#, c-format
msgid "Active connection state: %s\n"
msgstr "Tillstånd för aktiv anslutning: %s\n"
-#: ../cli/src/connections.c:1290
+#: ../cli/src/connections.c:1293
#, c-format
msgid "Active connection path: %s\n"
msgstr "Sökväg för aktiv anslutning: %s\n"
-#: ../cli/src/connections.c:1344
-#: ../cli/src/connections.c:1465
+#: ../cli/src/connections.c:1347
+#: ../cli/src/connections.c:1468
#, c-format
msgid "Error: Unknown connection: %s."
msgstr "Fel: Okänd anslutning: %s."
-#: ../cli/src/connections.c:1379
+#: ../cli/src/connections.c:1382
#: ../cli/src/devices.c:980
#, c-format
msgid "Error: timeout value '%s' is not valid."
msgstr "Fel: värdet \"%s\" för tidsgränsen är inte giltigt."
-#: ../cli/src/connections.c:1392
-#: ../cli/src/connections.c:1482
+#: ../cli/src/connections.c:1395
+#: ../cli/src/connections.c:1485
#, c-format
msgid "Error: id or uuid has to be specified."
msgstr "Fel: id eller uuid måste anges."
-#: ../cli/src/connections.c:1412
+#: ../cli/src/connections.c:1415
#, c-format
msgid "Error: No suitable device found: %s."
msgstr "Fel: Ingen lämplig enhet hittades: %s."
-#: ../cli/src/connections.c:1414
+#: ../cli/src/connections.c:1417
#, c-format
msgid "Error: No suitable device found."
msgstr "Fel: Ingen lämplig enhet hittades."
-#: ../cli/src/connections.c:1509
+#: ../cli/src/connections.c:1512
#, c-format
msgid "Warning: Connection not active\n"
msgstr "Varning: Anslutningen är inte aktiv\n"
-#: ../cli/src/connections.c:1566
+#: ../cli/src/connections.c:1569
#, c-format
msgid "Error: 'con' command '%s' is not valid."
msgstr "Fel: \"con\"-kommandot \"%s\" är inte giltigt."
-#: ../cli/src/connections.c:1602
+#: ../cli/src/connections.c:1605
#, c-format
msgid "Error: could not connect to D-Bus."
msgstr "Fel: kunde inte ansluta till D-Bus."
-#: ../cli/src/connections.c:1609
+#: ../cli/src/connections.c:1612
#, c-format
msgid "Error: Could not get system settings."
msgstr "Fel: Kunde inte få systeminställningar."
-#: ../cli/src/connections.c:1617
+#: ../cli/src/connections.c:1620
#, c-format
msgid "Error: Could not get user settings."
msgstr "Fel: Kunde inte få användarinställningar."
-#: ../cli/src/connections.c:1627
+#: ../cli/src/connections.c:1630
#, c-format
msgid "Error: Can't obtain connections: settings services are not running."
msgstr "Fel: Kan inte få anslutningar: inställningstjänster är inte igång."
@@ -556,7 +557,6 @@ msgstr "WIFI-EGENSKAPER"
#. 2
#: ../cli/src/devices.c:75
-#| msgid "PEAP"
msgid "AP"
msgstr "AP"
@@ -572,7 +572,6 @@ msgstr "IP4-INSTÄLLNINGAR"
#. 5
#: ../cli/src/devices.c:78
-#| msgid "DNS"
msgid "IP4-DNS"
msgstr "IP4-DNS"
@@ -583,7 +582,6 @@ msgstr "IP6-INSTÄLLNINGAR"
#. 7
#: ../cli/src/devices.c:80
-#| msgid "DNS"
msgid "IP6-DNS"
msgstr "IP6-DNS"
@@ -614,19 +612,16 @@ msgstr "BÄRARE"
#. 0
#: ../cli/src/devices.c:122
-#| msgid " WEP"
msgid "WEP"
msgstr "WEP"
#. 1
#: ../cli/src/devices.c:123
-#| msgid " WPA"
msgid "WPA"
msgstr "WPA"
#. 2
#: ../cli/src/devices.c:124
-#| msgid " WPA2"
msgid "WPA2"
msgstr "WPA2"
@@ -637,7 +632,6 @@ msgstr "TKIP"
#. 4
#: ../cli/src/devices.c:126
-#| msgid "AES-CCMP"
msgid "CCMP"
msgstr "CCMP"
@@ -667,13 +661,11 @@ msgstr "DNS"
#. 0
#: ../cli/src/devices.c:175
-#| msgid "SSID:"
msgid "SSID"
msgstr "SSID"
#. 1
#: ../cli/src/devices.c:176
-#| msgid "BSSID:"
msgid "BSSID"
msgstr "BSSID"
@@ -719,16 +711,6 @@ msgstr "AKTIV"
#: ../cli/src/devices.c:208
#, 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>] | apinfo iface <iface> hwaddr <hwaddr>]\n"
-#| "\n"
msgid ""
"Usage: nmcli dev { COMMAND | help }\n"
"\n"
@@ -759,7 +741,7 @@ msgid "unavailable"
msgstr "otillgänglig"
#: ../cli/src/devices.c:232
-#: ../cli/src/network-manager.c:89
+#: ../cli/src/network-manager.c:91
msgid "disconnected"
msgstr "frånkopplad"
@@ -780,7 +762,7 @@ msgid "connecting (getting IP configuration)"
msgstr "ansluter (hämtar IP-konfiguration)"
#: ../cli/src/devices.c:242
-#: ../cli/src/network-manager.c:87
+#: ../cli/src/network-manager.c:89
msgid "connected"
msgstr "ansluten"
@@ -813,27 +795,22 @@ msgid "%u MB/s"
msgstr "%u MB/s"
#: ../cli/src/devices.c:403
-#| msgid ", Encrypted: "
msgid "Encrypted: "
msgstr "Krypterad: "
#: ../cli/src/devices.c:408
-#| msgid " WEP"
msgid "WEP "
msgstr "WEP "
#: ../cli/src/devices.c:410
-#| msgid " WPA"
msgid "WPA "
msgstr "WPA "
#: ../cli/src/devices.c:412
-#| msgid " WPA2"
msgid "WPA2 "
msgstr "WPA2 "
#: ../cli/src/devices.c:415
-#| msgid " Enterprise"
msgid "Enterprise "
msgstr "Företag"
@@ -852,12 +829,10 @@ msgstr "Fel: \"dev list\": %s"
#: ../cli/src/devices.c:488
#, c-format
-#| msgid "Error: Device '%s' (%s) disconnecting failed: %s"
msgid "Error: 'dev list': %s; allowed fields: %s"
msgstr "Fel: \"dev list\": %s; tillåtna fält: %s"
#: ../cli/src/devices.c:497
-#| msgid "Devices"
msgid "Device details"
msgstr "Enhetsdetaljer"
@@ -867,7 +842,6 @@ msgid "(unknown)"
msgstr "(okänt)"
#: ../cli/src/devices.c:528
-#| msgid "(unknown)"
msgid "unknown)"
msgstr "okänt)"
@@ -934,7 +908,6 @@ msgstr "Fel: gränssnitt (iface) måste anges."
#: ../cli/src/devices.c:1112
#, c-format
-#| msgid "Error: 'dev wifi' command '%s' is not valid."
msgid "Error: 'dev wifi': %s"
msgstr "Fel: \"dev wifi\": %s"
@@ -974,147 +947,191 @@ msgstr "KÖR"
#. 1
#: ../cli/src/network-manager.c:37
-msgid "WIFI-HARDWARE"
-msgstr "WIFI-MASKINVARA"
+msgid "NET-ENABLED"
+msgstr "NÄT-AKTIVERAT"
#. 2
#: ../cli/src/network-manager.c:38
-msgid "WIFI"
-msgstr "WIFI"
+msgid "WIFI-HARDWARE"
+msgstr "WIFI-MASKINVARA"
#. 3
#: ../cli/src/network-manager.c:39
-msgid "WWAN-HARDWARE"
-msgstr "WWAN-MASKINVARA"
+msgid "WIFI"
+msgstr "WIFI"
#. 4
#: ../cli/src/network-manager.c:40
-#| msgid "NM WWAN:"
+msgid "WWAN-HARDWARE"
+msgstr "WWAN-MASKINVARA"
+
+#. 5
+#: ../cli/src/network-manager.c:41
msgid "WWAN"
msgstr "WWAN"
-#: ../cli/src/network-manager.c:62
+#: ../cli/src/network-manager.c:64
#, 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 }\n"
"\n"
" status\n"
-" sleep\n"
-" wakeup\n"
+" enable [true|false]\n"
+" sleep [true|false]\n"
" wifi [on|off]\n"
" wwan [on|off]\n"
"\n"
msgstr ""
"Användning: nmcli nm { KOMMANDO | help }\n"
"\n"
-" KOMMANDO := { status | sleep | wakeup | wifi | wwan }\n"
+" KOMMANDO := { 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"
"\n"
-#: ../cli/src/network-manager.c:83
+#: ../cli/src/network-manager.c:85
msgid "asleep"
msgstr "sover"
-#: ../cli/src/network-manager.c:85
+#: ../cli/src/network-manager.c:87
msgid "connecting"
msgstr "ansluter"
-#: ../cli/src/network-manager.c:125
+#: ../cli/src/network-manager.c:128
#, c-format
msgid "Error: 'nm status': %s"
msgstr "Fel: \"nm status\": %s"
-#: ../cli/src/network-manager.c:127
+#: ../cli/src/network-manager.c:130
#, c-format
msgid "Error: 'nm status': %s; allowed fields: %s"
msgstr "Fel: \"nm status\": %s; tillåtna fält: %s"
-#: ../cli/src/network-manager.c:134
+#: ../cli/src/network-manager.c:137
msgid "NetworkManager status"
msgstr "Status för Nätverkshanterare"
#. 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
+#: ../cli/src/network-manager.c:144
+#: ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146
+#: ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328
msgid "enabled"
msgstr "aktiverad"
-#: ../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:144
+#: ../cli/src/network-manager.c:145
+#: ../cli/src/network-manager.c:146
+#: ../cli/src/network-manager.c:147
+#: ../cli/src/network-manager.c:154
+#: ../cli/src/network-manager.c:247
+#: ../cli/src/network-manager.c:296
+#: ../cli/src/network-manager.c:328
msgid "disabled"
msgstr "inaktiverad"
-#: ../cli/src/network-manager.c:148
+#: ../cli/src/network-manager.c:152
msgid "running"
msgstr "kör"
-#: ../cli/src/network-manager.c:148
+#: ../cli/src/network-manager.c:152
msgid "not running"
msgstr "kör inte"
-#: ../cli/src/network-manager.c:201
-#: ../cli/src/network-manager.c:233
+#: ../cli/src/network-manager.c:175
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't connect to system bus: %s"
+msgstr "Fel: kunde inte ansluta till systembussen: %s"
+
+#: ../cli/src/network-manager.c:186
+#, c-format
+#| msgid "Error: could not connect to D-Bus."
+msgid "Error: Couldn't create D-Bus object proxy."
+msgstr "Fel: Kunde inte skapa proxy för D-Bus-objekt."
+
+#: ../cli/src/network-manager.c:192
+#, c-format
+#| msgid "Error: 'con list': %s"
+msgid "Error in sleep: %s"
+msgstr "Fel i sömn: %s"
+
+#: ../cli/src/network-manager.c:237
+#: ../cli/src/network-manager.c:286
+#: ../cli/src/network-manager.c:318
#, c-format
-#| msgid "Error: timeout value '%s' is not valid."
msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s"
msgstr "Fel: värdet \"%s\" för \"--fields\" är inte giltigt här; tillåtna fält: %s"
-#: ../cli/src/network-manager.c:209
-#| msgid "enabled"
+#: ../cli/src/network-manager.c:245
+#| msgid "WiFi enabled"
+msgid "Networking enabled"
+msgstr "Nätverk aktiverat"
+
+#: ../cli/src/network-manager.c:256
+#, c-format
+#| msgid "Error: invalid 'wwan' parameter: '%s'."
+msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'."
+msgstr "Fel: ogiltig \"enable\"-parameter: \"%s\"; använd \"true\" eller \"false\"."
+
+#: ../cli/src/network-manager.c:265
+#, c-format
+#| msgid "Error: Could not connect to NetworkManager."
+msgid "Error: Sleeping status is not exported by NetworkManager."
+msgstr "Fel: Sömnstatus exporteras inte av Nätverkshanterare."
+
+#: ../cli/src/network-manager.c:273
+#, c-format
+#| msgid "Error: invalid 'wifi' parameter: '%s'."
+msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'."
+msgstr "Fel: ogiltig \"sleep\"-parameter: \"%s\"; använd \"true\" eller \"false\"."
+
+#: ../cli/src/network-manager.c:294
msgid "WiFi enabled"
msgstr "WiFi aktiverat"
-#: ../cli/src/network-manager.c:220
+#: ../cli/src/network-manager.c:305
#, c-format
msgid "Error: invalid 'wifi' parameter: '%s'."
msgstr "Fel: ogiltig \"wifi\"-parameter: \"%s\"."
-#: ../cli/src/network-manager.c:241
-#| msgid "enabled"
+#: ../cli/src/network-manager.c:326
msgid "WWAN enabled"
msgstr "WWAN aktiverat"
-#: ../cli/src/network-manager.c:252
+#: ../cli/src/network-manager.c:337
#, c-format
msgid "Error: invalid 'wwan' parameter: '%s'."
msgstr "Fel: ogiltig \"wwan\"-parameter: \"%s\"."
-#: ../cli/src/network-manager.c:263
+#: ../cli/src/network-manager.c:348
#, c-format
msgid "Error: 'nm' command '%s' is not valid."
msgstr "Fel: \"nm\"-kommandot \"%s\" är inte giltigt."
#: ../cli/src/nmcli.c:69
#, c-format
-#| msgid ""
-#| "Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n"
-#| "\n"
-#| "OPTIONS\n"
-#| " -t[erse] terse output\n"
-#| " -p[retty] pretty output\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"
@@ -1152,7 +1169,6 @@ msgstr ""
#: ../cli/src/nmcli.c:113
#, c-format
-#| msgid "Object '%s' is unknown, try 'nmcli help'."
msgid "Error: Object '%s' is unknown, try 'nmcli help'."
msgstr "Fel: Objektet \"%s\" är okänt, prova \"nmcli help\"."
@@ -1179,20 +1195,17 @@ msgstr "Fel: Flaggan \"--pretty\" är ömsesidigt uteslutande med \"--terse\"."
#: ../cli/src/nmcli.c:171
#: ../cli/src/nmcli.c:187
#, c-format
-#| msgid "Error: %s argument is missing."
msgid "Error: missing argument for '%s' option."
msgstr "Fel: argument för flaggan \"%s\" saknas."
#: ../cli/src/nmcli.c:180
#: ../cli/src/nmcli.c:196
#, c-format
-#| msgid "Error: '%s' argument is missing."
msgid "Error: '%s' is not valid argument for '%s' option."
msgstr "Fel: \"%s\" är inte ett giltigt argument för flaggan \"%s\"."
#: ../cli/src/nmcli.c:203
#, c-format
-#| msgid "Error: '%s' argument is missing."
msgid "Error: fields for '%s' options are missing."
msgstr "Fel: fält för \"%s\"-flaggor saknas."
@@ -1203,7 +1216,6 @@ msgstr "nmcli-verktyg, version %s\n"
#: ../cli/src/nmcli.c:215
#, c-format
-#| msgid "Option '%s' is unknown, try 'nmcli -help'."
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
msgstr "Fel: Flaggan \"%s\" är okänd, prova \"nmcli -help\"."
@@ -1228,18 +1240,15 @@ msgstr "%d (hex-ascii-nyckel)"
#: ../cli/src/settings.c:413
#, c-format
-#| msgid "WEP 128-bit Passphrase"
msgid "%d (104/128-bit passphrase)"
msgstr "%d (104/128-bitars lösenfras)"
#: ../cli/src/settings.c:416
#, c-format
-#| msgid "(unknown)"
msgid "%d (unknown)"
msgstr "%d (okänt)"
#: ../cli/src/settings.c:442
-#| msgid "(unknown)"
msgid "0 (unknown)"
msgstr "0 (okänt)"
@@ -1701,7 +1710,6 @@ msgid "System policy prevents sharing connections via an open WiFi network"
msgstr "Systemets policy förhindrar delning av anslutningar via ett öppet trådlöst nätverk"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1
-#| msgid "Wired network connection"
msgid "Allow control of network connections"
msgstr "Tillåt kontroll av nätverksanslutningar"
@@ -1718,7 +1726,6 @@ msgid "Enable or disable mobile broadband devices"
msgstr "Aktivera eller inaktivera mobila bredbandsenheter"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5
-#| msgid "Enable _Networking"
msgid "Enable or disable system networking"
msgstr "Aktivera eller inaktivera systemnätverk"
@@ -1727,12 +1734,10 @@ msgid "Put NetworkManager to sleep or wake it up (should only be used by system
msgstr "Försätt Nätverkshanterare i vänteläge eller återställ efter det (bör endast användas av systemets strömhantering)"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7
-#| msgid "System policy prevents modification of system settings"
msgid "System policy prevents control of network connections"
msgstr "Systemets policy förhindrar kontroll av nätverksanslutningar"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8
-#| msgid "System policy prevents sharing connections via an open WiFi network"
msgid "System policy prevents enabling or disabling WiFi devices"
msgstr "Systemets policy förhindrar aktivering eller inaktivering av WiFi-enheter"
@@ -1741,7 +1746,6 @@ msgid "System policy prevents enabling or disabling mobile broadband devices"
msgstr "Systemets policy förhindrar aktivering eller inaktivering av mobila bredbandsenheter"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10
-#| msgid "System policy prevents modification of system settings"
msgid "System policy prevents enabling or disabling system networking"
msgstr "Systemets policy förhindrar aktivering eller inaktivering av systemnätverk"
@@ -1750,7 +1754,6 @@ msgid "System policy prevents putting NetworkManager to sleep or waking it up"
msgstr "Systemets policy förhindrar att Nätverkshanterare försätts i vänteläge eller återställs efter det"
#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12
-#| msgid "System policy prevents modification of system settings"
msgid "System policy prevents use of user-specific connections"
msgstr "Systemets policy förhindrar användning av användarspecifika anslutningar"
@@ -1772,7 +1775,6 @@ msgstr "kan inte ansluta till netlink för övervakning av länkstatus: %s"
#: ../src/nm-netlink-monitor.c:265
#, c-format
-#| msgid "unable to allocate netlink handle: %s"
msgid "unable to enable netlink handle credential passing: %s"
msgstr "kunde inte aktivera behörighetshantering för netlink-handtag: %s"
@@ -1798,22 +1800,21 @@ msgstr "kan inte gå med i netlink-grupp: %s"
msgid "error updating link cache: %s"
msgstr "fel vid uppdatering av länkcache: %s"
-#: ../src/main.c:502
+#: ../src/main.c:499
#, c-format
msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgstr "Ogiltig flagga. Använd --help för att se en lista över giltiga flaggor.\n"
-#: ../src/main.c:573
+#: ../src/main.c:570
#, c-format
-#| msgid "Invalid option. Please use --help to see a list of valid options.\n"
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "%s. Använd --help för att se en lista över giltiga flaggor.\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:324
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328
msgid "# Created by NetworkManager\n"
msgstr "# Skapad av Nätverkshanterare\n"
-#: ../src/dhcp-manager/nm-dhcp-dhclient.c:340
+#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344
#, c-format
msgid ""
"# Merged from %s\n"
@@ -1863,6 +1864,7 @@ msgid "Auto %s"
msgstr "Automatisk %s"
#: ../system-settings/plugins/ifcfg-rh/reader.c:3412
+#: ../system-settings/plugins/ifnet/connection_parser.c:49
msgid "System"
msgstr "System"
diff --git a/policy/Makefile.in b/policy/Makefile.in
index d36f83e07..c5aef572b 100644
--- a/policy/Makefile.in
+++ b/policy/Makefile.in
@@ -174,6 +174,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -188,6 +192,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/policy/org.freedesktop.NetworkManager.policy b/policy/org.freedesktop.NetworkManager.policy
index 66cc0635d..6cc1b31d1 100644
--- a/policy/org.freedesktop.NetworkManager.policy
+++ b/policy/org.freedesktop.NetworkManager.policy
@@ -11,9 +11,12 @@
<action id="org.freedesktop.NetworkManager.enable-disable-network">
<description>Enable or disable system networking</description>
<description xml:lang="bg">Включване и изключване на мрежата на ÑиÑтемно ниво</description>
+ <description xml:lang="ca">Habilita o inhabilita la xarxa del sistema</description>
<description xml:lang="cs">Povolit nebo zakázat systémovou síť</description>
+ <description xml:lang="da">Aktiver eller deaktiver systemnetværk</description>
<description xml:lang="de">System-Netzwerke aktivieren oder deaktivieren</description>
<description xml:lang="el">ΕνεÏγοποίηση ή απενεÏγοποίηση δικτÏωσης συστήματος</description>
+ <description xml:lang="eo">EnÅalti aÅ­ elÅalti sistemretkonektadon</description>
<description xml:lang="es">Activar o desactivar la red del sistema</description>
<description xml:lang="gl">Activar ou desactivar a rede do sistema</description>
<description xml:lang="hi">तंतà¥à¤° संजालन सकà¥à¤°à¤¿à¤¯ या निषà¥à¤•à¥à¤°à¤¿à¤¯ करें</description>
@@ -33,9 +36,12 @@
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ç³»ç»Ÿç½‘络</description>
<message>System policy prevents enabling or disabling system networking</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на мрежата на ÑиÑтемно ниво</message>
+ <message xml:lang="ca">La política del sistema impedeix habilitar o inhabilitar la xarxa del sistema</message>
<message xml:lang="cs">Systémová politika zamezuje povolit nebo zakázat systémovou síť</message>
+ <message xml:lang="da">Systempolitik forhindrer aktivering eller deaktivering af systemnetværk</message>
<message xml:lang="de">Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von System-Netzwerken</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει ενεÏγοποίηση ή απενεÏγοποίηση της δικτÏωσης του συστήματος</message>
+ <message xml:lang="eo">Sistempolitiko preventas enÅalton aÅ­ malÅalton de sistema retkonektado</message>
<message xml:lang="es">La poliÌtica de sistema evita activar o desactivar la red del sistema</message>
<message xml:lang="gl">A normativa do sistema evita a activación ou desactivación da rede do sistema</message>
<message xml:lang="hi">तंतà¥à¤° संजालन के यà¥à¤•à¥à¤¤à¤¿ के सकà¥à¤°à¤¿à¤¯à¤£ या निषà¥à¤•à¥à¤°à¤¿à¤¯à¤£ को तंतà¥à¤° नीति रोकता है</message>
@@ -62,9 +68,12 @@
<action id="org.freedesktop.NetworkManager.sleep-wake">
<description>Put NetworkManager to sleep or wake it up (should only be used by system power management)</description>
<description xml:lang="bg">ПриÑпиване и Ñъбуждане на NetworkManager (за целите на модула за управление на захранването на ÑиÑтемата)</description>
+ <description xml:lang="ca">Posa el NetworkManager a dormir o desperta'l (només l'hauria d'utilitzar el sistema de gestió d'energia)</description>
<description xml:lang="cs">Uspat Network Manager nebo jej probudit (mělo by být používáno pouze systémovou správou napájení)</description>
+ <description xml:lang="da">Sæt NetworkManager i hvile eller væk den (bør kun bruges af systemstrømstyringen)</description>
<description xml:lang="de">NetworkManager in den Schlafzustand versetzen oder daraus aufwecken (Sollte nur von der System-Energieverwaltung verwendet werden)</description>
<description xml:lang="el">Θέση της ΔιαχείÏισης δικτÏου σε αδÏάνεια ή ενεÏγοποίησή της (Ï€Ïέπει να χÏησιμοποιείται μόνο από τη διαχείÏιση ενέÏγειας του συστήματος)</description>
+ <description xml:lang="eo">Dormigi aÅ­ veki NetworkManager (estu uzata nur de sistema energimastumado)</description>
<description xml:lang="es">Poner NetworkManager a dormir o despertarlo (soÌlo lo deberiÌa usar el gestor de energiÌa del sistema)</description>
<description xml:lang="gl">Poñer o NetworkManager en suspensión e espertalo (só debe ser usado polo sistema de xestión de rede)</description>
<description xml:lang="hi"> NetworkManager को सà¥à¤²à¥€à¤ª सà¥à¤¥à¤¿à¤¤à¤¿ या वेकअप सà¥à¤¥à¤¿à¤¤à¤¿ में रखें (केवल सिसà¥à¤Ÿà¤® पावर मैनेजमेंट के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥‹à¤— किया जाà¤à¤—ा)</description>
@@ -84,9 +93,12 @@
<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>
+ <message xml:lang="ca">La política del sistema impedeix posar el NetworkManager a dormir o despertar-lo</message>
<message xml:lang="cs">Systémová politika zamezuje NetworkManager uspat nebo probudit</message>
+ <message xml:lang="da">Systempolitik forhindrer at sætte NetworkManager i hvile eller at vække den</message>
<message xml:lang="de">Die Systemrichtlinien verhindern das in den Schlaf versetzen oder Aufwecken von NetworkManager</message>
<message xml:lang="el">Η πολιτική του συστήματος δεν επιτÏέπει να τίθεται η διαχείÏιση δικτÏου σε αδÏάνεια ή να ενεÏγοποιείται.</message>
+ <message xml:lang="eo">Sistempolitiko preventas dormigi aÅ­ veki NetworkManager</message>
<message xml:lang="es">La poliÌtica del sistema evita poner a NetworkManager a dormir o despertarlo</message>
<message xml:lang="gl">A normativa do sistema evita poñer o NetworkManager en suspensión ou espertalo</message>
<message xml:lang="hi">NetworkManager को सà¥à¤²à¥€à¤ª या वेकअप सà¥à¤¥à¤¿à¤¤à¤¿ में लाने के लिठनेटवरà¥à¤•à¤®à¥ˆà¤¨à¥‡à¤œà¤° रोकता है</message>
@@ -113,9 +125,12 @@
<action id="org.freedesktop.NetworkManager.enable-disable-wifi">
<description>Enable or disable WiFi devices</description>
<description xml:lang="bg">Включване и изключване на уÑтройÑтва за безжични мрежи</description>
+ <description xml:lang="ca">Habilita o inhabilita els dispositius Wi-Fi</description>
<description xml:lang="cs">Povolit nebo zakázat zařízení WiFi</description>
+ <description xml:lang="da">Aktiver eller deaktiver WiFi-enheder</description>
<description xml:lang="de">WLAN-Geräte aktivieren oder deaktivieren</description>
<description xml:lang="el">ΕνεÏγοποίηση ή απενεÏγοποίηση συσκευών ασÏÏματης δικτÏωσης (WiFi)</description>
+ <description xml:lang="eo">EnÅalti aÅ­ elÅalti WiFi-aparatojn</description>
<description xml:lang="es">Activar o desactivar los dispositivos inalaÌmbricos</description>
<description xml:lang="gl">Activar ou desactivar os dispositivos WiFi</description>
<description xml:lang="hi">WiFi यà¥à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤ सकà¥à¤°à¤¿à¤¯ या निषà¥à¤•à¥à¤°à¤¿à¤¯ करें</description>
@@ -135,9 +150,12 @@
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ WiFi 设备</description>
<message>System policy prevents enabling or disabling WiFi devices</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за безжични мрежи</message>
+ <message xml:lang="ca">La política del sistema impedeix habilitar o inhabilitar els dispositius Wi-Fi</message>
<message xml:lang="cs">Systémová politika zamezuje povolit nebo zakázat zařízení WiFi</message>
+ <message xml:lang="da">Systempolitik forhindrer aktivering eller deaktivering af WiFi-enheder</message>
<message xml:lang="de">Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung von WLAN-Geräten</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει ενεÏγοποίηση ή απενεÏγοποίηση συσκευών Î±Î½Î¿Î¹Ï‡Ï„Î¿Ï Î±ÏƒÏÏματου δικτÏου (WiFi)</message>
+ <message xml:lang="eo">Sistempolitiko preventas enÅalton aÅ­ malÅalton de WiFi-aparatoj</message>
<message xml:lang="es">La poliÌtica de sistema evita activar o desactivar los dispositivos inalaÌmbricos</message>
<message xml:lang="gl">A normativa do sistema evita a activación e desactivación dos dispositivos WiFi</message>
<message xml:lang="hi">WiFi यà¥à¤•à¥à¤¤à¤¿ के सकà¥à¤°à¤¿à¤¯à¤£ या निषà¥à¤•à¥à¤°à¤¿à¤¯à¤£ को तंतà¥à¤° नीति रोकता है</message>
@@ -164,9 +182,12 @@
<action id="org.freedesktop.NetworkManager.enable-disable-wwan">
<description>Enable or disable mobile broadband devices</description>
<description xml:lang="bg">Включване и изключване на уÑтройÑтва за доÑтъп до мобилни мрежи</description>
+ <description xml:lang="ca">Habilita o inhabilita els dispositius de banda ampla mòbil</description>
<description xml:lang="cs">Povolit nebo zakázat mobilní širokopásmová zařízení</description>
+ <description xml:lang="da">Aktiver eller deaktiver mobile bredbåndsenheder</description>
<description xml:lang="de">Mobile Breitbandgeräte aktivieren oder deaktivieren</description>
<description xml:lang="el">ΕνεÏγοποίηση ή απενεÏγοποίηση συσκευών ευÏυζωνικότητας κινητής τηλεφωνίας</description>
+ <description xml:lang="eo">EnÅalti aÅ­ elÅalti poÅtelefonajn larÄkapacitajn aparatojn</description>
<description xml:lang="es">Activar o desactivar los dispositivos de banda ancha moÌvil</description>
<description xml:lang="gl">Activar ou desactivar os dispositivos de banda ancha móbiles</description>
<description xml:lang="hi">मोबाइल बà¥à¤°à¤¾à¤¡à¤¬à¥ˆà¤‚ड यà¥à¤•à¥à¤¤à¤¿à¤¯à¤¾à¤ सकà¥à¤°à¤¿à¤¯ या निषà¥à¤•à¥à¤°à¤¿à¤¯ करें</description>
@@ -186,9 +207,12 @@
<description xml:lang="zh_CN">å¯ç”¨æˆ–ç¦ç”¨ç§»åŠ¨å®½å¸¦è®¾å¤‡</description>
<message>System policy prevents enabling or disabling mobile broadband devices</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва включване и изключване на уÑтройÑтва за мобилни мрежи</message>
+ <message xml:lang="ca">La política del sistema impedeix habilitar o inhabilitar els dispositius de banda ampla mòbil</message>
<message xml:lang="cs">Systémová politika zamezuje povolení nebo zakázání mobilních širokopásmových zařízení</message>
+ <message xml:lang="da">Systempolitik forhindrer aktivering eller deaktivering af mobile bredbåndsenheder</message>
<message xml:lang="de">Die Systemrichtlinien verhindern die Aktivierung oder Deaktivierung mobiler Breitbandgeräte</message>
<message xml:lang="el">Η πολιτική του συστήματος δεν επιτÏέπει την ενεÏγοποίηση ή απενεÏγοποίηση συσκευών ευÏυζωνικότητας κινητής τηλεφωνίας</message>
+ <message xml:lang="eo">Sistempolitiko preventas enÅalton aÅ­ malÅalton de poÅtelefonaj larÄkapacitaj aparatoj</message>
<message xml:lang="es">La poliÌtica del sistema evita activar o desactivar los dispositivos de banda ancha moÌvil</message>
<message xml:lang="gl">A normativa do sistema evita a activación ou desactivación dos dispositivos de banda ancha.</message>
<message xml:lang="hi">मोबाइल बà¥à¤°à¥‰à¤¡à¤¬à¥ˆà¤‚ड यà¥à¤•à¥à¤¤à¤¿ के सकà¥à¤°à¤¿à¤¯à¤£ या निषà¥à¤•à¥à¤°à¤¿à¤¯à¤£ को तंतà¥à¤° नीति रोकता है</message>
@@ -215,9 +239,12 @@
<action id="org.freedesktop.NetworkManager.use-user-connections">
<description>Allow use of user-specific connections</description>
<description xml:lang="bg">Разрешаване на използването на потребителÑки връзки</description>
+ <description xml:lang="ca">Permet l'ús de connexions específiques per a cada usuari</description>
<description xml:lang="cs">Povolit použití uživatelem specifikovaných připojení</description>
+ <description xml:lang="da">Tillad brug af brugerspecifikke forbindelser</description>
<description xml:lang="de">Die Verwendung von benutzerspezifischen Verbindungen erlauben</description>
<description xml:lang="el">Îα επιτÏέπεται η χÏήση συνδέσεων συγκεκÏιμένων για το χÏήστη</description>
+ <description xml:lang="eo">Permesi uzon de specifaj konektoj por uzantoj</description>
<description xml:lang="es">Permitir el uso de conexiones especiÌficas de usuario</description>
<description xml:lang="gl">Permitir o uso de conexións específicas do usuario</description>
<description xml:lang="hi">उपयोकà¥à¤¤à¤¾ विशिषà¥à¤Ÿ कनेकà¥à¤¶à¤¨ के उपयोग की सà¥à¤µà¥€à¤•à¥ƒà¤¤à¤¿ दें</description>
@@ -237,9 +264,12 @@
<description xml:lang="zh_CN">å…许用户连接</description>
<message>System policy prevents use of user-specific connections</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва използване на потребителÑки връзки</message>
+ <message xml:lang="ca">La política del sistema impedeix la utilització de connexions específiques per a cada usuari</message>
<message xml:lang="cs">Systémová politika zamezuje použití uživatelsky specifikovaných připojení</message>
+ <message xml:lang="da">Systempolitik forhindrer brug af brugerspecifikke forbindelser</message>
<message xml:lang="de">Die Systemrichtlinien verhindern die Verwendung von benutzerspezifischen Verbindungen</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει τη χÏήση συνδέσεων συγκεκÏιμένων για κάθε χÏήστη</message>
+ <message xml:lang="eo">Sistempolitiko preventas uzon de uzant-specifaj konektoj</message>
<message xml:lang="es">La poliÌtica del sistema evita el uso de conexiones especiÌficas de usuario</message>
<message xml:lang="gl">A normativa do sistema evita o uso de conexións específicas do usuario</message>
<message xml:lang="hi">सिसà¥à¤Ÿà¤® नीति उपयोकà¥à¤¤à¤¾ विशेष कनेकà¥à¤¶à¤¨ के उपयोग को रोकता है</message>
@@ -266,9 +296,12 @@
<action id="org.freedesktop.NetworkManager.network-control">
<description>Allow control of network connections</description>
<description xml:lang="bg">Разрешаване на управлението на мрежовите връзки</description>
+ <description xml:lang="ca">Permet el control de les connexions de xarxa</description>
<description xml:lang="cs">Povolit ovládání síťových připojení</description>
+ <description xml:lang="da">Tillad kontrol af netværksforbindelser</description>
<description xml:lang="de">Die Kontrolle von Netzwerkverbindungen erlauben</description>
<description xml:lang="el">Îα επιτÏέπεται ο έλεγχος των συνδέσεων δικτÏου</description>
+ <description xml:lang="eo">Permesi kontrolon de retkonektoj</description>
<description xml:lang="es">Permitir controlar las conexiones de red</description>
<description xml:lang="gl">Permitir o control das conexións de rede</description>
<description xml:lang="hi">संजाल कनेकà¥à¤¶à¤¨ के नियंतà¥à¤°à¤£ सà¥à¤µà¥€à¤•à¤¾à¤° करें</description>
@@ -288,9 +321,12 @@
<description xml:lang="zh_CN">å…许控制网络连接</description>
<message>System policy prevents control of network connections</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва управлÑване на мрежовите връзки</message>
+ <message xml:lang="ca">La política del sistema impedeix el control de les connexions de xarxa</message>
<message xml:lang="cs">Systémová politika zamezuje ovládání síťových připojení</message>
+ <message xml:lang="da">Systempolitik forhindrer kontrol af netværksforbindelser</message>
<message xml:lang="de">Die Systemrichtlinien verhindern die Kontrolle von Netzwerkverbindungen</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει τον έλεγχο των συνδέσεων δικτÏου</message>
+ <message xml:lang="eo">Sistempolitiko preventas kontrolon de retkonektoj</message>
<message xml:lang="es">La poliÌtica de sistema evita el control de las conexiones de red</message>
<message xml:lang="gl">A normativa do sistema evita o control das conexións de rede</message>
<message xml:lang="hi">सिसà¥à¤Ÿà¤® कनेकà¥à¤¶à¤¨ के नियंतà¥à¤°à¤£ को सिसà¥à¤Ÿà¤® नीति रोकता है</message>
diff --git a/policy/org.freedesktop.network-manager-settings.system.policy b/policy/org.freedesktop.network-manager-settings.system.policy
index a78e8ff2a..91c7cceb9 100644
--- a/policy/org.freedesktop.network-manager-settings.system.policy
+++ b/policy/org.freedesktop.network-manager-settings.system.policy
@@ -13,10 +13,13 @@
<description xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à§° সংযোগ পৰিবৰà§à¦¤à¦¨ কৰক</description>
<description xml:lang="bg">ПромÑна на ÑиÑтемни връзки</description>
<description xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡à¦° সংযোগ পরিবরà§à¦¤à¦¨ করà§à¦¨</description>
+ <description xml:lang="ca">Modifica les connexions del sistema</description>
<description xml:lang="cs">Měnit systémová připojení</description>
+ <description xml:lang="da">Ændr systemforbindelser</description>
<description xml:lang="de">Systemverbindungen bearbeiten</description>
<description xml:lang="el">ΤÏοποποίηση συνδέσεων συστήματος</description>
<description xml:lang="en_GB">Modify system connections</description>
+ <description xml:lang="eo">Modifi sistemajn konektojn</description>
<description xml:lang="es">Modificar conexiones de sistema</description>
<description xml:lang="eu">Aldatu sistemako konexioak</description>
<description xml:lang="fr">Modifier les connexions système</description>
@@ -49,10 +52,13 @@
<message xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à¦¤ বà§à¦¯à§±à¦¹à§ƒà¦¤ নিয়ম-নীতিৰ বিধিনিষেধৰ কাৰণে পà§à§°à¦£à¦¾à¦²à§€à§° বৈশিষà§à¦Ÿà§à¦¯ পৰিবৰà§à¦¤à¦¨ কৰা সমà§à¦­à§± নহয়</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва промÑна на ÑиÑтемните наÑтройки</message>
<message xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ নিয়ম-নীতির বিধিনিষেধের কারণে সিসà§à¦Ÿà§‡à¦®à§‡à¦° বৈশিষà§à¦Ÿà§à¦¯ পরিবরà§à¦¤à¦¨ করা সমà§à¦­à¦¬ নয়</message>
+ <message xml:lang="ca">La política del sistema impedeix la modificació dels paràmetres del sistema</message>
<message xml:lang="cs">Systémová politika zabránila změně systémového nastavení</message>
+ <message xml:lang="da">Systempolitikken forhindrer modifikation af systemindstillinger</message>
<message xml:lang="de">Die Systemrichtlinien verhindern das Bearbeiten von Systemeinstellungen</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει Ï„Ïοποποίηση των Ïυθμίσεων συστήματος</message>
<message xml:lang="en_GB">System policy prevents modification of system settings</message>
+ <message xml:lang="eo">Sistempolico preventas modifadon de sistemagordoj</message>
<message xml:lang="es">Política de sistema evita modificación de configuración de sistema</message>
<message xml:lang="eu">Sistemako arauek sistemako ezarpenak aldatzea saihesten dute</message>
<message xml:lang="fr">La stratégie du système empêche toute modification des paramètres du système</message>
@@ -92,10 +98,13 @@
<description xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à§° সà§à¦¥à¦¾à§Ÿà§€ গৃহসà§à¦¥à§° নাম পৰিবৰà§à¦¤à¦¨ কৰক</description>
<description xml:lang="bg">ПромÑна на името на хоÑта</description>
<description xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡à¦° সà§à¦¥à¦¾à§Ÿà§€ হোসà§à¦Ÿ-নেম পরিবরà§à¦¤à¦¨ করà§à¦¨</description>
+ <description xml:lang="ca">Modifica el nom de l'ordinador de forma permanent</description>
<description xml:lang="cs">MÄ›nit trvalý systémový název poÄítaÄe</description>
+ <description xml:lang="da">Ændr fast systemværtsnavn</description>
<description xml:lang="de">Den ständigen Rechnernamen des Systems bearbeiten</description>
<description xml:lang="el">Αλλαγή πάγιου ονόματος συστήματος</description>
<description xml:lang="en_GB">Modify persistent system hostname</description>
+ <description xml:lang="eo">Modifi permanentan sisteman gastigan nomon</description>
<description xml:lang="es">Modificar nombre de host de sistema persistente</description>
<description xml:lang="eu">Aldatu sistemako ostalari-izen iraunkorra</description>
<description xml:lang="fr">Modifier le nom d'hôte du système persistant</description>
@@ -128,10 +137,13 @@
<message xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à¦¤ বà§à¦¯à§±à¦¹à§ƒà¦¤ নিয়ম-নীতিৰ বিধি নিষেধৰ কাৰণে পà§à§°à¦£à¦¾à¦²à§€à§° সà§à¦¥à¦¾à§Ÿà§€ গৃহসà§à¦¥à§° নাম পৰিবৰà§à¦¤à¦¨ কৰা সমà§à¦­à§± নহয়</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва промÑна на името на хоÑта</message>
<message xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ নিয়ম-নীতির বিধিনিষেধের কারণে সিসà§à¦Ÿà§‡à¦®à§‡à¦° সà§à¦¥à¦¾à§Ÿà§€ হোসà§à¦Ÿ-নেম পরিবরà§à¦¤à¦¨ করা সমà§à¦­à¦¬ নয়</message>
+ <message xml:lang="ca">La política del sistema impedeix la modificació del nom de l'ordinador de forma permanent</message>
<message xml:lang="cs">Systémová politika zabránila zmÄ›nÄ› trvalého systémového názvu poÄítaÄe</message>
+ <message xml:lang="da">Systempolitikken forhindrer ændring af det faste systemværtsnavn</message>
<message xml:lang="de">Die Systemrichtlinien verhindern das Bearbeiten des ständigen Rechnernamens des Systems</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει Ï„Ïοποποίηση του πάγιου ονόματος συστήματος</message>
<message xml:lang="en_GB">System policy prevents modification of the persistent system hostname</message>
+ <message xml:lang="eo">Sistempolico preventas modifadon de la konstanta sistem-gastnomo</message>
<message xml:lang="es">Política de sistema evita modificación de nombre de host de sistema persistente</message>
<message xml:lang="eu">Sistemako arauek sistemako ostalari-izen iraunkorra aldatzea saihesten dute</message>
<message xml:lang="fr">La stratégie du système empêche toute modification du nom d'hôte du système persistant</message>
@@ -171,10 +183,13 @@
<description xml:lang="as">নিৰাপদ ৱাই-ফাইলৈ নে'টৱৰà§à¦•à§° মাধà§à¦¯à¦®à§‡ সংযোগৰ যৌথ বà§à¦¯à§±à¦¹à¦¾à§°</description>
<description xml:lang="bg">СподелÑне на връзката през защитена безжична мрежа</description>
<description xml:lang="bn_IN">নিরাপদ ওয়াই-ফাইল নেটওয়ারà§à¦•à§‡à¦° মাধà§à¦¯à¦®à§‡ সংযোগের যৌথ বà§à¦¯à¦¬à¦¹à¦¾à¦°</description>
+ <description xml:lang="ca">Connexió compartida mitjançant una xarxa Wi-Fi protegida</description>
<description xml:lang="cs">Sdílení připojení přes chráněnou síť WiFi</description>
+ <description xml:lang="da">Deling af forbindelse via et beskyttet WiFi-netværk</description>
<description xml:lang="de">Verbindungsfreigabe über ein geschütztes WLAN-Netzwerk</description>
<description xml:lang="el">Κοινή χÏήση σÏνδεσης μέσω Ï€Ïοστατευμένου ασÏÏματου δικτÏου</description>
<description xml:lang="en_GB">Connection sharing via a protected Wi-Fi network</description>
+ <description xml:lang="eo">Kundivido de konektoj per protektita WiFi-reto</description>
<description xml:lang="es">Compartir conexión a través de una red WIFI protegida</description>
<description xml:lang="eu">Konexio partekatua babestutako haririk gabeko sarearen bidez</description>
<description xml:lang="fr">Partage de connexion via un réseau WiFi protégé</description>
@@ -207,10 +222,13 @@
<message xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à§° নিয়মনীতিয়ে নিৰাপদ ৱাই-ফাই নে'টৱৰà§à¦•à§° মাধà§à¦¯à¦®à§‡ সংযোগৰ যৌথ বà§à¦¯à§±à¦¹à¦¾à§° পà§à§°à¦¤à¦¿à§°à§‹à¦§ কৰিছে</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва ÑподелÑне на връзки през защитена безжична мрежа</message>
<message xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡à¦° নিয়মনীতির কারণে, নিরাপদ ওয়াই-ফাই নেটওয়ারà§à¦•à§‡à¦° মাধà§à¦¯à¦®à§‡ সংযোগের যৌথ বà§à¦¯à¦¬à¦¹à¦¾à¦° পà§à¦°à¦¤à¦¿à¦°à§‹à¦§ করা হয়েছে</message>
+ <message xml:lang="ca">La política del sistema impedeix compartir connexions mitjançant una xarxa Wi-Fi protegida</message>
<message xml:lang="cs">Systémová politika zabránila sdílení připojení přes chráněnou síť WiFi</message>
+ <message xml:lang="da">Systempolitikken forhindrer deling af forbindelser via et beskyttet WiFi-netværk</message>
<message xml:lang="de">Die Systemrichtlinien verhindern Verbindungsfreigaben über ein geschütztes WLAN-Netzwerk</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει κοινή χÏήση συνδέσεων μέσω Ï€Ïοστατευμένου ασÏÏματου δικτÏου</message>
<message xml:lang="en_GB">System policy prevents sharing connections via a protected Wi-Fi network</message>
+ <message xml:lang="eo">Sistempolico preventas kundividon de konektoj per protektita WiFi-reto</message>
<message xml:lang="es">Política de sistema evita compartir conexiones a través de una red WIFI protegida</message>
<message xml:lang="eu">Sistemako arauek babestutako haririk gabeko sareen bidez konexioak partekatzea saihesten dute</message>
<message xml:lang="fr">La stratégie du système empêche tout partage des connexions via un réseau WiFi protégé</message>
@@ -250,10 +268,13 @@
<description xml:lang="as">উনà§à¦®à§à¦•à§à¦¤ ৱাই-ফাই নে'টৱৰà§à¦•à§° মাধà§à¦¯à¦®à§‡ সংযোগৰ যৌথ বà§à¦¯à§±à¦¹à¦¾à§°</description>
<description xml:lang="bg">СподелÑне на връзката през отворена безжична мрежа</description>
<description xml:lang="bn_IN">উনà§à¦®à§à¦•à§à¦¤ ওয়াই-ফাইল নেটওয়ারà§à¦•à§‡à¦° মাধà§à¦¯à¦®à§‡ সংযোগের যৌথ বà§à¦¯à¦¬à¦¹à¦¾à¦°</description>
+ <description xml:lang="ca">Connexió compartida mitjançant una xarxa Wi-Fi oberta</description>
<description xml:lang="cs">Sdílení připojení přes otevřenou síť WiFi</description>
+ <description xml:lang="da">Deling af forbindelse via et åbent WiFi-netværk</description>
<description xml:lang="de">Verbindungsfreigabe über ein offenes WLAN-Netzwerk</description>
<description xml:lang="el">Κοινή χÏήση σÏνδεσης μέσω Î±Î½Î¿Î¹Ï‡Ï„Î¿Ï Î±ÏƒÏÏματου δικτÏου</description>
<description xml:lang="en_GB">Connection sharing via an open Wi-Fi network</description>
+ <description xml:lang="eo">Kundivido de konektoj per malferma WiFi-reto</description>
<description xml:lang="es">Compartir conexión a través de una red WIFI abierta</description>
<description xml:lang="eu">Konexio partekatua irekitako haririk gabeko sarearen bidez</description>
<description xml:lang="fr">Partage de connexion via un réseau WiFi ouvert</description>
@@ -286,10 +307,13 @@
<message xml:lang="as">পà§à§°à¦£à¦¾à¦²à§€à§° নিয়মনীতিয়ে উনà§à¦®à§à¦•à§à¦¤ ৱাই-ফাই নে'টৱৰà§à¦•à§° মাধà§à¦¯à¦®à§‡ সংযোগৰ যৌথ বà§à¦¯à§±à¦¹à¦¾à§° পà§à§°à¦¤à¦¿à§°à§‹à¦§ কৰিছে</message>
<message xml:lang="bg">Политиката на ÑиÑтемата не позволÑва ÑподелÑне на връзки през отворена безжична мрежа</message>
<message xml:lang="bn_IN">সিসà§à¦Ÿà§‡à¦®à§‡à¦° নিয়মনীতির কারণে, উনà§à¦®à§à¦•à§à¦¤ ওয়াই-ফাই নেটওয়ারà§à¦•à§‡à¦° মাধà§à¦¯à¦®à§‡ সংযোগের যৌথ বà§à¦¯à¦¬à¦¹à¦¾à¦° পà§à¦°à¦¤à¦¿à¦°à§‹à¦§ করা হয়েছে</message>
+ <message xml:lang="ca">La política del sistema impedeix compartir connexions mitjançant una xarxa Wi-Fi oberta</message>
<message xml:lang="cs">Systémová politika zabránila sdílení připojení přes otevřenou síť WiFi</message>
+ <message xml:lang="da">Systempolitikken forhindrer deling af forbindelser via et åbent WiFi-netværk</message>
<message xml:lang="de">Die Systemrichtlinien verhindern Verbindungsfreigaben über ein offenes WLAN-Netzwerk</message>
<message xml:lang="el">Η πολιτική συστήματος δεν επιτÏέπει κοινή χÏήση συνδέσεων μέσω Î±Î½Î¿Î¹Ï‡Ï„Î¿Ï Î±ÏƒÏÏματου δικτÏου</message>
<message xml:lang="en_GB">System policy prevents sharing connections via an open Wi-Fi network</message>
+ <message xml:lang="eo">Sistempolitiko preventas kundividon de konektoj per malferma WiFi-reto</message>
<message xml:lang="es">Política de sistema evita compartir conexiones a través de una red WIFI abierta</message>
<message xml:lang="eu">Sistemako arauek irakitako haririk gabeko sareen bidez konexioak partekatzea saihesten dute</message>
<message xml:lang="fr">La stratégie du système empêche tout partage des connexions via un réseau WiFi ouvert</message>
diff --git a/src/Makefile.am b/src/Makefile.am
index 8c01df0fb..d7dccaaf1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -275,8 +275,10 @@ EXTRA_DIST = \
$(NetworkManager_DATA)
rundir=$(localstatedir)/run/NetworkManager
+statedir=$(localstatedir)/lib/NetworkManager
install-data-hook:
$(mkinstalldirs) -m 0700 $(DESTDIR)$(rundir)
+ $(mkinstalldirs) -m 0700 $(DESTDIR)$(statedir)
CLEANFILES = $(BUILT_SOURCES)
diff --git a/src/Makefile.in b/src/Makefile.in
index 17e8158c1..bf4895913 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -323,6 +323,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -337,6 +341,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -634,6 +639,7 @@ EXTRA_DIST = \
$(NetworkManager_DATA)
rundir = $(localstatedir)/run/NetworkManager
+statedir = $(localstatedir)/lib/NetworkManager
CLEANFILES = $(BUILT_SOURCES)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -1833,6 +1839,7 @@ nm-device-gsm-glue.h: $(top_srcdir)/introspection/nm-device-gsm.xml
$(AM_V_GEN) dbus-binding-tool --prefix=nm_device_gsm --mode=glib-server --output=$@ $<
install-data-hook:
$(mkinstalldirs) -m 0700 $(DESTDIR)$(rundir)
+ $(mkinstalldirs) -m 0700 $(DESTDIR)$(statedir)
# 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/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index 10240960b..3a28467cc 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -370,6 +370,13 @@ nm_utils_merge_ip6_config (NMIP6Config *ip6_config, NMSettingIP6Config *setting)
nm_ip6_config_set_never_default (ip6_config, TRUE);
}
+static void
+dispatcher_done_cb (DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data)
+{
+ dbus_g_proxy_end_call (proxy, call, NULL, G_TYPE_INVALID);
+ g_object_unref (proxy);
+}
+
void
nm_utils_call_dispatcher (const char *action,
NMConnection *connection,
@@ -448,18 +455,25 @@ nm_utils_call_dispatcher (const char *action,
value_hash_add_object_path (device_props, NMD_DEVICE_PROPS_PATH, nm_device_get_path (device));
}
- dbus_g_proxy_call_no_reply (proxy, "Action",
- G_TYPE_STRING, action,
- DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, connection_hash,
- DBUS_TYPE_G_MAP_OF_VARIANT, connection_props,
- DBUS_TYPE_G_MAP_OF_VARIANT, device_props,
- G_TYPE_INVALID);
-
- g_object_unref (proxy);
+ /* Do a non-blocking call, but wait for the reply, because dbus-glib
+ * sometimes needs time to complete internal housekeeping. If we use
+ * dbus_g_proxy_call_no_reply(), that housekeeping (specifically the
+ * GetNameOwner response) doesn't complete and we run into an assert
+ * on unreffing the proxy.
+ */
+ dbus_g_proxy_begin_call_with_timeout (proxy, "Action",
+ dispatcher_done_cb,
+ dbus_mgr,
+ g_object_unref,
+ 5000,
+ G_TYPE_STRING, action,
+ DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT, connection_hash,
+ DBUS_TYPE_G_MAP_OF_VARIANT, connection_props,
+ DBUS_TYPE_G_MAP_OF_VARIANT, device_props,
+ G_TYPE_INVALID);
g_hash_table_destroy (connection_hash);
g_hash_table_destroy (connection_props);
g_hash_table_destroy (device_props);
- g_object_unref (dbus_mgr);
}
gboolean
diff --git a/src/backends/Makefile.am b/src/backends/Makefile.am
index 036dc6de3..fbec9aaf8 100644
--- a/src/backends/Makefile.am
+++ b/src/backends/Makefile.am
@@ -57,6 +57,10 @@ if TARGET_LINEXA
libnmbackend_la_SOURCES += NetworkManagerLinexa.c
endif
+if TARGET_EXHERBO
+libnmbackend_la_SOURCES += NetworkManagerExherbo.c
+endif
+
libnmbackend_la_LIBADD += \
$(top_builddir)/src/logging/libnm-logging.la \
$(DBUS_LIBS) \
diff --git a/src/backends/Makefile.in b/src/backends/Makefile.in
index 54ad6ce90..3a640dc82 100644
--- a/src/backends/Makefile.in
+++ b/src/backends/Makefile.in
@@ -46,6 +46,7 @@ host_triplet = @host@
@TARGET_MANDRIVA_TRUE@am__append_10 = NetworkManagerMandriva.c
@TARGET_PARDUS_TRUE@am__append_11 = NetworkManagerPardus.c
@TARGET_LINEXA_TRUE@am__append_12 = NetworkManagerLinexa.c
+@TARGET_EXHERBO_TRUE@am__append_13 = NetworkManagerExherbo.c
subdir = src/backends
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -72,7 +73,8 @@ am__libnmbackend_la_SOURCES_DIST = NetworkManagerGeneric.c \
NetworkManagerDebian.c NetworkManagerSlackware.c \
NetworkManagerArch.c NetworkManagerPaldo.c \
NetworkManagerFrugalware.c NetworkManagerMandriva.c \
- NetworkManagerPardus.c NetworkManagerLinexa.c
+ NetworkManagerPardus.c NetworkManagerLinexa.c \
+ NetworkManagerExherbo.c
@TARGET_REDHAT_TRUE@am__objects_1 = \
@TARGET_REDHAT_TRUE@ libnmbackend_la-NetworkManagerRedHat.lo
@TARGET_SUSE_TRUE@am__objects_2 = \
@@ -92,11 +94,13 @@ am__libnmbackend_la_SOURCES_DIST = NetworkManagerGeneric.c \
@TARGET_PARDUS_TRUE@ libnmbackend_la-NetworkManagerPardus.lo
@TARGET_LINEXA_TRUE@am__objects_11 = \
@TARGET_LINEXA_TRUE@ libnmbackend_la-NetworkManagerLinexa.lo
+@TARGET_EXHERBO_TRUE@am__objects_12 = \
+@TARGET_EXHERBO_TRUE@ libnmbackend_la-NetworkManagerExherbo.lo
am_libnmbackend_la_OBJECTS = libnmbackend_la-NetworkManagerGeneric.lo \
$(am__objects_1) $(am__objects_2) $(am__objects_3) \
$(am__objects_4) $(am__objects_5) $(am__objects_6) \
$(am__objects_7) $(am__objects_8) $(am__objects_9) \
- $(am__objects_10) $(am__objects_11)
+ $(am__objects_10) $(am__objects_11) $(am__objects_12)
libnmbackend_la_OBJECTS = $(am_libnmbackend_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -224,6 +228,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -238,6 +246,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -325,7 +334,8 @@ libnmbackend_la_SOURCES = NetworkManagerGeneric.c \
NetworkManagerGeneric.h $(am__append_1) $(am__append_2) \
$(am__append_3) $(am__append_4) $(am__append_5) \
$(am__append_6) $(am__append_7) $(am__append_8) \
- $(am__append_10) $(am__append_11) $(am__append_12)
+ $(am__append_10) $(am__append_11) $(am__append_12) \
+ $(am__append_13)
libnmbackend_la_LIBADD = $(am__append_9) \
$(top_builddir)/src/logging/libnm-logging.la $(DBUS_LIBS) \
$(GLIB_LIBS)
@@ -391,6 +401,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerArch.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerDebian.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerExherbo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerFrugalware.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerGeneric.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnmbackend_la-NetworkManagerGentoo.Plo@am__quote@
@@ -525,6 +536,14 @@ libnmbackend_la-NetworkManagerLinexa.lo: NetworkManagerLinexa.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnmbackend_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnmbackend_la-NetworkManagerLinexa.lo `test -f 'NetworkManagerLinexa.c' || echo '$(srcdir)/'`NetworkManagerLinexa.c
+libnmbackend_la-NetworkManagerExherbo.lo: NetworkManagerExherbo.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnmbackend_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnmbackend_la-NetworkManagerExherbo.lo -MD -MP -MF $(DEPDIR)/libnmbackend_la-NetworkManagerExherbo.Tpo -c -o libnmbackend_la-NetworkManagerExherbo.lo `test -f 'NetworkManagerExherbo.c' || echo '$(srcdir)/'`NetworkManagerExherbo.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnmbackend_la-NetworkManagerExherbo.Tpo $(DEPDIR)/libnmbackend_la-NetworkManagerExherbo.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='NetworkManagerExherbo.c' object='libnmbackend_la-NetworkManagerExherbo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnmbackend_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libnmbackend_la-NetworkManagerExherbo.lo `test -f 'NetworkManagerExherbo.c' || echo '$(srcdir)/'`NetworkManagerExherbo.c
+
mostlyclean-libtool:
-rm -f *.lo
diff --git a/src/backends/NetworkManagerExherbo.c b/src/backends/NetworkManagerExherbo.c
new file mode 100644
index 000000000..d7e24cf60
--- /dev/null
+++ b/src/backends/NetworkManagerExherbo.c
@@ -0,0 +1,64 @@
+/* NetworkManager -- Network link manager
+ *
+ * Dan Williams <dcbw@redhat.com>
+ * Dan Willemsen <dan@willemsen.us>
+ * Robert Paskowitz
+ *
+ * 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 2004 Red Hat, Inc.
+ * (C) Copyright 2004 Dan Willemsen
+ * (C) Copyright 2004 Robert Paskowitz
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "NetworkManagerGeneric.h"
+#include "nm-system.h"
+#include "NetworkManagerUtils.h"
+#include "nm-logging.h"
+
+/*
+ * nm_system_enable_loopback
+ *
+ * Bring up the loopback interface
+ *
+ */
+void nm_system_enable_loopback (void)
+{
+ nm_generic_enable_loopback ();
+}
+
+/*
+ * nm_system_update_dns
+ *
+ * Make glibc/nscd aware of any changes to the resolv.conf file by
+ * restarting nscd. Only restart if already running.
+ *
+ */
+void nm_system_update_dns (void)
+{
+ if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
+ nm_log_info (LOGD_DNS, "Clearing nscd hosts cache.");
+ nm_spawn_process ("/usr/sbin/nscd -i hosts");
+ }
+}
+
diff --git a/src/backends/NetworkManagerGentoo.c b/src/backends/NetworkManagerGentoo.c
index 8d9e68c59..e5b09384e 100644
--- a/src/backends/NetworkManagerGentoo.c
+++ b/src/backends/NetworkManagerGentoo.c
@@ -30,12 +30,22 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <gio/gio.h>
#include "NetworkManagerGeneric.h"
#include "nm-system.h"
#include "NetworkManagerUtils.h"
#include "nm-logging.h"
+#define BUFFER_SIZE 512
+
+static void openrc_start_lo_if_necessary()
+{
+ /* No need to run net.lo if it is already running */
+ if (nm_spawn_process ("/etc/init.d/net.lo status") != 0)
+ nm_spawn_process ("/etc/init.d/net.lo start");
+}
+
/*
* nm_system_enable_loopback
*
@@ -44,9 +54,27 @@
*/
void nm_system_enable_loopback (void)
{
- /* No need to run net.lo if it is already running */
- if (nm_spawn_process ("/etc/init.d/net.lo status") != 0)
- nm_spawn_process("/etc/init.d/net.lo start");
+ gchar *comm;
+
+ /* If anything goes wrong trying to open /proc/1/comm, we will assume
+ OpenRC. */
+ if (!g_file_get_contents ("/proc/1/comm", &comm, NULL, NULL)) {
+ nm_log_info (LOGD_CORE, "NetworkManager is running with OpenRC...");
+ openrc_start_lo_if_necessary ();
+ return;
+ }
+
+ if (g_strstr_len (comm, -1, "systemd")) {
+ /* We use the generic loopback enabler if using systemd. */
+ nm_log_info (LOGD_CORE, "NetworkManager is running with systemd...");
+ nm_generic_enable_loopback ();
+ } else {
+ /* OpenRC otherwise. */
+ nm_log_info (LOGD_CORE, "NetworkManager is running with OpenRC...");
+ openrc_start_lo_if_necessary();
+ }
+
+ g_free (comm);
}
/*
diff --git a/src/bluez-manager/Makefile.in b/src/bluez-manager/Makefile.in
index 9edc68b11..f7ca0b4de 100644
--- a/src/bluez-manager/Makefile.in
+++ b/src/bluez-manager/Makefile.in
@@ -186,6 +186,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -200,6 +204,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/dhcp-manager/Makefile.am b/src/dhcp-manager/Makefile.am
index e29c6718a..14ddde0bd 100644
--- a/src/dhcp-manager/Makefile.am
+++ b/src/dhcp-manager/Makefile.am
@@ -1,3 +1,5 @@
+SUBDIRS=. tests
+
INCLUDES = \
-I${top_srcdir} \
-I${top_srcdir}/include \
@@ -6,15 +8,40 @@ INCLUDES = \
-I${top_srcdir}/libnm-util \
-I${top_srcdir}/src
-noinst_LTLIBRARIES = libdhcp-manager.la
+noinst_LTLIBRARIES = libdhcp-manager.la libdhcp-dhclient.la
+
+################## dhclient ##################
+
+libdhcp_dhclient_la_SOURCES = \
+ nm-dhcp-dhclient-utils.h \
+ nm-dhcp-dhclient-utils.c \
+ nm-dhcp-dhclient.h \
+ nm-dhcp-dhclient.c
+
+libdhcp_dhclient_la_CPPFLAGS = \
+ $(DBUS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ -DG_DISABLE_DEPRECATED \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DLOCALSTATEDIR=\"$(localstatedir)\" \
+ -DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
+ -DDHCLIENT_V$(DHCLIENT_VERSION)
+
+libdhcp_dhclient_la_LIBADD = \
+ $(top_builddir)/marshallers/libmarshallers.la \
+ $(top_builddir)/src/logging/libnm-logging.la \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(DBUS_LIBS) \
+ $(GLIB_LIBS)
+
+################## main lib ##################
libdhcp_manager_la_SOURCES = \
nm-dhcp-client.c \
nm-dhcp-client.h \
nm-dhcp-manager.c \
nm-dhcp-manager.h \
- nm-dhcp-dhclient.h \
- nm-dhcp-dhclient.c \
nm-dhcp-dhcpcd.h \
nm-dhcp-dhcpcd.c
@@ -22,18 +49,15 @@ libdhcp_manager_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
$(GLIB_CFLAGS) \
-DG_DISABLE_DEPRECATED \
- -DBINDIR=\"$(bindir)\" \
- -DDATADIR=\"$(datadir)\" \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
-DLIBEXECDIR=\"$(libexecdir)\" \
-DLOCALSTATEDIR=\"$(localstatedir)\" \
-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
- -DDHCLIENT_V$(DHCLIENT_VERSION) \
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\"
libdhcp_manager_la_LIBADD = \
$(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/src/logging/libnm-logging.la \
+ $(builddir)/libdhcp-dhclient.la \
$(DBUS_LIBS) \
$(GLIB_LIBS)
diff --git a/src/dhcp-manager/Makefile.in b/src/dhcp-manager/Makefile.in
index 4a7cc29b4..733023198 100644
--- a/src/dhcp-manager/Makefile.in
+++ b/src/dhcp-manager/Makefile.in
@@ -51,18 +51,27 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
am__DEPENDENCIES_1 =
+libdhcp_dhclient_la_DEPENDENCIES = \
+ $(top_builddir)/marshallers/libmarshallers.la \
+ $(top_builddir)/src/logging/libnm-logging.la \
+ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_libdhcp_dhclient_la_OBJECTS = \
+ libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo \
+ libdhcp_dhclient_la-nm-dhcp-dhclient.lo
+libdhcp_dhclient_la_OBJECTS = $(am_libdhcp_dhclient_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
libdhcp_manager_la_DEPENDENCIES = \
$(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/src/logging/libnm-logging.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(builddir)/libdhcp-dhclient.la $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libdhcp_manager_la_OBJECTS = libdhcp_manager_la-nm-dhcp-client.lo \
libdhcp_manager_la-nm-dhcp-manager.lo \
- libdhcp_manager_la-nm-dhcp-dhclient.lo \
libdhcp_manager_la-nm-dhcp-dhcpcd.lo
libdhcp_manager_la_OBJECTS = $(am_libdhcp_manager_la_OBJECTS)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -89,11 +98,50 @@ am__v_CCLD_0 = @echo " CCLD " $@;
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
-SOURCES = $(libdhcp_manager_la_SOURCES)
-DIST_SOURCES = $(libdhcp_manager_la_SOURCES)
+SOURCES = $(libdhcp_dhclient_la_SOURCES) $(libdhcp_manager_la_SOURCES)
+DIST_SOURCES = $(libdhcp_dhclient_la_SOURCES) \
+ $(libdhcp_manager_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
ALL_LINGUAS = @ALL_LINGUAS@
@@ -186,6 +234,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -200,6 +252,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -275,6 +328,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+SUBDIRS = . tests
INCLUDES = \
-I${top_srcdir} \
-I${top_srcdir}/include \
@@ -283,14 +337,39 @@ INCLUDES = \
-I${top_srcdir}/libnm-util \
-I${top_srcdir}/src
-noinst_LTLIBRARIES = libdhcp-manager.la
+noinst_LTLIBRARIES = libdhcp-manager.la libdhcp-dhclient.la
+
+################## dhclient ##################
+libdhcp_dhclient_la_SOURCES = \
+ nm-dhcp-dhclient-utils.h \
+ nm-dhcp-dhclient-utils.c \
+ nm-dhcp-dhclient.h \
+ nm-dhcp-dhclient.c
+
+libdhcp_dhclient_la_CPPFLAGS = \
+ $(DBUS_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ -DG_DISABLE_DEPRECATED \
+ -DSYSCONFDIR=\"$(sysconfdir)\" \
+ -DLIBEXECDIR=\"$(libexecdir)\" \
+ -DLOCALSTATEDIR=\"$(localstatedir)\" \
+ -DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
+ -DDHCLIENT_V$(DHCLIENT_VERSION)
+
+libdhcp_dhclient_la_LIBADD = \
+ $(top_builddir)/marshallers/libmarshallers.la \
+ $(top_builddir)/src/logging/libnm-logging.la \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(DBUS_LIBS) \
+ $(GLIB_LIBS)
+
+
+################## main lib ##################
libdhcp_manager_la_SOURCES = \
nm-dhcp-client.c \
nm-dhcp-client.h \
nm-dhcp-manager.c \
nm-dhcp-manager.h \
- nm-dhcp-dhclient.h \
- nm-dhcp-dhclient.c \
nm-dhcp-dhcpcd.h \
nm-dhcp-dhcpcd.c
@@ -298,22 +377,19 @@ libdhcp_manager_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
$(GLIB_CFLAGS) \
-DG_DISABLE_DEPRECATED \
- -DBINDIR=\"$(bindir)\" \
- -DDATADIR=\"$(datadir)\" \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
-DLIBEXECDIR=\"$(libexecdir)\" \
-DLOCALSTATEDIR=\"$(localstatedir)\" \
-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
- -DDHCLIENT_V$(DHCLIENT_VERSION) \
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\"
libdhcp_manager_la_LIBADD = \
$(top_builddir)/marshallers/libmarshallers.la \
$(top_builddir)/src/logging/libnm-logging.la \
+ $(builddir)/libdhcp-dhclient.la \
$(DBUS_LIBS) \
$(GLIB_LIBS)
-all: all-am
+all: all-recursive
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
@@ -356,6 +432,8 @@ clean-noinstLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
+libdhcp-dhclient.la: $(libdhcp_dhclient_la_OBJECTS) $(libdhcp_dhclient_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(libdhcp_dhclient_la_OBJECTS) $(libdhcp_dhclient_la_LIBADD) $(LIBS)
libdhcp-manager.la: $(libdhcp_manager_la_OBJECTS) $(libdhcp_manager_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(libdhcp_manager_la_OBJECTS) $(libdhcp_manager_la_LIBADD) $(LIBS)
@@ -365,8 +443,9 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient-utils.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_manager_la-nm-dhcp-client.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhclient.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhcpcd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdhcp_manager_la-nm-dhcp-manager.Plo@am__quote@
@@ -397,6 +476,22 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo: nm-dhcp-dhclient-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_dhclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo -MD -MP -MF $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient-utils.Tpo -c -o libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo `test -f 'nm-dhcp-dhclient-utils.c' || echo '$(srcdir)/'`nm-dhcp-dhclient-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient-utils.Tpo $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient-utils.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-dhcp-dhclient-utils.c' object='libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_dhclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdhcp_dhclient_la-nm-dhcp-dhclient-utils.lo `test -f 'nm-dhcp-dhclient-utils.c' || echo '$(srcdir)/'`nm-dhcp-dhclient-utils.c
+
+libdhcp_dhclient_la-nm-dhcp-dhclient.lo: nm-dhcp-dhclient.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_dhclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdhcp_dhclient_la-nm-dhcp-dhclient.lo -MD -MP -MF $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient.Tpo -c -o libdhcp_dhclient_la-nm-dhcp-dhclient.lo `test -f 'nm-dhcp-dhclient.c' || echo '$(srcdir)/'`nm-dhcp-dhclient.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient.Tpo $(DEPDIR)/libdhcp_dhclient_la-nm-dhcp-dhclient.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-dhcp-dhclient.c' object='libdhcp_dhclient_la-nm-dhcp-dhclient.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_dhclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdhcp_dhclient_la-nm-dhcp-dhclient.lo `test -f 'nm-dhcp-dhclient.c' || echo '$(srcdir)/'`nm-dhcp-dhclient.c
+
libdhcp_manager_la-nm-dhcp-client.lo: nm-dhcp-client.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdhcp_manager_la-nm-dhcp-client.lo -MD -MP -MF $(DEPDIR)/libdhcp_manager_la-nm-dhcp-client.Tpo -c -o libdhcp_manager_la-nm-dhcp-client.lo `test -f 'nm-dhcp-client.c' || echo '$(srcdir)/'`nm-dhcp-client.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdhcp_manager_la-nm-dhcp-client.Tpo $(DEPDIR)/libdhcp_manager_la-nm-dhcp-client.Plo
@@ -413,14 +508,6 @@ libdhcp_manager_la-nm-dhcp-manager.lo: nm-dhcp-manager.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdhcp_manager_la-nm-dhcp-manager.lo `test -f 'nm-dhcp-manager.c' || echo '$(srcdir)/'`nm-dhcp-manager.c
-libdhcp_manager_la-nm-dhcp-dhclient.lo: nm-dhcp-dhclient.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdhcp_manager_la-nm-dhcp-dhclient.lo -MD -MP -MF $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhclient.Tpo -c -o libdhcp_manager_la-nm-dhcp-dhclient.lo `test -f 'nm-dhcp-dhclient.c' || echo '$(srcdir)/'`nm-dhcp-dhclient.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhclient.Tpo $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhclient.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-dhcp-dhclient.c' object='libdhcp_manager_la-nm-dhcp-dhclient.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdhcp_manager_la-nm-dhcp-dhclient.lo `test -f 'nm-dhcp-dhclient.c' || echo '$(srcdir)/'`nm-dhcp-dhclient.c
-
libdhcp_manager_la-nm-dhcp-dhcpcd.lo: nm-dhcp-dhcpcd.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdhcp_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdhcp_manager_la-nm-dhcp-dhcpcd.lo -MD -MP -MF $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhcpcd.Tpo -c -o libdhcp_manager_la-nm-dhcp-dhcpcd.lo `test -f 'nm-dhcp-dhcpcd.c' || echo '$(srcdir)/'`nm-dhcp-dhcpcd.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhcpcd.Tpo $(DEPDIR)/libdhcp_manager_la-nm-dhcp-dhcpcd.Plo
@@ -435,6 +522,76 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -445,10 +602,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
@@ -467,7 +637,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
fi; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -517,19 +687,48 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
check-am: all-am
-check: check-am
+check: check-recursive
all-am: Makefile $(LTLIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-am
+installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
@@ -546,81 +745,83 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
+clean: clean-recursive
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
-distclean: distclean-am
+distclean: distclean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
-dvi: dvi-am
+dvi: dvi-recursive
dvi-am:
-html: html-am
+html: html-recursive
html-am:
-info: info-am
+info: info-recursive
info-am:
install-data-am:
-install-dvi: install-dvi-am
+install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
-install-html: install-html-am
+install-html: install-html-recursive
install-html-am:
-install-info: install-info-am
+install-info: install-info-recursive
install-info-am:
install-man:
-install-pdf: install-pdf-am
+install-pdf: install-pdf-recursive
install-pdf-am:
-install-ps: install-ps-am
+install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-pdf: pdf-am
+pdf: pdf-recursive
pdf-am:
-ps: ps-am
+ps: ps-recursive
ps-am:
uninstall-am:
-.MAKE: install-am install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ clean-noinstLTLIBRARIES ctags ctags-recursive distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
@@ -628,9 +829,10 @@ uninstall-am:
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index 0c7f3d49b..3a8b19408 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -156,11 +156,15 @@ stop_process (GPid pid, const char *iface)
if (ret == -1) {
/* Child already exited */
- if (errno == ECHILD)
+ if (errno == ECHILD) {
+ /* Was it really our child and it exited? */
+ if (kill (pid, 0) < 0 && errno == ESRCH)
+ break;
+ } else {
+ /* Took too long; shoot it in the head */
+ i = 0;
break;
- /* Took too long; shoot it in the head */
- i = 0;
- break;
+ }
}
g_usleep (G_USEC_PER_SEC / 5);
}
diff --git a/src/dhcp-manager/nm-dhcp-dhclient-utils.c b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
new file mode 100644
index 000000000..cc5255ab5
--- /dev/null
+++ b/src/dhcp-manager/nm-dhcp-dhclient-utils.c
@@ -0,0 +1,217 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2010 Red Hat, Inc.
+ */
+
+#include <config.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "nm-dhcp-dhclient-utils.h"
+
+#define CLIENTID_TAG "send dhcp-client-identifier"
+#define CLIENTID_FORMAT CLIENTID_TAG " \"%s\"; # added by NetworkManager"
+#define CLIENTID_FORMAT_OCTETS CLIENTID_TAG " %s; # added by NetworkManager"
+
+#define HOSTNAME_TAG "send host-name"
+#define HOSTNAME_FORMAT HOSTNAME_TAG " \"%s\"; # added by NetworkManager"
+
+#define ALSOREQ_TAG "also request "
+
+static void
+add_also_request (GPtrArray *array, const char *item)
+{
+ int i;
+
+ for (i = 0; i < array->len; i++) {
+ if (!strcmp (g_ptr_array_index (array, i), item))
+ return;
+ }
+ g_ptr_array_add (array, g_strdup (item));
+}
+
+char *
+nm_dhcp_dhclient_create_config (const char *interface,
+ NMSettingIP4Config *s_ip4,
+ guint8 *anycast_addr,
+ const char *hostname,
+ const char *orig_path,
+ const char *orig_contents)
+{
+ GString *new_contents;
+ GPtrArray *alsoreq;
+ int i;
+
+ new_contents = g_string_new (_("# Created by NetworkManager\n"));
+ alsoreq = g_ptr_array_sized_new (5);
+
+ if (orig_contents) {
+ char **lines, **line;
+ gboolean in_alsoreq = FALSE;
+
+ g_string_append_printf (new_contents, _("# Merged from %s\n\n"), orig_path);
+
+ lines = g_strsplit_set (orig_contents, "\n\r", 0);
+ for (line = lines; lines && *line; line++) {
+ char *p = *line;
+
+ if (!strlen (g_strstrip (p)))
+ continue;
+
+ /* Override config file "dhcp-client-id" and use one from the
+ * connection.
+ */
+ if ( s_ip4
+ && nm_setting_ip4_config_get_dhcp_client_id (s_ip4)
+ && !strncmp (p, CLIENTID_TAG, strlen (CLIENTID_TAG)))
+ continue;
+
+ /* Override config file hostname and use one from the connection */
+ if (hostname && !strncmp (p, HOSTNAME_TAG, strlen (HOSTNAME_TAG)))
+ continue;
+
+ /* Check for "also require" */
+ if (!strncmp (p, ALSOREQ_TAG, strlen (ALSOREQ_TAG))) {
+ in_alsoreq = TRUE;
+ p += strlen (ALSOREQ_TAG);
+ }
+
+ if (in_alsoreq) {
+ char **areq, **aiter;
+
+ /* Grab each 'also require' option and save for later */
+ areq = g_strsplit_set (p, "\t ,", -1);
+ for (aiter = areq; aiter && *aiter; aiter++) {
+ if (!strlen (g_strstrip (*aiter)))
+ continue;
+
+ if (*aiter[0] == ';') {
+ /* all done */
+ in_alsoreq = FALSE;
+ break;
+ }
+
+ if (!isalnum ((*aiter)[0]))
+ continue;
+
+ if ((*aiter)[strlen (*aiter) - 1] == ';') {
+ /* Remove the EOL marker */
+ (*aiter)[strlen (*aiter) - 1] = '\0';
+ in_alsoreq = FALSE;
+ }
+
+ add_also_request (alsoreq, *aiter);
+ }
+
+ if (areq)
+ g_strfreev (areq);
+
+ continue;
+ }
+
+ /* Existing configuration line is OK, add it to new configuration */
+ g_string_append (new_contents, *line);
+ g_string_append_c (new_contents, '\n');
+ }
+
+ if (lines)
+ g_strfreev (lines);
+ } else
+ g_string_append_c (new_contents, '\n');
+
+ /* Add NM options from connection */
+ if (s_ip4) {
+ const char *tmp;
+ gboolean added = FALSE;
+
+ tmp = nm_setting_ip4_config_get_dhcp_client_id (s_ip4);
+ if (tmp) {
+ gboolean is_octets = TRUE;
+ const char *p = tmp;
+
+ while (*p) {
+ if (!isxdigit (*p) && (*p != ':')) {
+ is_octets = FALSE;
+ break;
+ }
+ p++;
+ }
+
+ /* If the client ID is just hex digits and : then don't use quotes,
+ * because dhclient expects either a quoted ASCII string, or a byte
+ * array formated as hex octets separated by :
+ */
+ if (is_octets)
+ g_string_append_printf (new_contents, CLIENTID_FORMAT_OCTETS "\n", tmp);
+ else
+ g_string_append_printf (new_contents, CLIENTID_FORMAT "\n", tmp);
+ added = TRUE;
+ }
+
+ if (hostname) {
+ g_string_append_printf (new_contents, HOSTNAME_FORMAT "\n", hostname);
+ added = TRUE;
+ }
+
+ if (added)
+ g_string_append_c (new_contents, '\n');
+ }
+
+ /* Define options for classless static routes */
+ g_string_append (new_contents,
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n");
+ g_string_append (new_contents,
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n");
+ /* Web Proxy Auto-Discovery option (bgo #368423) */
+ g_string_append (new_contents, "option wpad code 252 = string;\n");
+
+ g_string_append_c (new_contents, '\n');
+
+ /* Everything we want to request from the DHCP server */
+ add_also_request (alsoreq, "rfc3442-classless-static-routes");
+ add_also_request (alsoreq, "ms-classless-static-routes");
+ add_also_request (alsoreq, "wpad");
+ add_also_request (alsoreq, "ntp-servers");
+
+ /* And add it to the dhclient configuration */
+ for (i = 0; i < alsoreq->len; i++) {
+ char *t = g_ptr_array_index (alsoreq, i);
+
+ g_string_append_printf (new_contents, "also request %s;\n", t);
+ g_free (t);
+ }
+ g_ptr_array_free (alsoreq, TRUE);
+
+ g_string_append_c (new_contents, '\n');
+
+ if (anycast_addr) {
+ g_string_append_printf (new_contents, "interface \"%s\" {\n"
+ " initial-interval 1; \n"
+ " anycast-mac ethernet %02x:%02x:%02x:%02x:%02x:%02x;\n"
+ "}\n",
+ interface,
+ anycast_addr[0], anycast_addr[1],
+ anycast_addr[2], anycast_addr[3],
+ anycast_addr[4], anycast_addr[5]);
+ }
+
+ return g_string_free (new_contents, FALSE);
+}
+
diff --git a/src/dhcp-manager/nm-dhcp-dhclient-utils.h b/src/dhcp-manager/nm-dhcp-dhclient-utils.h
new file mode 100644
index 000000000..77def5518
--- /dev/null
+++ b/src/dhcp-manager/nm-dhcp-dhclient-utils.h
@@ -0,0 +1,35 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2010 Red Hat, Inc.
+ */
+
+#ifndef NM_DHCP_DHCLIENT_UTILS_H
+#define NM_DHCP_DHCLIENT_UTILS_H
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <nm-setting-ip4-config.h>
+
+char *nm_dhcp_dhclient_create_config (const char *interface,
+ NMSettingIP4Config *s_ip4,
+ guint8 *anycast_addr,
+ const char *hostname,
+ const char *orig_path,
+ const char *orig_contents);
+
+#endif /* NM_DHCP_DHCLIENT_UTILS_H */
+
diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c
index d8781524e..f6f2a540d 100644
--- a/src/dhcp-manager/nm-dhcp-dhclient.c
+++ b/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -39,6 +39,7 @@
#include "nm-dhcp-dhclient.h"
#include "nm-utils.h"
#include "nm-logging.h"
+#include "nm-dhcp-dhclient-utils.h"
G_DEFINE_TYPE (NMDHCPDhclient, nm_dhcp_dhclient, NM_TYPE_DHCP_CLIENT)
@@ -302,12 +303,6 @@ out:
}
-#define DHCP_CLIENT_ID_TAG "send dhcp-client-identifier"
-#define DHCP_CLIENT_ID_FORMAT DHCP_CLIENT_ID_TAG " \"%s\"; # added by NetworkManager"
-#define DHCP_CLIENT_ID_FORMAT_OCTETS DHCP_CLIENT_ID_TAG " %s; # added by NetworkManager"
-
-#define DHCP_HOSTNAME_TAG "send host-name"
-#define DHCP_HOSTNAME_FORMAT DHCP_HOSTNAME_TAG " \"%s\"; # added by NetworkManager"
static gboolean
merge_dhclient_config (const char *iface,
@@ -318,105 +313,27 @@ merge_dhclient_config (const char *iface,
const char *orig_path,
GError **error)
{
- GString *new_contents;
- char *orig_contents = NULL;
+ char *orig = NULL, *new;
gboolean success = FALSE;
g_return_val_if_fail (iface != NULL, FALSE);
g_return_val_if_fail (conf_file != NULL, FALSE);
- new_contents = g_string_new (_("# Created by NetworkManager\n"));
-
if (g_file_test (orig_path, G_FILE_TEST_EXISTS)) {
GError *read_error = NULL;
- if (!g_file_get_contents (orig_path, &orig_contents, NULL, &read_error)) {
+ if (!g_file_get_contents (orig_path, &orig, NULL, &read_error)) {
nm_log_warn (LOGD_DHCP, "(%s): error reading dhclient configuration %s: %s",
iface, orig_path, read_error->message);
g_error_free (read_error);
}
}
- /* Add existing options, if any, but ignore stuff NM will replace. */
- if (orig_contents) {
- char **lines = NULL, **line;
-
- g_string_append_printf (new_contents, _("# Merged from %s\n\n"), orig_path);
-
- lines = g_strsplit_set (orig_contents, "\n\r", 0);
- for (line = lines; lines && *line; line++) {
- gboolean ignore = FALSE;
-
- if (!strlen (g_strstrip (*line)))
- continue;
-
- if ( s_ip4
- && nm_setting_ip4_config_get_dhcp_client_id (s_ip4)
- && !strncmp (*line, DHCP_CLIENT_ID_TAG, strlen (DHCP_CLIENT_ID_TAG)))
- ignore = TRUE;
-
- if ( s_ip4
- && hostname
- && !strncmp (*line, DHCP_HOSTNAME_TAG, strlen (DHCP_HOSTNAME_TAG)))
- ignore = TRUE;
-
- if (!ignore) {
- g_string_append (new_contents, *line);
- g_string_append_c (new_contents, '\n');
- }
- }
-
- if (lines)
- g_strfreev (lines);
- g_free (orig_contents);
- } else
- g_string_append_c (new_contents, '\n');
-
- /* Add NM options from connection */
- if (s_ip4) {
- const char *tmp;
-
- tmp = nm_setting_ip4_config_get_dhcp_client_id (s_ip4);
- if (tmp) {
- gboolean is_octets = TRUE;
- const char *p = tmp;
-
- while (*p) {
- if (!isxdigit (*p) && (*p != ':')) {
- is_octets = FALSE;
- break;
- }
- p++;
- }
-
- /* If the client ID is just hex digits and : then don't use quotes,
- * because dhclient expects either a quoted ASCII string, or a byte
- * array formated as hex octets separated by :
- */
- if (is_octets)
- g_string_append_printf (new_contents, DHCP_CLIENT_ID_FORMAT_OCTETS "\n", tmp);
- else
- g_string_append_printf (new_contents, DHCP_CLIENT_ID_FORMAT "\n", tmp);
- }
-
- if (hostname)
- g_string_append_printf (new_contents, DHCP_HOSTNAME_FORMAT "\n", hostname);
- }
-
- if (anycast_addr) {
- g_string_append_printf (new_contents, "interface \"%s\" {\n"
- " initial-interval 1; \n"
- " anycast-mac ethernet %02x:%02x:%02x:%02x:%02x:%02x;\n"
- "}\n",
- iface,
- anycast_addr[0], anycast_addr[1],
- anycast_addr[2], anycast_addr[3],
- anycast_addr[4], anycast_addr[5]);
- }
-
- success = g_file_set_contents (conf_file, new_contents->str, -1, error);
+ new = nm_dhcp_dhclient_create_config (iface, s_ip4, anycast_addr, hostname, orig_path, orig);
+ g_assert (new);
+ success = g_file_set_contents (conf_file, new, -1, error);
+ g_free (new);
- g_string_free (new_contents, TRUE);
return success;
}
diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c
index 378a97b61..4fb703c48 100644
--- a/src/dhcp-manager/nm-dhcp-dhcpcd.c
+++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c
@@ -128,6 +128,8 @@ real_ip4_start (NMDHCPClient *client,
g_ptr_array_add (argv, (gpointer) "-L"); /* Disable built-in IPv4LL since we use avahi-autoipd */
+ g_ptr_array_add (argv, (gpointer) "-G"); /* Let NM handle routing */
+
g_ptr_array_add (argv, (gpointer) "-c"); /* Set script file */
g_ptr_array_add (argv, (gpointer) ACTION_SCRIPT_PATH );
diff --git a/src/dhcp-manager/nm-dhcp-manager.c b/src/dhcp-manager/nm-dhcp-manager.c
index a1e3e5e24..f3c1e84f0 100644
--- a/src/dhcp-manager/nm-dhcp-manager.c
+++ b/src/dhcp-manager/nm-dhcp-manager.c
@@ -317,11 +317,6 @@ nm_dhcp_manager_new (const char *client, GError **error)
{
NMDHCPManagerPrivate *priv;
DBusGConnection *g_connection;
- GType client_type;
-
- client_type = get_client_type (client, error);
- if (!client_type)
- return NULL;
g_warn_if_fail (singleton == NULL);
@@ -329,13 +324,14 @@ nm_dhcp_manager_new (const char *client, GError **error)
priv = NM_DHCP_MANAGER_GET_PRIVATE (singleton);
/* Client-specific setup */
- priv->client_type = client_type;
+ priv->client_type = get_client_type (client, error);
if (priv->client_type == NM_TYPE_DHCP_DHCLIENT)
priv->get_lease_config_func = nm_dhcp_dhclient_get_lease_config;
else if (priv->client_type == NM_TYPE_DHCP_DHCPCD)
priv->get_lease_config_func = nm_dhcp_dhcpcd_get_lease_config;
- else
- g_assert_not_reached ();
+ else {
+ nm_log_warn (LOGD_DHCP, "No usable DHCP client found! DHCP configurations will fail.");
+ }
priv->clients = g_hash_table_new_full (g_direct_hash, g_direct_equal,
NULL,
@@ -426,6 +422,9 @@ client_start (NMDHCPManager *self,
priv = NM_DHCP_MANAGER_GET_PRIVATE (self);
+ /* Ensure we have a usable DHCP client */
+ g_return_val_if_fail (priv->client_type != 0, NULL);
+
/* Kill any old client instance */
client = get_client_for_iface (self, iface, ipv6);
if (client) {
diff --git a/src/dhcp-manager/tests/Makefile.am b/src/dhcp-manager/tests/Makefile.am
new file mode 100644
index 000000000..b075fd683
--- /dev/null
+++ b/src/dhcp-manager/tests/Makefile.am
@@ -0,0 +1,28 @@
+INCLUDES = \
+ -I$(top_srcdir)/include \
+ -I${top_srcdir}/libnm-util \
+ -I$(top_srcdir)/src/dhcp-manager
+
+noinst_PROGRAMS = test-dhcp-dhclient
+
+####### policy /etc/hosts test #######
+
+test_dhcp_dhclient_SOURCES = \
+ test-dhcp-dhclient.c
+
+test_dhcp_dhclient_CPPFLAGS = \
+ $(GLIB_CFLAGS)
+
+test_dhcp_dhclient_LDADD = \
+ -ldl \
+ $(top_builddir)/src/dhcp-manager/libdhcp-dhclient.la \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(GLIB_LIBS)
+
+if WITH_TESTS
+
+check-local: test-dhcp-dhclient
+ $(abs_builddir)/test-dhcp-dhclient
+
+endif
+
diff --git a/src/dhcp-manager/tests/Makefile.in b/src/dhcp-manager/tests/Makefile.in
new file mode 100644
index 000000000..233cd5044
--- /dev/null
+++ b/src/dhcp-manager/tests/Makefile.in
@@ -0,0 +1,610 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = test-dhcp-dhclient$(EXEEXT)
+subdir = src/dhcp-manager/tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/compiler_warnings.m4 \
+ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+ $(top_srcdir)/m4/libnl-check.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+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_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+am_test_dhcp_dhclient_OBJECTS = \
+ test_dhcp_dhclient-test-dhcp-dhclient.$(OBJEXT)
+test_dhcp_dhclient_OBJECTS = $(am_test_dhcp_dhclient_OBJECTS)
+am__DEPENDENCIES_1 =
+test_dhcp_dhclient_DEPENDENCIES = \
+ $(top_builddir)/src/dhcp-manager/libdhcp-dhclient.la \
+ $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(test_dhcp_dhclient_SOURCES)
+DIST_SOURCES = $(test_dhcp_dhclient_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_SYS_DIR = @DBUS_SYS_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DHCLIENT_PATH = @DHCLIENT_PATH@
+DHCLIENT_VERSION = @DHCLIENT_VERSION@
+DHCPCD_PATH = @DHCPCD_PATH@
+DISABLE_DEPRECATED = @DISABLE_DEPRECATED@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GMODULE_CFLAGS = @GMODULE_CFLAGS@
+GMODULE_LIBS = @GMODULE_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
+GNUTLS_LIBS = @GNUTLS_LIBS@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+IPTABLES_PATH = @IPTABLES_PATH@
+KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBM = @LIBM@
+LIBNL_CFLAGS = @LIBNL_CFLAGS@
+LIBNL_LIBS = @LIBNL_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POLKIT_CFLAGS = @POLKIT_CFLAGS@
+POLKIT_LIBS = @POLKIT_LIBS@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
+RANLIB = @RANLIB@
+RESOLVCONF_PATH = @RESOLVCONF_PATH@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEM_CA_PATH = @SYSTEM_CA_PATH@
+UDEV_BASE_DIR = @UDEV_BASE_DIR@
+USE_NLS = @USE_NLS@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+INCLUDES = \
+ -I$(top_srcdir)/include \
+ -I${top_srcdir}/libnm-util \
+ -I$(top_srcdir)/src/dhcp-manager
+
+
+####### policy /etc/hosts test #######
+test_dhcp_dhclient_SOURCES = \
+ test-dhcp-dhclient.c
+
+test_dhcp_dhclient_CPPFLAGS = \
+ $(GLIB_CFLAGS)
+
+test_dhcp_dhclient_LDADD = \
+ -ldl \
+ $(top_builddir)/src/dhcp-manager/libdhcp-dhclient.la \
+ $(top_builddir)/libnm-util/libnm-util.la \
+ $(GLIB_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/dhcp-manager/tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/dhcp-manager/tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+test-dhcp-dhclient$(EXEEXT): $(test_dhcp_dhclient_OBJECTS) $(test_dhcp_dhclient_DEPENDENCIES)
+ @rm -f test-dhcp-dhclient$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_dhcp_dhclient_OBJECTS) $(test_dhcp_dhclient_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+test_dhcp_dhclient-test-dhcp-dhclient.o: test-dhcp-dhclient.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_dhcp_dhclient_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_dhcp_dhclient-test-dhcp-dhclient.o -MD -MP -MF $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Tpo -c -o test_dhcp_dhclient-test-dhcp-dhclient.o `test -f 'test-dhcp-dhclient.c' || echo '$(srcdir)/'`test-dhcp-dhclient.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Tpo $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-dhcp-dhclient.c' object='test_dhcp_dhclient-test-dhcp-dhclient.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_dhcp_dhclient_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_dhcp_dhclient-test-dhcp-dhclient.o `test -f 'test-dhcp-dhclient.c' || echo '$(srcdir)/'`test-dhcp-dhclient.c
+
+test_dhcp_dhclient-test-dhcp-dhclient.obj: test-dhcp-dhclient.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_dhcp_dhclient_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_dhcp_dhclient-test-dhcp-dhclient.obj -MD -MP -MF $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Tpo -c -o test_dhcp_dhclient-test-dhcp-dhclient.obj `if test -f 'test-dhcp-dhclient.c'; then $(CYGPATH_W) 'test-dhcp-dhclient.c'; else $(CYGPATH_W) '$(srcdir)/test-dhcp-dhclient.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Tpo $(DEPDIR)/test_dhcp_dhclient-test-dhcp-dhclient.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-dhcp-dhclient.c' object='test_dhcp_dhclient-test-dhcp-dhclient.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_dhcp_dhclient_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_dhcp_dhclient-test-dhcp-dhclient.obj `if test -f 'test-dhcp-dhclient.c'; then $(CYGPATH_W) 'test-dhcp-dhclient.c'; else $(CYGPATH_W) '$(srcdir)/test-dhcp-dhclient.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+@WITH_TESTS_FALSE@check-local:
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
+ clean-generic clean-libtool clean-noinstPROGRAMS ctags \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am
+
+
+@WITH_TESTS_TRUE@check-local: test-dhcp-dhclient
+@WITH_TESTS_TRUE@ $(abs_builddir)/test-dhcp-dhclient
+
+# 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.
+.NOEXPORT:
diff --git a/src/dhcp-manager/tests/test-dhcp-dhclient.c b/src/dhcp-manager/tests/test-dhcp-dhclient.c
new file mode 100644
index 000000000..c1cd6f80c
--- /dev/null
+++ b/src/dhcp-manager/tests/test-dhcp-dhclient.c
@@ -0,0 +1,249 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2010 Red Hat, Inc.
+ *
+ */
+
+#include <glib.h>
+#include <string.h>
+
+#include "nm-dhcp-dhclient-utils.h"
+#include "nm-utils.h"
+
+#define DEBUG 0
+
+static void
+test_config (const char *orig,
+ const char *expected,
+ const char *hostname,
+ const char *dhcp_client_id,
+ const char *iface,
+ guint8 *anycast_addr)
+{
+ NMSettingIP4Config *s_ip4;
+ char *new;
+
+ s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, dhcp_client_id, NULL);
+
+ new = nm_dhcp_dhclient_create_config (iface,
+ s_ip4,
+ anycast_addr,
+ hostname,
+ "/path/to/dhclient.conf",
+ orig);
+ g_assert (new != NULL);
+
+#if DEBUG
+ g_message ("\n- NEW ---------------------------------\n"
+ "%s"
+ "+ EXPECTED ++++++++++++++++++++++++++++++\n"
+ "%s"
+ "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
+ new, expected);
+#endif
+ g_assert (strlen (new) == strlen (expected));
+ g_assert (strcmp (new, expected) == 0);
+ g_free (new);
+}
+
+/*******************************************/
+
+static const char *orig_missing_expected = \
+ "# Created by NetworkManager\n"
+ "\n"
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
+ "option wpad code 252 = string;\n"
+ "\n"
+ "also request rfc3442-classless-static-routes;\n"
+ "also request ms-classless-static-routes;\n"
+ "also request wpad;\n"
+ "also request ntp-servers;\n"
+ "\n";
+
+static void
+test_orig_missing (void)
+{
+ test_config (NULL, orig_missing_expected,
+ NULL,
+ NULL,
+ "eth0",
+ NULL);
+}
+
+/*******************************************/
+
+static const char *override_client_id_orig = \
+ "send dhcp-client-identifier 00:30:04:20:7A:08;\n";
+
+static const char *override_client_id_expected = \
+ "# Created by NetworkManager\n"
+ "# Merged from /path/to/dhclient.conf\n"
+ "\n"
+ "send dhcp-client-identifier 11:22:33:44:55:66; # added by NetworkManager\n"
+ "\n"
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
+ "option wpad code 252 = string;\n"
+ "\n"
+ "also request rfc3442-classless-static-routes;\n"
+ "also request ms-classless-static-routes;\n"
+ "also request wpad;\n"
+ "also request ntp-servers;\n"
+ "\n";
+
+static void
+test_override_client_id (void)
+{
+ test_config (override_client_id_orig, override_client_id_expected,
+ NULL,
+ "11:22:33:44:55:66",
+ "eth0",
+ NULL);
+}
+
+/*******************************************/
+
+static const char *override_hostname_orig = \
+ "send host-name \"foobar\";\n";
+
+static const char *override_hostname_expected = \
+ "# Created by NetworkManager\n"
+ "# Merged from /path/to/dhclient.conf\n"
+ "\n"
+ "send host-name \"blahblah\"; # added by NetworkManager\n"
+ "\n"
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
+ "option wpad code 252 = string;\n"
+ "\n"
+ "also request rfc3442-classless-static-routes;\n"
+ "also request ms-classless-static-routes;\n"
+ "also request wpad;\n"
+ "also request ntp-servers;\n"
+ "\n";
+
+static void
+test_override_hostname (void)
+{
+ test_config (override_hostname_orig, override_hostname_expected,
+ "blahblah",
+ NULL,
+ "eth0",
+ NULL);
+}
+
+/*******************************************/
+
+static const char *existing_alsoreq_orig = \
+ "also request something;\n"
+ "also request another-thing;\n"
+ ;
+
+static const char *existing_alsoreq_expected = \
+ "# Created by NetworkManager\n"
+ "# Merged from /path/to/dhclient.conf\n"
+ "\n"
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
+ "option wpad code 252 = string;\n"
+ "\n"
+ "also request something;\n"
+ "also request another-thing;\n"
+ "also request rfc3442-classless-static-routes;\n"
+ "also request ms-classless-static-routes;\n"
+ "also request wpad;\n"
+ "also request ntp-servers;\n"
+ "\n";
+
+static void
+test_existing_alsoreq (void)
+{
+ test_config (existing_alsoreq_orig, existing_alsoreq_expected,
+ NULL,
+ NULL,
+ "eth0",
+ NULL);
+}
+
+/*******************************************/
+
+static const char *existing_multiline_alsoreq_orig = \
+ "also request something another-thing yet-another-thing\n"
+ " foobar baz blah;\n"
+ ;
+
+static const char *existing_multiline_alsoreq_expected = \
+ "# Created by NetworkManager\n"
+ "# Merged from /path/to/dhclient.conf\n"
+ "\n"
+ "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n"
+ "option ms-classless-static-routes code 249 = array of unsigned integer 8;\n"
+ "option wpad code 252 = string;\n"
+ "\n"
+ "also request something;\n"
+ "also request another-thing;\n"
+ "also request yet-another-thing;\n"
+ "also request foobar;\n"
+ "also request baz;\n"
+ "also request blah;\n"
+ "also request rfc3442-classless-static-routes;\n"
+ "also request ms-classless-static-routes;\n"
+ "also request wpad;\n"
+ "also request ntp-servers;\n"
+ "\n";
+
+static void
+test_existing_multiline_alsoreq (void)
+{
+ test_config (existing_multiline_alsoreq_orig, existing_multiline_alsoreq_expected,
+ NULL,
+ NULL,
+ "eth0",
+ NULL);
+}
+
+/*******************************************/
+
+#if GLIB_CHECK_VERSION(2,25,12)
+typedef GTestFixtureFunc TCFunc;
+#else
+typedef void (*TCFunc)(void);
+#endif
+
+#define TESTCASE(t, d) g_test_create_case (#t, 0, d, NULL, (TCFunc) t, NULL)
+
+int main (int argc, char **argv)
+{
+ GTestSuite *suite;
+
+ g_test_init (&argc, &argv, NULL);
+
+ g_type_init ();
+
+ suite = g_test_get_root ();
+
+ g_test_suite_add (suite, TESTCASE (test_orig_missing, NULL));
+ g_test_suite_add (suite, TESTCASE (test_override_client_id, NULL));
+ g_test_suite_add (suite, TESTCASE (test_override_hostname, NULL));
+ g_test_suite_add (suite, TESTCASE (test_existing_alsoreq, NULL));
+ g_test_suite_add (suite, TESTCASE (test_existing_multiline_alsoreq, NULL));
+
+ return g_test_run ();
+}
+
diff --git a/src/dns-manager/Makefile.am b/src/dns-manager/Makefile.am
index 1ffe62dcf..7b5fc4f84 100644
--- a/src/dns-manager/Makefile.am
+++ b/src/dns-manager/Makefile.am
@@ -14,7 +14,9 @@ libdns_manager_la_SOURCES = \
nm-dns-dnsmasq.h \
nm-dns-dnsmasq.c \
nm-dns-bind.h \
- nm-dns-bind.c
+ nm-dns-bind.c \
+ nm-dns-utils.h \
+ nm-dns-utils.c
libdns_manager_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
diff --git a/src/dns-manager/Makefile.in b/src/dns-manager/Makefile.in
index 496d37564..69b76815b 100644
--- a/src/dns-manager/Makefile.in
+++ b/src/dns-manager/Makefile.in
@@ -57,7 +57,8 @@ libdns_manager_la_DEPENDENCIES = \
am_libdns_manager_la_OBJECTS = libdns_manager_la-nm-dns-manager.lo \
libdns_manager_la-nm-dns-plugin.lo \
libdns_manager_la-nm-dns-dnsmasq.lo \
- libdns_manager_la-nm-dns-bind.lo
+ libdns_manager_la-nm-dns-bind.lo \
+ libdns_manager_la-nm-dns-utils.lo
libdns_manager_la_OBJECTS = $(am_libdns_manager_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -185,6 +186,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -199,6 +204,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -289,7 +295,9 @@ libdns_manager_la_SOURCES = \
nm-dns-dnsmasq.h \
nm-dns-dnsmasq.c \
nm-dns-bind.h \
- nm-dns-bind.c
+ nm-dns-bind.c \
+ nm-dns-utils.h \
+ nm-dns-utils.c
libdns_manager_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
@@ -357,6 +365,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdns_manager_la-nm-dns-dnsmasq.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdns_manager_la-nm-dns-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdns_manager_la-nm-dns-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdns_manager_la-nm-dns-utils.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -417,6 +426,14 @@ libdns_manager_la-nm-dns-bind.lo: nm-dns-bind.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdns_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdns_manager_la-nm-dns-bind.lo `test -f 'nm-dns-bind.c' || echo '$(srcdir)/'`nm-dns-bind.c
+libdns_manager_la-nm-dns-utils.lo: nm-dns-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdns_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libdns_manager_la-nm-dns-utils.lo -MD -MP -MF $(DEPDIR)/libdns_manager_la-nm-dns-utils.Tpo -c -o libdns_manager_la-nm-dns-utils.lo `test -f 'nm-dns-utils.c' || echo '$(srcdir)/'`nm-dns-utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libdns_manager_la-nm-dns-utils.Tpo $(DEPDIR)/libdns_manager_la-nm-dns-utils.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-dns-utils.c' object='libdns_manager_la-nm-dns-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdns_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libdns_manager_la-nm-dns-utils.lo `test -f 'nm-dns-utils.c' || echo '$(srcdir)/'`nm-dns-utils.c
+
mostlyclean-libtool:
-rm -f *.lo
diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
index 41c8e2a64..9cc019780 100644
--- a/src/dns-manager/nm-dns-dnsmasq.c
+++ b/src/dns-manager/nm-dns-dnsmasq.c
@@ -33,6 +33,7 @@
#include "nm-logging.h"
#include "nm-ip4-config.h"
#include "nm-ip6-config.h"
+#include "nm-dns-utils.h"
G_DEFINE_TYPE (NMDnsDnsmasq, nm_dns_dnsmasq, NM_TYPE_DNS_PLUGIN)
@@ -75,9 +76,11 @@ add_ip4_config (GString *str, NMIP4Config *ip4, gboolean split)
gboolean added = FALSE;
if (split) {
+ char **domains, **iter;
+
/* FIXME: it appears that dnsmasq can only handle one nameserver
- * per domain (at the manpage seems to indicate that) so only use
- * the first nameserver here.
+ * per domain (and the manpage says this too) so only use the first
+ * nameserver here.
*/
addr.s_addr = nm_ip4_config_get_nameserver (ip4, 0);
memset (&buf[0], 0, sizeof (buf));
@@ -103,6 +106,17 @@ add_ip4_config (GString *str, NMIP4Config *ip4, gboolean split)
added = TRUE;
}
}
+
+ /* Ensure reverse-DNS works by directing queries for in-addr.arpa
+ * domains to the split domain's nameserver.
+ */
+ domains = nm_dns_utils_get_ip4_rdns_domains (ip4);
+ if (domains) {
+ for (iter = domains; iter && *iter; iter++)
+ g_string_append_printf (str, "server=/%s/%s\n", *iter, buf);
+ g_strfreev (domains);
+ added = TRUE;
+ }
}
/* If no searches or domains, just add the namservers */
@@ -216,7 +230,7 @@ update (NMDnsPlugin *plugin,
}
/* Now add interface configs without split DNS */
- for (iter = (GSList *) dev_configs; iter;iter = g_slist_next (iter)) {
+ for (iter = (GSList *) dev_configs; iter; iter = g_slist_next (iter)) {
if (NM_IS_IP4_CONFIG (iter->data))
add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
else if (NM_IS_IP6_CONFIG (iter->data))
@@ -224,7 +238,7 @@ update (NMDnsPlugin *plugin,
}
/* And any other random configs */
- for (iter = (GSList *) other_configs; iter;iter = g_slist_next (iter)) {
+ for (iter = (GSList *) other_configs; iter; iter = g_slist_next (iter)) {
if (NM_IS_IP4_CONFIG (iter->data))
add_ip4_config (conf, NM_IP4_CONFIG (iter->data), FALSE);
else if (NM_IS_IP6_CONFIG (iter->data))
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index 7a6fbbc9d..32800d0b0 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2004 - 2005 Colin Walters <walters@redhat.com>
- * Copyright (C) 2004 - 2010 Red Hat, Inc.
+ * Copyright (C) 2004 - 2011 Red Hat, Inc.
* Copyright (C) 2005 - 2008 Novell, Inc.
* and others
*/
@@ -583,6 +583,7 @@ update_dns (NMDnsManager *self,
rc.nameservers = g_ptr_array_new ();
rc.domain = NULL;
rc.searches = g_ptr_array_new ();
+ rc.nis_domain = NULL;
rc.nis_servers = g_ptr_array_new ();
if (priv->ip4_vpn_config)
@@ -860,7 +861,7 @@ nm_dns_manager_remove_ip4_config (NMDnsManager *mgr,
g_object_unref (config);
- if (config_changed (mgr))
+ if (!config_changed (mgr))
return TRUE;
if (!update_dns (mgr, iface, FALSE, &error)) {
@@ -905,7 +906,7 @@ nm_dns_manager_add_ip6_config (NMDnsManager *mgr,
if (!g_slist_find (priv->configs, config))
priv->configs = g_slist_append (priv->configs, g_object_ref (config));
- if (config_changed (mgr))
+ if (!config_changed (mgr))
return TRUE;
if (!update_dns (mgr, iface, FALSE, &error)) {
@@ -945,7 +946,7 @@ nm_dns_manager_remove_ip6_config (NMDnsManager *mgr,
g_object_unref (config);
- if (config_changed (mgr))
+ if (!config_changed (mgr))
return TRUE;
if (!update_dns (mgr, iface, FALSE, &error)) {
diff --git a/src/dns-manager/nm-dns-utils.c b/src/dns-manager/nm-dns-utils.c
new file mode 100644
index 000000000..615adfd15
--- /dev/null
+++ b/src/dns-manager/nm-dns-utils.c
@@ -0,0 +1,99 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2010 Red Hat, Inc.
+ *
+ */
+
+#include <arpa/inet.h>
+#include <string.h>
+
+#include "nm-dns-utils.h"
+#include "nm-utils.h"
+
+static void
+add_ip4_to_rdns_array (guint32 ip, GPtrArray *domains) /* network byte order */
+{
+ guint32 defprefix;
+ guchar *p;
+ char *str = NULL;
+ int i;
+
+ defprefix = nm_utils_ip4_get_default_prefix (ip);
+
+ /* Convert to host byte order, mask the host bits, and convert back */
+ ip = ntohl (ip);
+ ip &= 0xFFFFFFFF << (32 - defprefix);
+ ip = htonl (ip);
+ p = (guchar *) &ip;
+
+ if (defprefix == 8)
+ str = g_strdup_printf ("%u.in-addr.arpa", p[0] & 0xFF);
+ else if (defprefix == 16)
+ str = g_strdup_printf ("%u.%u.in-addr.arpa", p[1] & 0xFF, p[0] & 0xFF);
+ else if (defprefix == 24)
+ str = g_strdup_printf ("%u.%u.%u.in-addr.arpa", p[2] & 0xFF, p[1] & 0xFF, p[0] & 0xFF);
+
+ g_return_if_fail (str != NULL);
+
+ /* Suppress duplicates */
+ for (i = 0; i < domains->len; i++) {
+ if (strcmp (str, g_ptr_array_index (domains, i)) == 0)
+ break;
+ }
+
+ if (i == domains->len)
+ g_ptr_array_add (domains, str);
+ else
+ g_free (str);
+}
+
+char **
+nm_dns_utils_get_ip4_rdns_domains (NMIP4Config *ip4)
+{
+ GPtrArray *domains = NULL;
+ int i;
+
+ g_return_val_if_fail (ip4 != NULL, NULL);
+
+ domains = g_ptr_array_sized_new (5);
+
+ /* To calculate the reverse DNS domains for this IP4 config, we take
+ * all the IP addresses and routes in the config, calculate the network
+ * portion, and convert that to classful, and use the network bits for
+ * the final domain. FIXME: better handle classless routing, which might
+ * require us to add multiple domains for each actual network prefix to
+ * cover all the separate networks in that block.
+ */
+
+ for (i = 0; i < nm_ip4_config_get_num_addresses (ip4); i++) {
+ NMIP4Address *addr = nm_ip4_config_get_address (ip4, i);
+
+ add_ip4_to_rdns_array (nm_ip4_address_get_address (addr), domains);
+ }
+
+ for (i = 0; i < nm_ip4_config_get_num_routes (ip4); i++) {
+ NMIP4Route *route = nm_ip4_config_get_route (ip4, i);
+
+ add_ip4_to_rdns_array (nm_ip4_route_get_dest (route), domains);
+ }
+
+ /* Terminating NULL so we can use g_strfreev() to free it */
+ g_ptr_array_add (domains, NULL);
+
+ /* Free the array and return NULL if the only element was the ending NULL */
+ return (char **) g_ptr_array_free (domains, (domains->len == 1));
+}
+
diff --git a/src/dns-manager/nm-dns-utils.h b/src/dns-manager/nm-dns-utils.h
new file mode 100644
index 000000000..daa6711cc
--- /dev/null
+++ b/src/dns-manager/nm-dns-utils.h
@@ -0,0 +1,28 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2010 Red Hat, Inc.
+ *
+ */
+
+#ifndef NM_DNS_UTILS_H
+#define NM_DNS_UTILS_H
+
+#include "nm-ip4-config.h"
+
+char **nm_dns_utils_get_ip4_rdns_domains (NMIP4Config *ip4);
+
+#endif /* NM_DNS_UTILS_H */
+
diff --git a/src/dnsmasq-manager/Makefile.in b/src/dnsmasq-manager/Makefile.in
index 8cb698bc7..fb62d61bc 100644
--- a/src/dnsmasq-manager/Makefile.in
+++ b/src/dnsmasq-manager/Makefile.in
@@ -183,6 +183,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -197,6 +201,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/dnsmasq-manager/nm-dnsmasq-manager.c b/src/dnsmasq-manager/nm-dnsmasq-manager.c
index 701c07826..ca2f9dc43 100644
--- a/src/dnsmasq-manager/nm-dnsmasq-manager.c
+++ b/src/dnsmasq-manager/nm-dnsmasq-manager.c
@@ -254,7 +254,6 @@ create_dm_cmd_line (const char *iface,
struct in_addr addr;
char buf[INET_ADDRSTRLEN + 15];
char localaddr[INET_ADDRSTRLEN + 1];
- int i;
dm_binary = nm_find_dnsmasq ();
if (!dm_binary) {
@@ -278,17 +277,10 @@ create_dm_cmd_line (const char *iface,
/* dnsmasq may read from it's default config file location, which if that
* location is a valid config file, it will combine with the options here
* and cause undesirable side-effects. Like sending bogus IP addresses
- * as the gateway or whatever. So give dnsmasq a bogus config file
- * location to avoid screwing up the configuration we're passing to it.
+ * as the gateway or whatever. So tell dnsmasq not to use any config file
+ * at all.
*/
- memset (buf, 0, sizeof (buf));
- strcpy (buf, "/tmp/");
- for (i = 5; i < 15; i++)
- buf[i] = (char) (g_random_int_range ((guint32) 'a', (guint32) 'z') & 0xFF);
- strcat (buf, ".conf");
-
nm_cmd_line_add_string (cmd, "--conf-file");
- nm_cmd_line_add_string (cmd, buf);
nm_cmd_line_add_string (cmd, "--no-hosts");
nm_cmd_line_add_string (cmd, "--keep-in-foreground");
diff --git a/src/ip6-manager/Makefile.in b/src/ip6-manager/Makefile.in
index 13a3e0e9c..1e8da3da0 100644
--- a/src/ip6-manager/Makefile.in
+++ b/src/ip6-manager/Makefile.in
@@ -183,6 +183,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -197,6 +201,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/ip6-manager/nm-ip6-manager.c b/src/ip6-manager/nm-ip6-manager.c
index f6f6127ce..7ffa2d1f5 100644
--- a/src/ip6-manager/nm-ip6-manager.c
+++ b/src/ip6-manager/nm-ip6-manager.c
@@ -76,6 +76,11 @@ typedef struct {
time_t expires;
} NMIP6RDNSS;
+typedef struct {
+ char domain[256];
+ time_t expires;
+} NMIP6DNSSL;
+
/******************************************************************/
typedef struct {
@@ -97,6 +102,9 @@ typedef struct {
GArray *rdnss_servers;
guint rdnss_timeout_id;
+ GArray *dnssl_domains;
+ guint dnssl_timeout_id;
+
guint ip6flags_poll_id;
guint32 ra_flags;
@@ -122,6 +130,10 @@ nm_ip6_device_destroy (NMIP6Device *device)
g_array_free (device->rdnss_servers, TRUE);
if (device->rdnss_timeout_id)
g_source_remove (device->rdnss_timeout_id);
+ if (device->dnssl_domains)
+ g_array_free (device->dnssl_domains, TRUE);
+ if (device->dnssl_timeout_id)
+ g_source_remove (device->dnssl_timeout_id);
if (device->ip6flags_poll_id)
g_source_remove (device->ip6flags_poll_id);
@@ -155,6 +167,8 @@ nm_ip6_device_new (NMIP6Manager *manager, int ifindex)
device->rdnss_servers = g_array_new (FALSE, FALSE, sizeof (NMIP6RDNSS));
+ device->dnssl_domains = g_array_new (FALSE, FALSE, sizeof (NMIP6DNSSL));
+
g_hash_table_replace (priv->devices, GINT_TO_POINTER (device->ifindex), device);
/* and the original value of IPv6 enable/disable */
@@ -285,7 +299,7 @@ set_rdnss_timeout (NMIP6Device *device)
nm_log_dbg (LOGD_IP6, "(%s): removing expired RA-provided nameserver %s",
device->iface, buf);
}
- g_array_remove_index_fast (device->rdnss_servers, i--);
+ g_array_remove_index (device->rdnss_servers, i--);
continue;
}
@@ -300,6 +314,61 @@ set_rdnss_timeout (NMIP6Device *device)
}
}
+static void set_dnssl_timeout (NMIP6Device *device);
+
+static gboolean
+dnssl_expired (gpointer user_data)
+{
+ NMIP6Device *device = user_data;
+ CallbackInfo info = { device, IP6_DHCP_OPT_NONE };
+
+ nm_log_dbg (LOGD_IP6, "(%s): IPv6 DNSSL information expired", device->iface);
+
+ set_dnssl_timeout (device);
+ emit_config_changed (&info);
+ return FALSE;
+}
+
+static void
+set_dnssl_timeout (NMIP6Device *device)
+{
+ time_t expires = 0, now = time (NULL);
+ NMIP6DNSSL *dnssl;
+ int i;
+
+ if (device->dnssl_timeout_id) {
+ g_source_remove (device->dnssl_timeout_id);
+ device->dnssl_timeout_id = 0;
+ }
+
+ /* Find the soonest expiration time. */
+ for (i = 0; i < device->dnssl_domains->len; i++) {
+ dnssl = &g_array_index (device->dnssl_domains, NMIP6DNSSL, i);
+ if (dnssl->expires == 0)
+ continue;
+
+ /* If the entry has already expired, remove it; the "+ 1" is
+ * because g_timeout_add_seconds() might fudge the timing a
+ * bit.
+ */
+ if (dnssl->expires <= now + 1) {
+ nm_log_dbg (LOGD_IP6, "(%s): removing expired RA-provided domain %s",
+ device->iface, dnssl->domain);
+ g_array_remove_index (device->dnssl_domains, i--);
+ continue;
+ }
+
+ if (!expires || dnssl->expires < expires)
+ expires = dnssl->expires;
+ }
+
+ if (expires) {
+ device->dnssl_timeout_id = g_timeout_add_seconds (expires - now,
+ dnssl_expired,
+ device);
+ }
+}
+
static CallbackInfo *
callback_info_new (NMIP6Device *device, guint dhcp_opts, gboolean success)
{
@@ -569,13 +638,258 @@ process_prefix (NMIP6Manager *manager, struct nl_msg *msg)
*/
#define ND_OPT_RDNSS 25
+#define ND_OPT_DNSSL 31
+
struct nd_opt_rdnss {
uint8_t nd_opt_rdnss_type;
uint8_t nd_opt_rdnss_len;
uint16_t nd_opt_rdnss_reserved1;
uint32_t nd_opt_rdnss_lifetime;
/* followed by one or more IPv6 addresses */
-};
+} __attribute__ ((packed));
+
+struct nd_opt_dnssl {
+ uint8_t nd_opt_dnssl_type;
+ uint8_t nd_opt_dnssl_len;
+ uint16_t nd_opt_dnssl_reserved1;
+ uint32_t nd_opt_dnssl_lifetime;
+ /* followed by one or more suffixes */
+} __attribute__ ((packed));
+
+static gboolean
+process_nduseropt_rdnss (NMIP6Device *device, struct nd_opt_hdr *opt)
+{
+ size_t opt_len;
+ struct nd_opt_rdnss *rdnss_opt;
+ time_t now = time (NULL);
+ struct in6_addr *addr;
+ GArray *new_servers;
+ NMIP6RDNSS server, *cur_server;
+ gboolean changed = FALSE;
+ guint i;
+
+ opt_len = opt->nd_opt_len;
+
+ if (opt_len < 3 || (opt_len & 1) == 0)
+ return FALSE;
+
+ rdnss_opt = (struct nd_opt_rdnss *) opt;
+
+ new_servers = g_array_new (FALSE, FALSE, sizeof (NMIP6RDNSS));
+
+ /* Pad the DNS server expiry somewhat to give a bit of slack in cases
+ * where one RA gets lost or something (which can happen on unreliable
+ * links like WiFi where certain types of frames are not retransmitted).
+ * Note that 0 has special meaning and is therefore not adjusted.
+ */
+ server.expires = ntohl (rdnss_opt->nd_opt_rdnss_lifetime);
+ if (server.expires > 0)
+ server.expires += now + 10;
+
+ for (addr = (struct in6_addr *) (rdnss_opt + 1); opt_len >= 2; addr++, opt_len -= 2) {
+ char buf[INET6_ADDRSTRLEN + 1];
+
+ if (!inet_ntop (AF_INET6, addr, buf, sizeof (buf)))
+ strcpy(buf, "[invalid]");
+
+ for (i = 0; i < device->rdnss_servers->len; i++) {
+ cur_server = &(g_array_index (device->rdnss_servers, NMIP6RDNSS, i));
+
+ if (!IN6_ARE_ADDR_EQUAL (addr, &cur_server->addr))
+ continue;
+
+ cur_server->expires = server.expires;
+
+ if (server.expires > 0) {
+ nm_log_dbg (LOGD_IP6, "(%s): refreshing RA-provided nameserver %s (expires in %d seconds)",
+ device->iface, buf,
+ server.expires - now);
+ break;
+ }
+
+ nm_log_dbg (LOGD_IP6, "(%s): removing RA-provided nameserver %s on router request",
+ device->iface, buf);
+
+ g_array_remove_index (device->rdnss_servers, i);
+ changed = TRUE;
+ break;
+ }
+
+ if (server.expires == 0)
+ continue;
+ if (i < device->rdnss_servers->len)
+ continue;
+
+ nm_log_dbg (LOGD_IP6, "(%s): found RA-provided nameserver %s (expires in %d seconds)",
+ device->iface, buf, server.expires - now);
+
+ server.addr = *addr;
+ g_array_append_val (new_servers, server);
+ }
+
+ /* New servers must be added in the order they are listed in the
+ * RA option and before any existing servers.
+ *
+ * Note: This is the place to remove servers if we want to cap the
+ * number of resolvers. The RFC states that the one to expire
+ * first of the existing servers should be removed.
+ */
+ if (new_servers->len) {
+ g_array_prepend_vals (device->rdnss_servers,
+ new_servers->data, new_servers->len);
+ changed = TRUE;
+ }
+
+ g_array_free (new_servers, TRUE);
+
+ /* Timeouts may have changed even if IPs didn't */
+ set_rdnss_timeout (device);
+
+ return changed;
+}
+
+static const char *
+parse_dnssl_domain (const unsigned char *buffer, size_t maxlen)
+{
+ static char domain[256];
+ size_t label_len;
+
+ domain[0] = '\0';
+
+ while (maxlen > 0) {
+ label_len = *buffer;
+ buffer++;
+ maxlen--;
+
+ if (label_len == 0)
+ return domain;
+
+ if (label_len > maxlen)
+ return NULL;
+ if ((sizeof (domain) - strlen (domain)) < (label_len + 2))
+ return NULL;
+
+ if (domain[0] != '\0')
+ strcat (domain, ".");
+ strncat (domain, (const char *)buffer, label_len);
+ buffer += label_len;
+ maxlen -= label_len;
+ }
+
+ return NULL;
+}
+
+static gboolean
+process_nduseropt_dnssl (NMIP6Device *device, struct nd_opt_hdr *opt)
+{
+ size_t opt_len;
+ struct nd_opt_dnssl *dnssl_opt;
+ unsigned char *opt_ptr;
+ time_t now = time (NULL);
+ GArray *new_domains;
+ NMIP6DNSSL domain, *cur_domain;
+ gboolean changed;
+ guint i;
+
+ opt_len = opt->nd_opt_len;
+
+ if (opt_len < 2)
+ return FALSE;
+
+ dnssl_opt = (struct nd_opt_dnssl *) opt;
+
+ opt_ptr = (unsigned char *)(dnssl_opt + 1);
+ opt_len = (opt_len - 1) * 8; /* prefer bytes for later handling */
+
+ new_domains = g_array_new (FALSE, FALSE, sizeof (NMIP6DNSSL));
+
+ changed = FALSE;
+
+ /* Pad the DNS server expiry somewhat to give a bit of slack in cases
+ * where one RA gets lost or something (which can happen on unreliable
+ * links like wifi where certain types of frames are not retransmitted).
+ * Note that 0 has special meaning and is therefore not adjusted.
+ */
+ domain.expires = ntohl (dnssl_opt->nd_opt_dnssl_lifetime);
+ if (domain.expires > 0)
+ domain.expires += now + 10;
+
+ while (opt_len) {
+ const char *domain_str;
+
+ domain_str = parse_dnssl_domain (opt_ptr, opt_len);
+ if (domain_str == NULL) {
+ nm_log_dbg (LOGD_IP6, "(%s): invalid DNSSL option, parsing aborted",
+ device->iface);
+ break;
+ }
+
+ /* The DNSSL encoding of domains happen to occupy the same size
+ * as the length of the resulting string, including terminating
+ * null. */
+ opt_ptr += strlen (domain_str) + 1;
+ opt_len -= strlen (domain_str) + 1;
+
+ /* Ignore empty domains. They're probably just padding... */
+ if (domain_str[0] == '\0')
+ continue;
+
+ for (i = 0; i < device->dnssl_domains->len; i++) {
+ cur_domain = &(g_array_index (device->dnssl_domains, NMIP6DNSSL, i));
+
+ if (strcmp (domain_str, cur_domain->domain) != 0)
+ continue;
+
+ cur_domain->expires = domain.expires;
+
+ if (domain.expires > 0) {
+ nm_log_dbg (LOGD_IP6, "(%s): refreshing RA-provided domain %s (expires in %d seconds)",
+ device->iface, domain_str,
+ domain.expires - now);
+ break;
+ }
+
+ nm_log_dbg (LOGD_IP6, "(%s): removing RA-provided domain %s on router request",
+ device->iface, domain_str);
+
+ g_array_remove_index (device->dnssl_domains, i);
+ changed = TRUE;
+ break;
+ }
+
+ if (domain.expires == 0)
+ continue;
+ if (i < device->dnssl_domains->len)
+ continue;
+
+ nm_log_dbg (LOGD_IP6, "(%s): found RA-provided domain %s (expires in %d seconds)",
+ device->iface, domain_str, domain.expires - now);
+
+ g_assert (strlen (domain_str) < sizeof (domain.domain));
+ strcpy (domain.domain, domain_str);
+ g_array_append_val (new_domains, domain);
+ }
+
+ /* New domains must be added in the order they are listed in the
+ * RA option and before any existing domains.
+ *
+ * Note: This is the place to remove domains if we want to cap the
+ * number of domains. The RFC states that the one to expire
+ * first of the existing domains should be removed.
+ */
+ if (new_domains->len) {
+ g_array_prepend_vals (device->dnssl_domains,
+ new_domains->data, new_domains->len);
+ changed = TRUE;
+ }
+
+ g_array_free (new_domains, TRUE);
+
+ /* Timeouts may have changed even if domains didn't */
+ set_dnssl_timeout (device);
+
+ return changed;
+}
static NMIP6Device *
process_nduseropt (NMIP6Manager *manager, struct nl_msg *msg)
@@ -583,13 +897,8 @@ process_nduseropt (NMIP6Manager *manager, struct nl_msg *msg)
NMIP6Device *device;
struct nduseroptmsg *ndmsg;
struct nd_opt_hdr *opt;
- guint opts_len, i;
- time_t now = time (NULL);
- struct nd_opt_rdnss *rdnss_opt;
- struct in6_addr *addr;
- GArray *servers;
- NMIP6RDNSS server, *sa, *sb;
- gboolean changed;
+ guint opts_len;
+ gboolean changed = FALSE;
nm_log_dbg (LOGD_IP6, "processing netlink nduseropt message");
@@ -608,8 +917,6 @@ process_nduseropt (NMIP6Manager *manager, struct nl_msg *msg)
return NULL;
}
- servers = g_array_new (FALSE, FALSE, sizeof (NMIP6RDNSS));
-
opt = (struct nd_opt_hdr *) (ndmsg + 1);
opts_len = ndmsg->nduseropt_opts_len;
@@ -619,66 +926,19 @@ process_nduseropt (NMIP6Manager *manager, struct nl_msg *msg)
if (nd_opt_len == 0 || opts_len < (nd_opt_len << 3))
break;
- if (opt->nd_opt_type != ND_OPT_RDNSS)
- goto next;
-
- if (nd_opt_len < 3 || (nd_opt_len & 1) == 0)
- goto next;
-
- rdnss_opt = (struct nd_opt_rdnss *) opt;
-
- /* Pad the DNS server expiry somewhat to give a bit of slack in cases
- * where one RA gets lost or something (which can happen on unreliable
- * links like wifi where certain types of frames are not retransmitted).
- */
- server.expires = now + ntohl (rdnss_opt->nd_opt_rdnss_lifetime) + 10;
-
- for (addr = (struct in6_addr *) (rdnss_opt + 1); nd_opt_len >= 2; addr++, nd_opt_len -= 2) {
- char buf[INET6_ADDRSTRLEN + 1];
-
- if (inet_ntop (AF_INET6, addr, buf, sizeof (buf))) {
- nm_log_dbg (LOGD_IP6, "(%s): found RA-provided nameserver %s (expires in %d seconds)",
- device->iface, buf,
- ntohl (rdnss_opt->nd_opt_rdnss_lifetime));
- }
-
- server.addr = *addr;
- g_array_append_val (servers, server);
+ switch (opt->nd_opt_type) {
+ case ND_OPT_RDNSS:
+ changed = process_nduseropt_rdnss (device, opt);
+ break;
+ case ND_OPT_DNSSL:
+ changed = process_nduseropt_dnssl (device, opt);
+ break;
}
- next:
opts_len -= opt->nd_opt_len << 3;
opt = (struct nd_opt_hdr *) ((uint8_t *) opt + (opt->nd_opt_len << 3));
}
- /* See if anything (other than expiration time) changed */
- if (servers->len != device->rdnss_servers->len)
- changed = TRUE;
- else {
- for (i = 0; i < servers->len; i++) {
- sa = &(g_array_index (servers, NMIP6RDNSS, i));
- sb = &(g_array_index (device->rdnss_servers, NMIP6RDNSS, i));
- if (IN6_ARE_ADDR_EQUAL (&sa->addr, &sb->addr) == FALSE) {
- changed = TRUE;
- break;
- }
- }
- changed = FALSE;
- }
-
- if (changed) {
- nm_log_dbg (LOGD_IP6, "(%s): RA-provided nameservers changed", device->iface);
- }
-
- /* Always copy in new servers (even if unchanged) to get their updated
- * expiration times.
- */
- g_array_free (device->rdnss_servers, TRUE);
- device->rdnss_servers = servers;
-
- /* Timeouts may have changed even if IPs didn't */
- set_rdnss_timeout (device);
-
if (changed)
return device;
else
@@ -791,7 +1051,7 @@ netlink_notification (NMNetlinkMonitor *monitor, struct nl_msg *msg, gpointer us
}
}
-void
+gboolean
nm_ip6_manager_prepare_interface (NMIP6Manager *manager,
int ifindex,
NMSettingIP6Config *s_ip6,
@@ -801,16 +1061,17 @@ nm_ip6_manager_prepare_interface (NMIP6Manager *manager,
NMIP6Device *device;
const char *method = NULL;
- g_return_if_fail (NM_IS_IP6_MANAGER (manager));
- g_return_if_fail (ifindex > 0);
+ g_return_val_if_fail (NM_IS_IP6_MANAGER (manager), FALSE);
+ g_return_val_if_fail (ifindex > 0, FALSE);
priv = NM_IP6_MANAGER_GET_PRIVATE (manager);
device = nm_ip6_device_new (manager, ifindex);
- g_return_if_fail (device != NULL);
- g_return_if_fail ( strchr (device->iface, '/') == NULL
- && strcmp (device->iface, "all") != 0
- && strcmp (device->iface, "default") != 0);
+ g_return_val_if_fail (device != NULL, FALSE);
+ g_return_val_if_fail ( strchr (device->iface, '/') == NULL
+ && strcmp (device->iface, "all") != 0
+ && strcmp (device->iface, "default") != 0,
+ FALSE);
if (s_ip6)
method = nm_setting_ip6_config_get_method (s_ip6);
@@ -825,6 +1086,8 @@ nm_ip6_manager_prepare_interface (NMIP6Manager *manager,
device->target_state = NM_IP6_DEVICE_GOT_ADDRESS;
nm_utils_do_sysctl (accept_ra_path, "1\n");
}
+
+ return TRUE;
}
static gboolean
@@ -1014,6 +1277,14 @@ nm_ip6_manager_get_ip6_config (NMIP6Manager *manager, int ifindex)
nm_ip6_config_add_nameserver (config, &rdnss[i].addr);
}
+ /* Add DNS domains */
+ if (device->dnssl_domains) {
+ NMIP6DNSSL *dnssl = (NMIP6DNSSL *)(device->dnssl_domains->data);
+
+ for (i = 0; i < device->dnssl_domains->len; i++)
+ nm_ip6_config_add_domain (config, dnssl[i].domain);
+ }
+
return config;
}
diff --git a/src/ip6-manager/nm-ip6-manager.h b/src/ip6-manager/nm-ip6-manager.h
index 77c110684..2732c63ec 100644
--- a/src/ip6-manager/nm-ip6-manager.h
+++ b/src/ip6-manager/nm-ip6-manager.h
@@ -71,7 +71,7 @@ typedef struct {
GType nm_ip6_manager_get_type (void);
NMIP6Manager *nm_ip6_manager_get (void);
-void nm_ip6_manager_prepare_interface (NMIP6Manager *manager,
+gboolean nm_ip6_manager_prepare_interface (NMIP6Manager *manager,
int ifindex,
NMSettingIP6Config *s_ip6,
const char *accept_ra_path);
diff --git a/src/logging/Makefile.in b/src/logging/Makefile.in
index 36f04548f..48a29b8f7 100644
--- a/src/logging/Makefile.in
+++ b/src/logging/Makefile.in
@@ -180,6 +180,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -194,6 +198,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/logging/nm-logging.c b/src/logging/nm-logging.c
index 5b5622fd7..c5f57a130 100644
--- a/src/logging/nm-logging.c
+++ b/src/logging/nm-logging.c
@@ -235,14 +235,14 @@ void _nm_log (const char *loc,
if ((log_level & LOGL_DEBUG) && (level == LOGL_DEBUG)) {
g_get_current_time (&tv);
- syslog (LOG_INFO, "<debug> [%ld.%ld] [%s] %s(): %s\n", tv.tv_sec, tv.tv_usec, loc, func, msg);
+ syslog (LOG_INFO, "<debug> [%ld.%ld] [%s] %s(): %s", tv.tv_sec, tv.tv_usec, loc, func, msg);
} else if ((log_level & LOGL_INFO) && (level == LOGL_INFO))
- syslog (LOG_INFO, "<info> %s\n", msg);
+ syslog (LOG_INFO, "<info> %s", msg);
else if ((log_level & LOGL_WARN) && (level == LOGL_WARN))
- syslog (LOG_WARNING, "<warn> %s\n", msg);
+ syslog (LOG_WARNING, "<warn> %s", msg);
else if ((log_level & LOGL_ERR) && (level == LOGL_ERR)) {
g_get_current_time (&tv);
- syslog (LOG_ERR, "<error> [%ld.%ld] [%s] %s(): %s\n", tv.tv_sec, tv.tv_usec, loc, func, msg);
+ syslog (LOG_ERR, "<error> [%ld.%ld] [%s] %s(): %s", tv.tv_sec, tv.tv_usec, loc, func, msg);
}
g_free (msg);
}
diff --git a/src/main.c b/src/main.c
index 7e75f05ef..b22c769df 100644
--- a/src/main.c
+++ b/src/main.c
@@ -49,6 +49,7 @@
#include "nm-netlink-monitor.h"
#include "nm-vpn-manager.h"
#include "nm-logging.h"
+#include "nm-policy-hosts.h"
#if !defined(NM_DIST_VERSION)
# define NM_DIST_VERSION VERSION
@@ -466,7 +467,7 @@ main (int argc, char *argv[])
{ "plugins", 0, 0, G_OPTION_ARG_STRING, &plugins, "List of plugins separated by ','", "plugin1,plugin2" },
{ "log-level", 0, 0, G_OPTION_ARG_STRING, &log_level, "Log level: one of [ERR, WARN, INFO, DEBUG]", "INFO" },
{ "log-domains", 0, 0, G_OPTION_ARG_STRING, &log_domains,
- "Log domains separated by ',': any combination of [NONE,HW,RKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,USER_SET,SYS_SET,SUSPEND,CORE,DEVICE,OLPC]",
+ "Log domains separated by ',': any combination of [NONE,HW,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,WIFI_SCAN,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,USER_SET,SYS_SET,SUSPEND,CORE,DEVICE,OLPC]",
"HW,RFKILL,WIFI" },
{NULL}
};
@@ -713,6 +714,9 @@ main (int argc, char *argv[])
goto done;
}
+ /* Clean leftover "# Added by NetworkManager" entries from /etc/hosts */
+ nm_policy_hosts_clean_etc_hosts ();
+
nm_manager_start (manager);
/* Bring up the loopback interface. */
diff --git a/src/modem-manager/Makefile.in b/src/modem-manager/Makefile.in
index 042b202d3..c640df5be 100644
--- a/src/modem-manager/Makefile.in
+++ b/src/modem-manager/Makefile.in
@@ -186,6 +186,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -200,6 +204,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/modem-manager/nm-modem.c b/src/modem-manager/nm-modem.c
index e07b818bb..b3f7eaa1c 100644
--- a/src/modem-manager/nm-modem.c
+++ b/src/modem-manager/nm-modem.c
@@ -876,6 +876,12 @@ modem_properties_changed (DBusGProxy *proxy,
priv->mm_enabled = g_value_get_boolean (value);
g_object_notify (G_OBJECT (self), NM_MODEM_ENABLED);
}
+
+ value = g_hash_table_lookup (props, "IpMethod");
+ if (value && G_VALUE_HOLDS_UINT (value)) {
+ priv->ip_method = g_value_get_uint (value);
+ g_object_notify (G_OBJECT (self), NM_MODEM_IP_METHOD);
+ }
}
/*****************************************************************************/
diff --git a/src/nm-activation-request.c b/src/nm-activation-request.c
index 2529e77f6..7d1314014 100644
--- a/src/nm-activation-request.c
+++ b/src/nm-activation-request.c
@@ -35,6 +35,7 @@
#include "nm-properties-changed-signal.h"
#include "nm-active-connection.h"
#include "nm-dbus-glib-types.h"
+#include "nm-active-connection-glue.h"
static void secrets_provider_interface_init (NMSecretsProviderInterface *sp_interface_class);
@@ -304,64 +305,15 @@ nm_act_request_class_init (NMActRequestClass *req_class)
object_class->finalize = finalize;
/* properties */
- g_object_class_install_property
- (object_class, PROP_SERVICE_NAME,
- g_param_spec_string (NM_ACTIVE_CONNECTION_SERVICE_NAME,
- "Service name",
- "Service name",
- NULL,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_CONNECTION,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_CONNECTION,
- "Connection",
- "Connection",
- DBUS_TYPE_G_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_SPECIFIC_OBJECT,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT,
- "Specific object",
- "Specific object",
- DBUS_TYPE_G_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES,
- "Devices",
- "Devices",
- DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE,
- "State",
- "State",
- NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
- NM_ACTIVE_CONNECTION_STATE_ACTIVATED,
- NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEFAULT,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT,
- "Default",
- "Is the default IPv4 active connection",
- FALSE,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEFAULT6,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6,
- "Default6",
- "Is the default IPv6 active connection",
- FALSE,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_VPN,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN,
- "VPN",
- "Is a VPN connection",
- FALSE,
- G_PARAM_READABLE));
+ nm_active_connection_install_properties (object_class,
+ PROP_SERVICE_NAME,
+ PROP_CONNECTION,
+ PROP_SPECIFIC_OBJECT,
+ PROP_DEVICES,
+ PROP_STATE,
+ PROP_DEFAULT,
+ PROP_DEFAULT6,
+ PROP_VPN);
/* Signals */
signals[CONNECTION_SECRETS_UPDATED] =
@@ -386,9 +338,10 @@ nm_act_request_class_init (NMActRequestClass *req_class)
signals[PROPERTIES_CHANGED] =
nm_properties_changed_signal_new (object_class,
- G_STRUCT_OFFSET (NMActRequestClass, properties_changed));
+ G_STRUCT_OFFSET (NMActRequestClass, properties_changed));
- nm_active_connection_install_type_info (object_class);
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (req_class),
+ &dbus_glib_nm_active_connection_object_info);
}
static gboolean
diff --git a/src/nm-active-connection.c b/src/nm-active-connection.c
index 4207e1450..90495bd2c 100644
--- a/src/nm-active-connection.c
+++ b/src/nm-active-connection.c
@@ -21,8 +21,8 @@
#include <glib.h>
#include "nm-active-connection.h"
#include "NetworkManager.h"
-#include "nm-active-connection-glue.h"
#include "nm-logging.h"
+#include "nm-dbus-glib-types.h"
char *
nm_active_connection_get_next_object_path (void)
@@ -33,13 +33,6 @@ nm_active_connection_get_next_object_path (void)
}
void
-nm_active_connection_install_type_info (GObjectClass *klass)
-{
- dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
- &dbus_glib_nm_active_connection_object_info);
-}
-
-void
nm_active_connection_scope_to_value (NMConnection *connection, GValue *value)
{
if (!connection) {
@@ -60,4 +53,73 @@ nm_active_connection_scope_to_value (NMConnection *connection, GValue *value)
}
}
+void
+nm_active_connection_install_properties (GObjectClass *object_class,
+ guint prop_service_name,
+ guint prop_connection,
+ guint prop_specific_object,
+ guint prop_devices,
+ guint prop_state,
+ guint prop_default,
+ guint prop_default6,
+ guint prop_vpn)
+{
+ g_object_class_install_property (object_class, prop_service_name,
+ g_param_spec_string (NM_ACTIVE_CONNECTION_SERVICE_NAME,
+ "Service name",
+ "Service name",
+ NULL,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_connection,
+ g_param_spec_boxed (NM_ACTIVE_CONNECTION_CONNECTION,
+ "Connection",
+ "Connection",
+ DBUS_TYPE_G_OBJECT_PATH,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_specific_object,
+ g_param_spec_boxed (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT,
+ "Specific object",
+ "Specific object",
+ DBUS_TYPE_G_OBJECT_PATH,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_devices,
+ g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES,
+ "Devices",
+ "Devices",
+ DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_state,
+ g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE,
+ "State",
+ "State",
+ NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
+ NM_ACTIVE_CONNECTION_STATE_ACTIVATED,
+ NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_default,
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT,
+ "Default",
+ "Is the default IPv4 active connection",
+ FALSE,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_default6,
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6,
+ "Default6",
+ "Is the default IPv6 active connection",
+ FALSE,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, prop_vpn,
+ g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN,
+ "VPN",
+ "Is a VPN connection",
+ FALSE,
+ G_PARAM_READABLE));
+}
diff --git a/src/nm-active-connection.h b/src/nm-active-connection.h
index 6a463cb25..5dde30875 100644
--- a/src/nm-active-connection.h
+++ b/src/nm-active-connection.h
@@ -35,8 +35,16 @@
char *nm_active_connection_get_next_object_path (void);
-void nm_active_connection_install_type_info (GObjectClass *klass);
-
void nm_active_connection_scope_to_value (NMConnection *connection, GValue *value);
+void nm_active_connection_install_properties (GObjectClass *object_class,
+ guint prop_service_name,
+ guint prop_connection,
+ guint prop_specific_object,
+ guint prop_devices,
+ guint prop_state,
+ guint prop_default,
+ guint prop_default6,
+ guint prop_vpn);
+
#endif /* NM_ACTIVE_CONNECTION_H */
diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c
index 08bbc5011..49e588873 100644
--- a/src/nm-device-ethernet.c
+++ b/src/nm-device-ethernet.c
@@ -308,7 +308,7 @@ _update_s390_subchannels (NMDeviceEthernet *self)
const char *iface;
GUdevClient *client;
GUdevDevice *dev;
- GUdevDevice *parent;
+ GUdevDevice *parent = NULL;
const char *parent_path, *item, *driver;
const char *subsystems[] = { "net", NULL };
GDir *dir;
@@ -487,8 +487,42 @@ constructor (GType type,
}
static void
+clear_secrets_tries (NMDevice *device)
+{
+ NMActRequest *req;
+ NMConnection *connection;
+
+ req = nm_device_get_act_request (device);
+ if (req) {
+ connection = nm_act_request_get_connection (req);
+ /* Clear wired secrets tries on success, failure, or when deactivating */
+ g_object_set_data (G_OBJECT (connection), WIRED_SECRETS_TRIES, NULL);
+ }
+}
+
+static void
+device_state_changed (NMDevice *device,
+ NMDeviceState new_state,
+ NMDeviceState old_state,
+ NMDeviceStateReason reason,
+ gpointer user_data)
+{
+
+ switch (new_state) {
+ case NM_DEVICE_STATE_ACTIVATED:
+ case NM_DEVICE_STATE_FAILED:
+ case NM_DEVICE_STATE_DISCONNECTED:
+ clear_secrets_tries (device);
+ break;
+ default:
+ break;
+ }
+}
+
+static void
nm_device_ethernet_init (NMDeviceEthernet * self)
{
+ g_signal_connect (self, "state-changed", G_CALLBACK (device_state_changed), NULL);
}
static gboolean
@@ -1751,6 +1785,9 @@ real_deactivate_quickly (NMDevice *device)
NMDeviceEthernet *self = NM_DEVICE_ETHERNET (device);
NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (self);
+ /* Clear wired secrets tries when deactivating */
+ clear_secrets_tries (device);
+
if (priv->pending_ip4_config) {
g_object_unref (priv->pending_ip4_config);
priv->pending_ip4_config = NULL;
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index b09d11254..451284dce 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -1231,6 +1231,15 @@ real_deactivate_quickly (NMDevice *dev)
NMDeviceWifi *self = NM_DEVICE_WIFI (dev);
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
NMAccessPoint *orig_ap = nm_device_wifi_get_activation_ap (self);
+ NMActRequest *req;
+ NMConnection *connection;
+
+ req = nm_device_get_act_request (dev);
+ if (req) {
+ connection = nm_act_request_get_connection (req);
+ /* Clear wireless secrets tries when deactivating */
+ g_object_set_data (G_OBJECT (connection), WIRELESS_SECRETS_TRIES, NULL);
+ }
cleanup_association_attempt (self, TRUE);
diff --git a/src/nm-device.c b/src/nm-device.c
index e8f0b206c..9c771c2ab 100644
--- a/src/nm-device.c
+++ b/src/nm-device.c
@@ -790,6 +790,7 @@ addrconf6_setup (NMDevice *self)
NMActRequest *req;
NMConnection *connection;
NMSettingIP6Config *s_ip6;
+ gboolean success;
req = nm_device_get_act_request (self);
g_assert (req);
@@ -809,13 +810,14 @@ addrconf6_setup (NMDevice *self)
}
s_ip6 = (NMSettingIP6Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP6_CONFIG);
- nm_ip6_manager_prepare_interface (priv->ip6_manager,
- nm_device_get_ip_ifindex (self),
- s_ip6,
- priv->ip6_accept_ra_path);
- priv->ip6_waiting_for_config = TRUE;
+ success = nm_ip6_manager_prepare_interface (priv->ip6_manager,
+ nm_device_get_ip_ifindex (self),
+ s_ip6,
+ priv->ip6_accept_ra_path);
+ if (success)
+ priv->ip6_waiting_for_config = TRUE;
- return TRUE;
+ return success;
}
static void
@@ -1951,7 +1953,9 @@ nm_device_activate_stage4_ip4_config_get (gpointer user_data)
g_object_set_data (G_OBJECT (nm_device_get_act_request (self)),
NM_ACT_REQUEST_IP4_CONFIG, ip4_config);
+nm_log_info (LOGD_DEVICE | LOGD_IP4, "Scheduling stage 5");
nm_device_activate_schedule_stage5_ip_config_commit (self, AF_INET);
+nm_log_info (LOGD_DEVICE | LOGD_IP4, "Done scheduling stage 5");
out:
nm_log_info (LOGD_DEVICE | LOGD_IP4,
@@ -2803,17 +2807,22 @@ nm_device_deactivate (NMDeviceInterface *device, NMDeviceStateReason reason)
{
NMDevice *self = NM_DEVICE (device);
NMDeviceStateReason ignored = NM_DEVICE_STATE_REASON_NONE;
+ gboolean tried_ipv6 = FALSE;
g_return_if_fail (self != NULL);
nm_log_info (LOGD_DEVICE, "(%s): deactivating device (reason: %d).",
nm_device_get_iface (self), reason);
+ /* Check this before deactivate_quickly is run */
+ if (NM_DEVICE_GET_PRIVATE (self)->ip6_manager)
+ tried_ipv6 = TRUE;
+
nm_device_deactivate_quickly (self);
/* Take out any entries in the routing table and any IP address the device had. */
- nm_system_device_flush_routes (self, nm_device_get_ip6_config (self) ? AF_UNSPEC : AF_INET);
- nm_system_device_flush_addresses (self);
+ nm_system_device_flush_routes (self, tried_ipv6 ? AF_UNSPEC : AF_INET);
+ nm_system_device_flush_addresses (self, tried_ipv6 ? AF_UNSPEC : AF_INET);
nm_device_update_ip4_address (self);
/* Clean up nameservers and addresses */
@@ -3321,7 +3330,7 @@ dispose (GObject *object)
if ( nm_device_interface_can_assume_connections (NM_DEVICE_INTERFACE (self))
&& (nm_device_get_state (self) == NM_DEVICE_STATE_ACTIVATED)) {
NMConnection *connection;
- NMSettingIP4Config *s_ip4;
+ NMSettingIP4Config *s_ip4 = NULL;
const char *method = NULL;
/* Only system connections can be left up */
@@ -3334,9 +3343,8 @@ dispose (GObject *object)
* to check that.
*/
s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
- g_assert (s_ip4);
-
- method = nm_setting_ip4_config_get_method (s_ip4);
+ if (s_ip4)
+ method = nm_setting_ip4_config_get_method (s_ip4);
if ( !method
|| !strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO)
|| !strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_MANUAL))
diff --git a/src/nm-manager.c b/src/nm-manager.c
index eb393facc..8b24aa516 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2007 - 2009 Novell, Inc.
- * Copyright (C) 2007 - 2010 Red Hat, Inc.
+ * Copyright (C) 2007 - 2011 Red Hat, Inc.
*/
#include <config.h>
@@ -464,18 +464,19 @@ nm_manager_update_state (NMManager *manager)
}
static void
-ignore_cb (NMSettingsConnectionInterface *connection, GError *error, gpointer user_data)
-{
-}
-
-static void
update_active_connection_timestamp (NMManager *manager, NMDevice *device)
{
NMActRequest *req;
NMConnection *connection;
NMSettingConnection *s_con;
- NMSettingsConnectionInterface *connection_interface;
NMManagerPrivate *priv;
+ const char *connection_uuid;
+ guint64 timestamp;
+ guint64 *ts_ptr;
+ GKeyFile *timestamps_file;
+ char *data, *tmp;
+ gsize len;
+ GError *error = NULL;
g_return_if_fail (NM_IS_DEVICE (device));
@@ -490,16 +491,38 @@ update_active_connection_timestamp (NMManager *manager, NMDevice *device)
if (nm_connection_get_scope (connection) != NM_CONNECTION_SCOPE_SYSTEM)
return;
+ /* Update timestamp in connection's object data */
+ timestamp = (guint64) time (NULL);
+ ts_ptr = g_new (guint64, 1);
+ *ts_ptr = timestamp;
+ g_object_set_data_full (G_OBJECT (connection), NM_SYSCONFIG_SETTINGS_TIMESTAMP_TAG, ts_ptr, g_free);
+
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (NM_CONNECTION (connection), NM_TYPE_SETTING_CONNECTION));
g_assert (s_con);
- g_object_set (s_con, NM_SETTING_CONNECTION_TIMESTAMP, (guint64) time (NULL), NULL);
+ connection_uuid = nm_setting_connection_get_uuid (s_con);
- if (nm_setting_connection_get_read_only (s_con))
- return;
+ /* Save timestamp to timestamps database file */
+ timestamps_file = g_key_file_new ();
+ if (!g_key_file_load_from_file (timestamps_file, NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, &error)) {
+ if (!(error->domain == G_FILE_ERROR && error->code == G_FILE_ERROR_NOENT))
+ nm_log_warn (LOGD_SYS_SET, "error parsing timestamps file '%s': %s", NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, error->message);
+ g_clear_error (&error);
+ }
+
+ tmp = g_strdup_printf ("%" G_GUINT64_FORMAT, timestamp);
+ g_key_file_set_value (timestamps_file, "timestamps", connection_uuid, tmp);
+ g_free (tmp);
- connection_interface = nm_settings_interface_get_connection_by_path (NM_SETTINGS_INTERFACE (priv->sys_settings),
- nm_connection_get_path (connection));
- nm_settings_connection_interface_update (connection_interface, ignore_cb, NULL);
+ data = g_key_file_to_data (timestamps_file, &len, &error);
+ if (data) {
+ g_file_set_contents (NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, data, len, &error);
+ g_free (data);
+ }
+ if (error) {
+ nm_log_warn (LOGD_SYS_SET, "error saving timestamp: %s", error->message);
+ g_error_free (error);
+ }
+ g_key_file_free (timestamps_file);
}
static void
@@ -1356,6 +1379,12 @@ user_proxy_init (NMManager *self)
g_return_if_fail (self != NULL);
g_return_if_fail (priv->user_proxy == NULL);
+ /* Don't try to initialize the user settings proxy if the user
+ * settings service doesn't actually exist.
+ */
+ if (!nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
+ return;
+
bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
priv->user_proxy = dbus_g_proxy_new_for_name_owner (bus,
NM_DBUS_SERVICE_USER_SETTINGS,
@@ -2426,6 +2455,14 @@ udev_device_removed_cb (NMUdevManager *manager,
ifindex = g_udev_device_get_property_as_int (udev_device, "IFINDEX");
device = find_device_by_ifindex (self, ifindex);
+ if (!device) {
+ /* On removal we won't always be able to read properties anymore, as
+ * they may have already been removed from sysfs. Instead, we just
+ * have to fall back to the device's interface name.
+ */
+ device = find_device_by_iface (self, g_udev_device_get_name (udev_device));
+ }
+
if (device)
priv->devices = remove_one_device (self, priv->devices, device, FALSE);
}
@@ -3845,6 +3882,23 @@ nm_manager_auto_user_connections_allowed (NMManager *self)
&& priv->user_con_perm == NM_AUTH_CALL_RESULT_YES;
}
+static guint64
+get_connection_timestamp (NMConnection *connection)
+{
+ if (nm_connection_get_scope (connection) == NM_CONNECTION_SCOPE_SYSTEM) {
+ guint64 *ts_p;
+
+ ts_p = (guint64 *) g_object_get_data (G_OBJECT (connection), NM_SYSCONFIG_SETTINGS_TIMESTAMP_TAG);
+ return ts_p != NULL ? *ts_p : 0;
+ } else {
+ NMSettingConnection *s_con;
+
+ s_con = (NMSettingConnection *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION);
+ g_assert (s_con);
+ return nm_setting_connection_get_timestamp (s_con);
+ }
+}
+
static int
connection_sort (gconstpointer pa, gconstpointer pb)
{
@@ -3852,6 +3906,7 @@ connection_sort (gconstpointer pa, gconstpointer pb)
NMSettingConnection *con_a;
NMConnection *b = NM_CONNECTION (pb);
NMSettingConnection *con_b;
+ guint64 ts_a, ts_b;
con_a = (NMSettingConnection *) nm_connection_get_setting (a, NM_TYPE_SETTING_CONNECTION);
g_assert (con_a);
@@ -3864,10 +3919,13 @@ connection_sort (gconstpointer pa, gconstpointer pb)
return 1;
}
- if (nm_setting_connection_get_timestamp (con_a) > nm_setting_connection_get_timestamp (con_b))
+ ts_a = get_connection_timestamp (a);
+ ts_b = get_connection_timestamp (b);
+ if (ts_a > ts_b)
return -1;
- else if (nm_setting_connection_get_timestamp (con_a) == nm_setting_connection_get_timestamp (con_b))
+ else if (ts_a == ts_b)
return 0;
+
return 1;
}
@@ -3967,8 +4025,7 @@ nm_manager_start (NMManager *self)
* they will be queried when the user settings service shows up on the
* bus in nm_manager_name_owner_changed().
*/
- if (nm_dbus_manager_name_has_owner (priv->dbus_mgr, NM_DBUS_SERVICE_USER_SETTINGS))
- user_proxy_init (self);
+ user_proxy_init (self);
nm_udev_manager_query_devices (priv->udev_mgr);
bluez_manager_resync_devices (self);
@@ -4351,10 +4408,11 @@ dispose (GObject *object)
/* Unregister property filter */
bus = nm_dbus_manager_get_connection (priv->dbus_mgr);
- g_assert (bus);
- dbus_connection = dbus_g_connection_get_connection (bus);
- g_assert (dbus_connection);
- dbus_connection_remove_filter (dbus_connection, prop_filter, manager);
+ if (bus) {
+ dbus_connection = dbus_g_connection_get_connection (bus);
+ g_assert (dbus_connection);
+ dbus_connection_remove_filter (dbus_connection, prop_filter, manager);
+ }
g_object_unref (priv->dbus_mgr);
if (priv->bluez_mgr)
diff --git a/src/nm-policy-hostname.c b/src/nm-policy-hostname.c
index 42a2e0f9a..4fe69c5a9 100644
--- a/src/nm-policy-hostname.c
+++ b/src/nm-policy-hostname.c
@@ -30,7 +30,6 @@
#include "nm-logging.h"
#include "nm-policy-hostname.h"
-#include "nm-policy-hosts.h"
/************************************************************************/
@@ -206,74 +205,39 @@ hostname_thread_is_dead (HostnameThread *ht)
/************************************************************************/
#define FALLBACK_HOSTNAME4 "localhost.localdomain"
-#define FALLBACK_HOSTNAME6 "localhost6.localdomain6"
gboolean
-nm_policy_set_system_hostname (const char *new_hostname,
- const char *ip4_addr,
- const char *ip6_addr,
- const char *msg)
+nm_policy_set_system_hostname (const char *new_hostname, const char *msg)
{
char old_hostname[HOST_NAME_MAX + 1];
- int ret = 0;
const char *name;
- gboolean set_hostname = TRUE, changed = FALSE, old_valid = TRUE;
+ int ret;
if (new_hostname)
g_warn_if_fail (strlen (new_hostname));
- name = (new_hostname && strlen (new_hostname)) ? new_hostname : FALLBACK_HOSTNAME4;
-
old_hostname[HOST_NAME_MAX] = '\0';
errno = 0;
ret = gethostname (old_hostname, HOST_NAME_MAX);
if (ret != 0) {
nm_log_warn (LOGD_DNS, "couldn't get the system hostname: (%d) %s",
errno, strerror (errno));
- old_valid = FALSE;
} else {
/* Don't set the hostname if it isn't actually changing */
if ( (new_hostname && !strcmp (old_hostname, new_hostname))
|| (!new_hostname && !strcmp (old_hostname, FALLBACK_HOSTNAME4)))
- set_hostname = FALSE;
-
- if (old_hostname[0] == '\0')
- old_valid = FALSE;
- }
-
- if (set_hostname) {
- nm_log_info (LOGD_DNS, "Setting system hostname to '%s' (%s)", name, msg);
- ret = sethostname (name, strlen (name));
- if (ret != 0) {
- nm_log_warn (LOGD_DNS, "couldn't set the system hostname to '%s': (%d) %s",
- name, errno, strerror (errno));
return FALSE;
- }
}
- /* But even if the hostname isn't changing, always try updating /etc/hosts
- * just in case the hostname changed while NM wasn't running; we need to
- * make sure that /etc/hosts has valid mappings for '127.0.0.1' and the
- * current system hostname. If those exist,
- * nm_policy_hosts_update_etc_hosts() will just return and won't touch
- * /etc/hosts at all.
- */
- if (!nm_policy_hosts_update_etc_hosts (name,
- old_valid ? old_hostname : NULL,
- FALLBACK_HOSTNAME4,
- FALLBACK_HOSTNAME6,
- ip4_addr,
- ip6_addr,
- &changed)) {
- /* error updating /etc/hosts; fallback to localhost.localdomain */
- nm_log_info (LOGD_DNS, "Setting system hostname to '" FALLBACK_HOSTNAME4 "' (error updating /etc/hosts)");
- ret = sethostname (FALLBACK_HOSTNAME4, strlen (FALLBACK_HOSTNAME4));
- if (ret != 0) {
- nm_log_warn (LOGD_DNS, "couldn't set the fallback system hostname (%s): (%d) %s",
- FALLBACK_HOSTNAME4, errno, strerror (errno));
- }
+ name = (new_hostname && strlen (new_hostname)) ? new_hostname : FALLBACK_HOSTNAME4;
+
+ nm_log_info (LOGD_DNS, "Setting system hostname to '%s' (%s)", name, msg);
+ ret = sethostname (name, strlen (name));
+ if (ret != 0) {
+ nm_log_warn (LOGD_DNS, "couldn't set the system hostname to '%s': (%d) %s",
+ name, errno, strerror (errno));
}
- return changed;
+ return (ret == 0);
}
diff --git a/src/nm-policy-hostname.h b/src/nm-policy-hostname.h
index 9c7688472..e76713f16 100644
--- a/src/nm-policy-hostname.h
+++ b/src/nm-policy-hostname.h
@@ -24,10 +24,7 @@
#include <glib.h>
-gboolean nm_policy_set_system_hostname (const char *new_hostname,
- const char *ip4_addr,
- const char *ip6_addr,
- const char *msg);
+gboolean nm_policy_set_system_hostname (const char *new_hostname, const char *msg);
typedef struct HostnameThread HostnameThread;
diff --git a/src/nm-policy-hosts.c b/src/nm-policy-hosts.c
index 7f9cff807..8bbd1d3b5 100644
--- a/src/nm-policy-hosts.c
+++ b/src/nm-policy-hosts.c
@@ -20,526 +20,74 @@
#include <config.h>
#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <netdb.h>
-#include <ctype.h>
-#include <arpa/inet.h>
#include "nm-policy-hosts.h"
#include "nm-logging.h"
-#define IP4_LH "127.0.0.1"
-#define IP6_LH "::1"
-
-gboolean
-nm_policy_hosts_find_token (const char *line, const char *token)
-{
- const char *start = line, *p = line;
-
- g_return_val_if_fail (line != NULL, FALSE);
- g_return_val_if_fail (token != NULL, FALSE);
- g_return_val_if_fail (strlen (token) > 0, FALSE);
-
- /* Walk through the line to find the next whitespace character */
- while (p <= line + strlen (line)) {
- if (isblank (*p) || (*p == '\0')) {
- /* Token starts with 'start' and ends with 'end' */
- if ((p > start) && *start && (p - start == strlen (token)) && !strncmp (start, token, (p - start)))
- return TRUE; /* found */
-
- /* not found; advance start and continue looking */
- start = p + 1;
- }
- p++;
- }
-
- return FALSE;
-}
-
-static gboolean
-is_local_mapping (const char *str, gboolean ip6, const char *hostname)
-{
- const char *addr = ip6 ? IP6_LH : IP4_LH;
- const char *fallback = ip6 ? "localhost6" : "localhost";
-
- return ( !strncmp (str, addr, strlen (addr))
- && nm_policy_hosts_find_token (str, hostname ? hostname : fallback));
-}
-
-static gboolean
-is_ip4_addr (const char *str)
-{
- struct in_addr found;
- char buf[INET_ADDRSTRLEN + 2];
- const char *p = str;
- guint32 i = 0;
-
- memset (buf, 0, sizeof (buf));
- while (*p && !isblank (*p) && (i < sizeof (buf)))
- buf[i++] = *p++;
-
- return inet_pton (AF_INET, buf, &found) == 1 ? TRUE : FALSE;
-}
-
-static gboolean
-ip4_addr_matches (const char *str, const char *ip4_addr)
-{
- struct in_addr found, given;
- char buf[INET_ADDRSTRLEN + 2];
- const char *p = str;
- guint32 i = 0;
-
- g_return_val_if_fail (ip4_addr != NULL, FALSE);
-
- memset (buf, 0, sizeof (buf));
- while (*p && !isblank (*p) && (i < sizeof (buf)))
- buf[i++] = *p++;
-
- if (inet_pton (AF_INET, buf, &found) != 1)
- return FALSE;
- if (inet_pton (AF_INET, ip4_addr, &given) != 1)
- return FALSE;
-
- return memcmp (&found, &given, sizeof (found)) == 0;
-}
-
-static gboolean
-is_ip6_addr (const char *str)
-{
- struct in6_addr found;
- char buf[INET6_ADDRSTRLEN + 2];
- const char *p = str;
- guint32 i = 0;
-
- memset (buf, 0, sizeof (buf));
- while (*p && !isblank (*p) && (i < sizeof (buf)))
- buf[i++] = *p++;
-
- return inet_pton (AF_INET6, buf, &found) == 1 ? TRUE : FALSE;
-}
-
-static gboolean
-ip6_addr_matches (const char *str, const char *ip6_addr)
-{
- struct in6_addr found, given;
- char buf[INET6_ADDRSTRLEN + 2];
- const char *p = str;
- guint32 i = 0;
-
- g_return_val_if_fail (ip6_addr != NULL, FALSE);
-
- memset (buf, 0, sizeof (buf));
- while (*p && !isblank (*p) && (i < sizeof (buf)))
- buf[i++] = *p++;
-
- if (inet_pton (AF_INET6, buf, &found) != 1)
- return FALSE;
- if (inet_pton (AF_INET6, ip6_addr, &given) != 1)
- return FALSE;
-
- return memcmp (&found, &given, sizeof (found)) == 0;
-}
-
-static char *
-get_custom_hostnames (const char *line,
- const char *hostname,
- const char *old_hostname,
- const char *short_hostname,
- const char *fallback_hostname)
-{
- char **items = NULL, **iter;
- guint start = 0;
- GString *str = NULL;
- char *custom = NULL;
-
- g_return_val_if_fail (line != NULL, NULL);
-
- if (!strncmp (line, IP4_LH, strlen (IP4_LH)))
- start = strlen (IP4_LH);
- else if (!strncmp (line, IP6_LH, strlen (IP6_LH)))
- start = strlen (IP6_LH);
-
- g_return_val_if_fail (start > 0, NULL);
-
- /* Split the line into tokens */
- items = g_strsplit_set (line + start, " \t", -1);
- if (!items)
- return NULL;
-
- str = g_string_sized_new (50);
- /* Ignore current & old hostnames, and localhost-anything */
- for (iter = items; iter && *iter; iter++) {
- if (*iter[0] == '\0')
- continue;
- if (hostname && !strcmp (*iter, hostname))
- continue;
- if (old_hostname && !strcmp (*iter, old_hostname))
- continue;
- if (short_hostname && !strcmp (*iter, short_hostname))
- continue;
- if (fallback_hostname && !strcmp (*iter, fallback_hostname))
- continue;
- if (!strcmp (*iter, "localhost"))
- continue;
- if (!strcmp (*iter, "localhost6"))
- continue;
- if (!strcmp (*iter, "localhost.localdomain"))
- continue;
- if (!strcmp (*iter, "localhost4.localdomain4"))
- continue;
- if (!strcmp (*iter, "localhost6.localdomain6"))
- continue;
-
- /* Found a custom hostname */
- g_string_append_c (str, '\t');
- g_string_append (str, *iter);
- }
-
- if (str->len)
- custom = g_string_free (str, FALSE);
- else
- g_string_free (str, TRUE);
-
- g_strfreev (items);
- return custom;
-}
-
#define ADDED_TAG "# Added by NetworkManager"
GString *
-nm_policy_get_etc_hosts (const char **lines,
- gsize existing_len,
- const char *hostname,
- const char *old_hostname,
- const char *fallback_hostname4,
- const char *fallback_hostname6,
- const char *ip4_addr,
- const char *ip6_addr,
- GError **error)
+nm_policy_get_etc_hosts (const char *contents, gsize contents_len)
{
- GString *contents = NULL;
- const char **line;
- gboolean found_localhost4 = FALSE;
- gboolean found_localhost6 = FALSE;
- gboolean found_host4 = FALSE;
- gboolean found_host6 = FALSE;
- gboolean found_user_host4 = FALSE;
- gboolean found_user_host6 = FALSE;
- gboolean initial_comments = TRUE;
- gboolean added = FALSE;
- gboolean hostname4_is_fallback;
- gboolean hostname6_is_fallback;
- gboolean host4_before = FALSE;
- gboolean host6_before = FALSE;
- gboolean no_stale = TRUE;
- char *short_hostname = NULL;
- char *custom4 = NULL;
- char *custom6 = NULL;
-
- g_return_val_if_fail (lines != NULL, FALSE);
- g_return_val_if_fail (hostname != NULL, FALSE);
-
- hostname4_is_fallback = !strcmp (hostname, fallback_hostname4);
- hostname6_is_fallback = !strcmp (hostname, fallback_hostname6);
-
- /* Find the short hostname, like 'foo' from 'foo.bar.baz'; we want to
- * make sure that the entries we add for this host also include the short
- * hostname too so that if the resolver does not answer queries for the
- * machine's actual hostname/domain, that stuff like 'ping foo' still works.
- */
- if (!hostname4_is_fallback || !hostname6_is_fallback) {
- char *dot;
-
- short_hostname = g_strdup (hostname);
- dot = strchr (short_hostname, '.');
- if (dot && *(dot+1))
- *dot = '\0';
- else {
- g_free (short_hostname);
- short_hostname = NULL;
- }
- }
-
- /* We need the following in /etc/hosts:
- *
- * 1) current hostname mapped to current IPv4 addresses if IPv4 is active
- * 2) current hostname mapped to current IPv6 addresses if IPv6 is active
- * 3) 'localhost' mapped to 127.0.0.1
- * 4) 'localhost6' mapped to ::1
- *
- * If all these things exist we don't need to bother updating the file.
- */
-
- if (!ip4_addr)
- host4_before = TRUE;
- if (!ip6_addr)
- host6_before = TRUE;
-
- /* Look for the four cases from above */
- for (line = lines; lines && *line; line++) {
- gboolean found_hostname = FALSE;
-
- if ((*line[0] == '\0') || (*line[0] == '#'))
- continue;
+ char **lines = NULL, **iter;
+ GString *new_contents = NULL;
- found_hostname = nm_policy_hosts_find_token (*line, hostname);
- if (found_hostname) {
- /* Found the current hostname on this line */
- if (ip4_addr && ip4_addr_matches (*line, ip4_addr)) {
- found_host4 = TRUE;
- if (strstr (*line, ADDED_TAG)) {
- if (!host4_before)
- host4_before = !found_localhost4;
- } else {
- found_user_host4 = TRUE;
- host4_before = TRUE; /* Ignore if user added mapping manually */
- }
- } else if (!ip4_addr && strstr (*line, ADDED_TAG)) {
- /* If this is a stale NM-added IPv4 entry we need to remove it,
- * so make sure we update /etc/hosts.
- */
- if (is_ip4_addr (*line))
- no_stale = FALSE;
- }
+ if (contents_len == 0 || !strstr (contents, ADDED_TAG))
+ return NULL;
- if (ip6_addr && ip6_addr_matches (*line, ip6_addr)) {
- found_host6 = TRUE;
- if (strstr (*line, ADDED_TAG)) {
- if (!host6_before)
- host6_before = !found_localhost6;
- } else {
- found_user_host6 = TRUE;
- host6_before = TRUE; /* Ignore if user added mapping manually */
- }
- } else if (!ip6_addr && strstr (*line, ADDED_TAG)) {
- /* If this is a stale NM-added IPv6 entry we need to remove it,
- * so make sure we update /etc/hosts.
- */
- if (is_ip6_addr (*line))
- no_stale = FALSE;
- }
- }
+ new_contents = g_string_sized_new (contents_len);
- if (is_local_mapping (*line, FALSE, "localhost")) {
- /* a 127.0.0.1 line containing 'localhost' */
- found_localhost4 = TRUE;
- custom4 = get_custom_hostnames (*line, hostname, old_hostname, short_hostname, fallback_hostname4);
- if (!ip4_addr) {
- /* If there's no IP-specific mapping for the current hostname
- * but that hostname is present on in the local mapping line,
- * we've found our IPv4 hostname mapping. If the hostname is
- * the fallback *IPv6* hostname it's not going to show up in
- * the IPv4 local mapping though, so fake it.
- */
- if (hostname6_is_fallback || found_hostname)
- found_host4 = TRUE;
- }
- } else if (is_local_mapping (*line, TRUE, "localhost6")) {
- /* a ::1 line containing 'localhost6' */
- found_localhost6 = TRUE;
- custom6 = get_custom_hostnames (*line, hostname, old_hostname, short_hostname, fallback_hostname6);
- if (!ip6_addr) {
- /* If there's no IP-specific mapping for the current hostname
- * but that hostname is present on in the local mapping line,
- * we've found our IPv6 hostname mapping. If the hostname is
- * the fallback *IPv4* hostname it's not going to show up in
- * the IPv6 local mapping though, so fake it.
- */
- if (hostname4_is_fallback || found_hostname)
- found_host6 = TRUE;
- }
+ /* Remove "# Added ..." lines */
+ lines = g_strsplit_set (contents, "\n\r", -1);
+ for (iter = lines; iter && *iter; iter++) {
+ if (!strstr (*iter, ADDED_TAG)) {
+ g_string_append (new_contents, *iter);
+ g_string_append_c (new_contents, '\n');
}
-
- if ( found_localhost4
- && found_host4
- && found_localhost6
- && found_host6
- && host4_before
- && host6_before
- && no_stale)
- goto out; /* No update required */
- }
-
- contents = g_string_sized_new (existing_len ? existing_len + 100 : 200);
- if (!contents) {
- g_set_error_literal (error, 0, 0, "not enough memory");
- goto out;
}
+ g_strfreev (lines);
- /* Construct the new hosts file; replace any 127.0.0.1/::1 entry that is
- * at the beginning of the file or right after initial comments and contains
- * the string 'localhost' (for IPv4) or 'localhost6' (for IPv6). If there
- * is no 127.0.0.1 or ::1 entry at the beginning or after initial comments
- * that contains 'localhost' or 'localhost6', add one there
- * and ignore any other 127.0.0.1/::1 entries that contain 'localhost' or
- * 'localhost6'.
+ /* Remove last blank line at end of file, if one exists; this is
+ * an artifact of how g_strsplit_set() works.
*/
- for (line = lines, initial_comments = TRUE; lines && *line; line++) {
- /* This is the first line after the initial comments */
- if (strlen (*line) && initial_comments && (*line[0] != '#')) {
- initial_comments = FALSE;
-
- /* If the user added their own mapping for the hostname, just make
- * a simple 'localhost' mapping and assume the user knows what they
- * are doing with their manual hostname entry. Otherwise if the
- * hostname wasn't found somewhere else, add it to the localhost
- * mapping line to make sure it's mapped to something.
- */
-
- /* Add the address mappings first so they take precedence */
- if (!hostname4_is_fallback && ip4_addr && !found_user_host4) {
- g_string_append_printf (contents, "%s\t%s", ip4_addr, hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- g_string_append_printf (contents, "\t%s\n", ADDED_TAG);
- }
- if (!hostname6_is_fallback && ip6_addr && !found_user_host6) {
- g_string_append_printf (contents, "%s\t%s", ip6_addr, hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- g_string_append_printf (contents, "\t%s\n", ADDED_TAG);
- }
+ if ( (new_contents->len > 2)
+ && (new_contents->str[new_contents->len - 1] == '\n'))
+ g_string_truncate (new_contents, new_contents->len - 1);
- /* IPv4 localhost line */
- g_string_append (contents, "127.0.0.1");
- if (!hostname4_is_fallback && !ip4_addr && !found_user_host4) {
- g_string_append_printf (contents, "\t%s", hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- }
- g_string_append_printf (contents, "\t%s\tlocalhost", fallback_hostname4);
- if (custom4)
- g_string_append (contents, custom4);
- g_string_append_c (contents, '\n');
-
- /* IPv6 localhost line */
- g_string_append (contents, "::1");
- if (!hostname6_is_fallback && !hostname4_is_fallback && !ip6_addr && !found_user_host6) {
- g_string_append_printf (contents, "\t%s", hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- }
- g_string_append_printf (contents, "\t%s\tlocalhost6", fallback_hostname6);
- if (custom6)
- g_string_append (contents, custom6);
- g_string_append_c (contents, '\n');
-
- added = TRUE;
- }
-
- /* Don't add the original line if it is a localhost mapping */
- if ( !is_local_mapping (*line, FALSE, "localhost")
- && !is_local_mapping (*line, FALSE, fallback_hostname4)
- && !is_local_mapping (*line, FALSE, hostname)
- && !is_local_mapping (*line, TRUE, "localhost6")
- && !is_local_mapping (*line, TRUE, fallback_hostname6)
- && !is_local_mapping (*line, TRUE, hostname)
- && !strstr (*line, ADDED_TAG)) {
-
- g_string_append (contents, *line);
- /* Only append the new line if this isn't the last line in the file */
- if (*(line+1))
- g_string_append_c (contents, '\n');
- }
- }
-
- /* Hmm, /etc/hosts was empty for some reason */
- if (!added) {
- g_string_append (contents, "# Do not remove the following lines, or various programs\n");
- g_string_append (contents, "# that require network functionality will fail.\n");
-
- /* Add the address mappings first so they take precedence */
- if (!hostname4_is_fallback && ip4_addr) {
- g_string_append_printf (contents, "%s\t%s", ip4_addr, hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- g_string_append_printf (contents, "\t%s\n", ADDED_TAG);
- }
- if (!hostname6_is_fallback && ip6_addr) {
- g_string_append_printf (contents, "%s\t%s", ip6_addr, hostname);
- if (short_hostname)
- g_string_append_printf (contents, "\t%s", short_hostname);
- g_string_append_printf (contents, "\t%s\n", ADDED_TAG);
- }
-
- g_string_append_printf (contents, "127.0.0.1\t%s\tlocalhost\n", fallback_hostname4);
- g_string_append_printf (contents, "::1\t%s\tlocalhost6\n", fallback_hostname6);
- }
-
-out:
- g_free (custom4);
- g_free (custom6);
- g_free (short_hostname);
- return contents;
+ return new_contents;
}
-gboolean
-nm_policy_hosts_update_etc_hosts (const char *hostname,
- const char *old_hostname,
- const char *fallback_hostname4,
- const char *fallback_hostname6,
- const char *ip4_addr,
- const char *ip6_addr,
- gboolean *out_changed)
+/* remove any leftover "# Added by NetworkManager" lines */
+void
+nm_policy_hosts_clean_etc_hosts (void)
{
char *contents = NULL;
- char **lines = NULL;
- GError *error = NULL;
- GString *new_contents = NULL;
gsize contents_len = 0;
- gboolean success = FALSE;
-
- g_return_val_if_fail (hostname != NULL, FALSE);
- g_return_val_if_fail (out_changed != NULL, FALSE);
+ GError *error = NULL;
+ GString *new;
if (!g_file_get_contents (SYSCONFDIR "/hosts", &contents, &contents_len, &error)) {
nm_log_warn (LOGD_DNS, "couldn't read " SYSCONFDIR "/hosts: (%d) %s",
error ? error->code : 0,
(error && error->message) ? error->message : "(unknown)");
g_clear_error (&error);
- return FALSE;
+ return;
}
- /* Get the new /etc/hosts contents */
- lines = g_strsplit_set (contents, "\n\r", 0);
- new_contents = nm_policy_get_etc_hosts ((const char **) lines,
- contents_len,
- hostname,
- old_hostname,
- fallback_hostname4,
- fallback_hostname6,
- ip4_addr,
- ip6_addr,
- &error);
- g_strfreev (lines);
- g_free (contents);
-
- if (new_contents) {
- nm_log_info (LOGD_DNS, "Updating /etc/hosts with new system hostname");
+ new = nm_policy_get_etc_hosts (contents, contents_len);
+ if (new && new->len) {
+ nm_log_info (LOGD_DNS, "Cleaning leftovers from /etc/hosts");
g_clear_error (&error);
- /* And actually update /etc/hosts */
- if (!g_file_set_contents (SYSCONFDIR "/hosts", new_contents->str, -1, &error)) {
- nm_log_warn (LOGD_DNS, "couldn't update " SYSCONFDIR "/hosts: (%d) %s",
- error ? error->code : 0,
- (error && error->message) ? error->message : "(unknown)");
+ if (!g_file_set_contents (SYSCONFDIR "/hosts", new->str, -1, &error)) {
+ nm_log_dbg (LOGD_DNS, "couldn't update " SYSCONFDIR "/hosts: (%d) %s",
+ error ? error->code : 0,
+ (error && error->message) ? error->message : "(unknown)");
g_clear_error (&error);
- } else {
- success = TRUE;
- *out_changed = TRUE;
}
-
- g_string_free (new_contents, TRUE);
- } else if (!error) {
- /* No change required */
- success = TRUE;
- } else {
- nm_log_warn (LOGD_DNS, "couldn't read " SYSCONFDIR "/hosts: (%d) %s",
- error->code, error->message ? error->message : "(unknown)");
- g_clear_error (&error);
}
- return success;
+ if (new)
+ g_string_free (new, TRUE);
}
diff --git a/src/nm-policy-hosts.h b/src/nm-policy-hosts.h
index ebaaf0fd4..9f4bf9a9a 100644
--- a/src/nm-policy-hosts.h
+++ b/src/nm-policy-hosts.h
@@ -23,26 +23,10 @@
#include <glib.h>
-gboolean nm_policy_hosts_update_etc_hosts (const char *hostname,
- const char *old_hostname,
- const char *fallback_hostname4,
- const char *fallback_hostname6,
- const char *ip4_addr,
- const char *ip6_addr,
- gboolean *out_changed);
+void nm_policy_hosts_clean_etc_hosts (void);
/* Only for testcases; don't use outside of nm-policy-hosts.c */
-gboolean nm_policy_hosts_find_token (const char *line, const char *token);
-
-GString *nm_policy_get_etc_hosts (const char **lines,
- gsize existing_len,
- const char *hostname,
- const char *old_hostname,
- const char *fallback_hostname4,
- const char *fallback_hostname6,
- const char *ip4_addr,
- const char *ip6_addr,
- GError **error);
+GString *nm_policy_get_etc_hosts (const char *contents, gsize contents_len);
#endif /* NM_POLICY_HOSTS_H */
diff --git a/src/nm-policy.c b/src/nm-policy.c
index e8a18d026..aed2f897b 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -42,7 +42,6 @@
#include "nm-system.h"
#include "nm-dns-manager.h"
#include "nm-vpn-manager.h"
-#include "nm-policy-hosts.h"
#include "nm-policy-hostname.h"
struct NMPolicy {
@@ -233,9 +232,6 @@ _set_hostname (NMPolicy *policy,
const char *new_hostname,
const char *msg)
{
- char ip4_addr[INET_ADDRSTRLEN + 1];
- char ip6_addr[INET6_ADDRSTRLEN + 1];
-
if (change_hostname) {
NMDnsManager *dns_mgr;
@@ -247,43 +243,7 @@ _set_hostname (NMPolicy *policy,
g_object_unref (dns_mgr);
}
- /* Get the default IPv4 and IPv6 addresses so we can assign
- * the hostname to them in /etc/hosts.
- */
- memset (ip4_addr, 0, sizeof (ip4_addr));
- if (policy->default_device4) {
- NMIP4Config *config = NULL;
- NMIP4Address *addr = NULL;
-
- config = nm_device_get_ip4_config (policy->default_device4);
- if (config)
- addr = nm_ip4_config_get_address (config, 0);
-
- if (addr) {
- struct in_addr tmp;
-
- tmp.s_addr = nm_ip4_address_get_address (addr);
- inet_ntop (AF_INET, &tmp, ip4_addr, sizeof (ip4_addr));
- }
- }
-
- memset (ip6_addr, 0, sizeof (ip6_addr));
- if (policy->default_device6) {
- NMIP6Config *config = NULL;
- NMIP6Address *addr = NULL;
-
- config = nm_device_get_ip6_config (policy->default_device6);
- if (config)
- addr = nm_ip6_config_get_address (config, 0);
-
- if (addr)
- inet_ntop (AF_INET6, nm_ip6_address_get_address (addr), ip6_addr, sizeof (ip6_addr));
- }
-
- if (nm_policy_set_system_hostname (policy->cur_hostname,
- strlen (ip4_addr) ? ip4_addr : NULL,
- strlen (ip6_addr) ? ip6_addr : NULL,
- msg))
+ if (nm_policy_set_system_hostname (policy->cur_hostname, msg))
nm_utils_call_dispatcher ("hostname", NULL, NULL, NULL);
}
@@ -1235,15 +1195,6 @@ nm_policy_destroy (NMPolicy *policy)
}
g_slist_free (policy->dev_signal_ids);
- /* Rewrite /etc/hosts on exit to ensure we don't leave stale IP addresses
- * lying around. FIXME: this will take out a valid IP address of an
- * ethernet device we're leaving active (ie, a connection we can "assume"
- * when NM starts again).
- */
- policy->default_device4 = NULL;
- policy->default_device6 = NULL;
- update_system_hostname (policy, NULL, NULL);
-
g_free (policy->orig_hostname);
g_free (policy->cur_hostname);
diff --git a/src/nm-system.c b/src/nm-system.c
index 7921fec65..e8b8fec11 100644
--- a/src/nm-system.c
+++ b/src/nm-system.c
@@ -1187,14 +1187,14 @@ nm_system_replace_default_ip6_route (const char *iface, const struct in6_addr *g
return success;
}
-static void flush_addresses (const char *iface, gboolean ipv4_only)
+static void flush_addresses (const char *iface, int family)
{
int iface_idx;
g_return_if_fail (iface != NULL);
iface_idx = nm_netlink_iface_to_index (iface);
if (iface_idx >= 0)
- sync_addresses (iface, iface_idx, ipv4_only ? AF_INET : AF_UNSPEC, NULL, 0);
+ sync_addresses (iface, iface_idx, family, NULL, 0);
}
/*
@@ -1203,12 +1203,11 @@ static void flush_addresses (const char *iface, gboolean ipv4_only)
* Flush all network addresses associated with a network device
*
*/
-void nm_system_device_flush_addresses (NMDevice *dev)
+void nm_system_device_flush_addresses (NMDevice *dev, int family)
{
g_return_if_fail (dev != NULL);
- flush_addresses (nm_device_get_ip_iface (dev),
- nm_device_get_ip6_config (dev) == NULL);
+ flush_addresses (nm_device_get_ip_iface (dev), family);
}
@@ -1220,7 +1219,7 @@ void nm_system_device_flush_addresses (NMDevice *dev)
*/
void nm_system_device_flush_addresses_with_iface (const char *iface)
{
- flush_addresses (iface, FALSE);
+ flush_addresses (iface, AF_UNSPEC);
}
diff --git a/src/nm-system.h b/src/nm-system.h
index 8cb22d747..094f40efb 100644
--- a/src/nm-system.h
+++ b/src/nm-system.h
@@ -55,7 +55,7 @@ gboolean nm_system_replace_default_ip4_route_vpn (const char *iface,
struct rtnl_route *nm_system_add_ip4_vpn_gateway_route (NMDevice *parent_device, NMIP4Config *vpn_config);
-void nm_system_device_flush_addresses (NMDevice *dev);
+void nm_system_device_flush_addresses (NMDevice *dev, int family);
void nm_system_device_flush_addresses_with_iface (const char *iface);
void nm_system_enable_loopback (void);
diff --git a/src/ppp-manager/Makefile.am b/src/ppp-manager/Makefile.am
index f213dd2ec..540e58559 100644
--- a/src/ppp-manager/Makefile.am
+++ b/src/ppp-manager/Makefile.am
@@ -33,6 +33,8 @@ libppp_manager_la_LIBADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS)
+if WITH_PPP
+
pppd_plugindir = $(PPPD_PLUGIN_DIR)
pppd_plugin_LTLIBRARIES = nm-pppd-plugin.la
@@ -52,6 +54,8 @@ nm_pppd_plugin_la_LIBADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS)
+endif
+
BUILT_SOURCES = nm-ppp-manager-glue.h
CLEANFILES = $(BUILT_SOURCES)
diff --git a/src/ppp-manager/Makefile.in b/src/ppp-manager/Makefile.in
index 1013c2c29..20cfb0ba7 100644
--- a/src/ppp-manager/Makefile.in
+++ b/src/ppp-manager/Makefile.in
@@ -82,15 +82,19 @@ libppp_manager_la_OBJECTS = $(am_libppp_manager_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
-nm_pppd_plugin_la_DEPENDENCIES = \
- $(top_builddir)/libnm-util/libnm-util.la $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
-am_nm_pppd_plugin_la_OBJECTS = nm_pppd_plugin_la-nm-pppd-plugin.lo
+@WITH_PPP_TRUE@nm_pppd_plugin_la_DEPENDENCIES = \
+@WITH_PPP_TRUE@ $(top_builddir)/libnm-util/libnm-util.la \
+@WITH_PPP_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am__nm_pppd_plugin_la_SOURCES_DIST = nm-pppd-plugin.c nm-pppd-plugin.h \
+ nm-ppp-status.h
+@WITH_PPP_TRUE@am_nm_pppd_plugin_la_OBJECTS = \
+@WITH_PPP_TRUE@ nm_pppd_plugin_la-nm-pppd-plugin.lo
nm_pppd_plugin_la_OBJECTS = $(am_nm_pppd_plugin_la_OBJECTS)
nm_pppd_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(nm_pppd_plugin_la_LDFLAGS) $(LDFLAGS) \
-o $@
+@WITH_PPP_TRUE@am_nm_pppd_plugin_la_rpath = -rpath $(pppd_plugindir)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -119,7 +123,7 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libppp_manager_la_SOURCES) $(nm_pppd_plugin_la_SOURCES)
DIST_SOURCES = $(libppp_manager_la_SOURCES) \
- $(nm_pppd_plugin_la_SOURCES)
+ $(am__nm_pppd_plugin_la_SOURCES_DIST)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -215,6 +219,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -229,6 +237,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -332,22 +341,22 @@ libppp_manager_la_LIBADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS)
-pppd_plugindir = $(PPPD_PLUGIN_DIR)
-pppd_plugin_LTLIBRARIES = nm-pppd-plugin.la
-nm_pppd_plugin_la_SOURCES = \
- nm-pppd-plugin.c \
- nm-pppd-plugin.h \
- nm-ppp-status.h
+@WITH_PPP_TRUE@pppd_plugindir = $(PPPD_PLUGIN_DIR)
+@WITH_PPP_TRUE@pppd_plugin_LTLIBRARIES = nm-pppd-plugin.la
+@WITH_PPP_TRUE@nm_pppd_plugin_la_SOURCES = \
+@WITH_PPP_TRUE@ nm-pppd-plugin.c \
+@WITH_PPP_TRUE@ nm-pppd-plugin.h \
+@WITH_PPP_TRUE@ nm-ppp-status.h
-nm_pppd_plugin_la_CPPFLAGS = \
- $(DBUS_CFLAGS) \
- $(GLIB_CFLAGS)
+@WITH_PPP_TRUE@nm_pppd_plugin_la_CPPFLAGS = \
+@WITH_PPP_TRUE@ $(DBUS_CFLAGS) \
+@WITH_PPP_TRUE@ $(GLIB_CFLAGS)
-nm_pppd_plugin_la_LDFLAGS = -module -avoid-version
-nm_pppd_plugin_la_LIBADD = \
- $(top_builddir)/libnm-util/libnm-util.la \
- $(DBUS_LIBS) \
- $(GLIB_LIBS)
+@WITH_PPP_TRUE@nm_pppd_plugin_la_LDFLAGS = -module -avoid-version
+@WITH_PPP_TRUE@nm_pppd_plugin_la_LIBADD = \
+@WITH_PPP_TRUE@ $(top_builddir)/libnm-util/libnm-util.la \
+@WITH_PPP_TRUE@ $(DBUS_LIBS) \
+@WITH_PPP_TRUE@ $(GLIB_LIBS)
BUILT_SOURCES = nm-ppp-manager-glue.h
CLEANFILES = $(BUILT_SOURCES)
@@ -429,7 +438,7 @@ clean-pppd_pluginLTLIBRARIES:
libppp-manager.la: $(libppp_manager_la_OBJECTS) $(libppp_manager_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(libppp_manager_la_OBJECTS) $(libppp_manager_la_LIBADD) $(LIBS)
nm-pppd-plugin.la: $(nm_pppd_plugin_la_OBJECTS) $(nm_pppd_plugin_la_DEPENDENCIES)
- $(AM_V_CCLD)$(nm_pppd_plugin_la_LINK) -rpath $(pppd_plugindir) $(nm_pppd_plugin_la_OBJECTS) $(nm_pppd_plugin_la_LIBADD) $(LIBS)
+ $(AM_V_CCLD)$(nm_pppd_plugin_la_LINK) $(am_nm_pppd_plugin_la_rpath) $(nm_pppd_plugin_la_OBJECTS) $(nm_pppd_plugin_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c
index efa660b03..31a5e57a7 100644
--- a/src/ppp-manager/nm-ppp-manager.c
+++ b/src/ppp-manager/nm-ppp-manager.c
@@ -165,7 +165,8 @@ dispose (GObject *object)
nm_ppp_manager_stop (NM_PPP_MANAGER (object));
- g_object_unref (priv->act_req);
+ if (priv->act_req)
+ g_object_unref (priv->act_req);
g_object_unref (priv->dbus_manager);
G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object);
@@ -724,6 +725,8 @@ create_pppd_cmd_line (NMPPPManager *self,
NMCmdLine *cmd;
const char *ppp_debug;
+ g_return_val_if_fail (setting != NULL, NULL);
+
ppp_binary = nm_find_pppd ();
if (!ppp_binary) {
g_set_error (err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR,
@@ -897,6 +900,15 @@ nm_ppp_manager_start (NMPPPManager *manager,
priv = NM_PPP_MANAGER_GET_PRIVATE (manager);
+#if !WITH_PPP
+ /* PPP support disabled */
+ g_set_error_literal (err,
+ NM_PPP_MANAGER_ERROR,
+ NM_PPP_MANAGER_ERROR_UNKOWN,
+ "PPP support is not enabled.");
+ return FALSE;
+#endif
+
priv->pid = 0;
/* Make sure /dev/ppp exists (bgo #533064) */
diff --git a/src/supplicant-manager/Makefile.in b/src/supplicant-manager/Makefile.in
index 0bc3ebcf1..03b05e5dd 100644
--- a/src/supplicant-manager/Makefile.in
+++ b/src/supplicant-manager/Makefile.in
@@ -226,6 +226,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -240,6 +244,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/supplicant-manager/tests/Makefile.in b/src/supplicant-manager/tests/Makefile.in
index 1403a3f1e..171135224 100644
--- a/src/supplicant-manager/tests/Makefile.in
+++ b/src/supplicant-manager/tests/Makefile.in
@@ -185,6 +185,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -199,6 +203,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/system-settings/Makefile.in b/src/system-settings/Makefile.in
index 1bc66bacd..45f4a4145 100644
--- a/src/system-settings/Makefile.in
+++ b/src/system-settings/Makefile.in
@@ -196,6 +196,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -210,6 +214,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/system-settings/nm-default-wired-connection.c b/src/system-settings/nm-default-wired-connection.c
index 1cda3d9e2..0d19dea01 100644
--- a/src/system-settings/nm-default-wired-connection.c
+++ b/src/system-settings/nm-default-wired-connection.c
@@ -163,7 +163,7 @@ constructor (GType type,
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_READ_ONLY, priv->read_only,
- NM_SETTING_CONNECTION_TIMESTAMP, time (NULL),
+ NM_SETTING_CONNECTION_TIMESTAMP, (guint64) time (NULL),
NULL);
g_free (id);
diff --git a/src/system-settings/nm-sysconfig-settings.c b/src/system-settings/nm-sysconfig-settings.c
index d929813f1..75ac98794 100644
--- a/src/system-settings/nm-sysconfig-settings.c
+++ b/src/system-settings/nm-sysconfig-settings.c
@@ -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.
*/
@@ -480,8 +480,35 @@ connection_removed (NMSettingsConnectionInterface *connection,
gpointer user_data)
{
NMSysconfigSettingsPrivate *priv = NM_SYSCONFIG_SETTINGS_GET_PRIVATE (user_data);
+ NMSettingConnection *s_con;
+ GKeyFile *timestamps_file;
+ const char *connection_uuid;
+ char *data;
+ gsize len;
+ GError *error = NULL;
+ /* Remove connection from the table */
g_hash_table_remove (priv->connections, connection);
+
+ /* Remove timestamp from timestamps database file */
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (NM_CONNECTION (connection), NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+ connection_uuid = nm_setting_connection_get_uuid (s_con);
+
+ timestamps_file = g_key_file_new ();
+ if (g_key_file_load_from_file (timestamps_file, NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL)) {
+ g_key_file_remove_key (timestamps_file, "timestamps", connection_uuid, NULL);
+ data = g_key_file_to_data (timestamps_file, &len, &error);
+ if (data) {
+ g_file_set_contents (NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, data, len, &error);
+ g_free (data);
+ }
+ if (error) {
+ nm_log_warn (LOGD_SYS_SET, "error writing timestamps file '%s': %s", NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, error->message);
+ g_error_free (error);
+ }
+ }
+ g_key_file_free (timestamps_file);
}
static void
@@ -491,6 +518,13 @@ claim_connection (NMSysconfigSettings *self,
{
NMSysconfigSettingsPrivate *priv = NM_SYSCONFIG_SETTINGS_GET_PRIVATE (self);
+ NMSettingConnection *s_con;
+ const char *connection_uuid;
+ guint64 timestamp = 0;
+ GKeyFile *timestamps_file;
+ GError *err = NULL;
+ char *tmp_str;
+
g_return_if_fail (NM_IS_SYSCONFIG_SETTINGS (self));
g_return_if_fail (NM_IS_SETTINGS_CONNECTION_INTERFACE (connection));
@@ -498,6 +532,32 @@ claim_connection (NMSysconfigSettings *self,
/* A plugin is lying to us. */
return;
+ /* Read timestamp from database file and store it into connection's object data */
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (NM_CONNECTION (connection), NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+ connection_uuid = nm_setting_connection_get_uuid (s_con);
+
+ timestamps_file = g_key_file_new ();
+ g_key_file_load_from_file (timestamps_file, NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE, G_KEY_FILE_KEEP_COMMENTS, NULL);
+ tmp_str = g_key_file_get_value (timestamps_file, "timestamps", connection_uuid, &err);
+ if (tmp_str) {
+ timestamp = g_ascii_strtoull (tmp_str, NULL, 10);
+ g_free (tmp_str);
+ }
+
+ /* Update connection's timestamp */
+ if (!err) {
+ guint64 *ts_ptr = g_new (guint64, 1);
+
+ *ts_ptr = timestamp;
+ g_object_set_data_full (G_OBJECT (connection), NM_SYSCONFIG_SETTINGS_TIMESTAMP_TAG, ts_ptr, g_free);
+ } else {
+ nm_log_dbg (LOGD_SYS_SET, "failed to read connection timestamp for '%s': (%d) %s",
+ connection_uuid, err->code, err->message);
+ g_clear_error (&err);
+ }
+ g_key_file_free (timestamps_file);
+
g_hash_table_insert (priv->connections, g_object_ref (connection), GINT_TO_POINTER (1));
g_signal_connect (connection,
NM_SETTINGS_CONNECTION_INTERFACE_REMOVED,
diff --git a/src/system-settings/nm-sysconfig-settings.h b/src/system-settings/nm-sysconfig-settings.h
index ae2ba6832..8b2622a74 100644
--- a/src/system-settings/nm-sysconfig-settings.h
+++ b/src/system-settings/nm-sysconfig-settings.h
@@ -41,6 +41,8 @@
#define NM_SYSCONFIG_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_SYSCONFIG_SETTINGS, NMSysconfigSettingsClass))
#define NM_SYSCONFIG_SETTINGS_UNMANAGED_SPECS "unmanaged-specs"
+#define NM_SYSCONFIG_SETTINGS_TIMESTAMPS_FILE LOCALSTATEDIR"/lib/NetworkManager/timestamps"
+#define NM_SYSCONFIG_SETTINGS_TIMESTAMP_TAG "timestamp-tag"
typedef struct {
NMSettingsService parent_instance;
diff --git a/src/system-settings/nm-system-config-interface.c b/src/system-settings/nm-system-config-interface.c
index 90fd93ba3..9fb34278d 100644
--- a/src/system-settings/nm-system-config-interface.c
+++ b/src/system-settings/nm-system-config-interface.c
@@ -53,7 +53,8 @@ interface_init (gpointer g_iface)
"Capabilities",
"Plugin capabilties",
NM_SYSTEM_CONFIG_INTERFACE_CAP_NONE,
- NM_SYSTEM_CONFIG_INTERFACE_CAP_LAST - 1,
+ ( NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_CONNECTIONS
+ | NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME),
NM_SYSTEM_CONFIG_INTERFACE_CAP_NONE,
G_PARAM_READABLE));
diff --git a/src/system-settings/nm-system-config-interface.h b/src/system-settings/nm-system-config-interface.h
index 3daceb89b..d5634aa6b 100644
--- a/src/system-settings/nm-system-config-interface.h
+++ b/src/system-settings/nm-system-config-interface.h
@@ -41,15 +41,6 @@ G_BEGIN_DECLS
*/
GObject * nm_system_config_factory (void);
-/* NOTE:
- * When passing NMConnection objects to NetworkManager, any properties
- * of that NMConnection's NMSetting objects that are secrets must be set as
- * GObject data items on the NMSetting object, _not_ inside the NMSetting
- * object itself. This is to ensure that the secrets are only given to
- * NetworkManager itself and not exposed to clients like nm-applet that need
- * connection details, but not secrets.
- */
-
#define NM_TYPE_SYSTEM_CONFIG_INTERFACE (nm_system_config_interface_get_type ())
#define NM_SYSTEM_CONFIG_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_SYSTEM_CONFIG_INTERFACE, NMSystemConfigInterface))
#define NM_IS_SYSTEM_CONFIG_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_SYSTEM_CONFIG_INTERFACE))
@@ -67,9 +58,11 @@ GObject * nm_system_config_factory (void);
typedef enum {
NM_SYSTEM_CONFIG_INTERFACE_CAP_NONE = 0x00000000,
NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_CONNECTIONS = 0x00000001,
- NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME = 0x00000002,
+ NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME = 0x00000002
- NM_SYSTEM_CONFIG_INTERFACE_CAP_LAST = NM_SYSTEM_CONFIG_INTERFACE_CAP_MODIFY_HOSTNAME
+ /* When adding more capabilities, be sure to update the "Capabilities"
+ * property max value in nm-system-config-interface.c.
+ */
} NMSystemConfigInterfaceCapabilities;
typedef enum {
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
index 40d1d6ab1..46a75b257 100644
--- a/src/tests/Makefile.in
+++ b/src/tests/Makefile.in
@@ -194,6 +194,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -208,6 +212,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/src/tests/test-policy-hosts.c b/src/tests/test-policy-hosts.c
index 8865c4264..62862e756 100644
--- a/src/tests/test-policy-hosts.c
+++ b/src/tests/test-policy-hosts.c
@@ -23,41 +23,17 @@
#include "nm-policy-hosts.h"
-#define FALLBACK_HOSTNAME4 "localhost.localdomain"
-#define FALLBACK_HOSTNAME6 "localhost6.localdomain6"
-
-#define DEBUG 0
+#define DEBUG 1
static void
-test_generic (const char *before,
- const char *after,
- const char *hostname,
- const char *ip4_addr,
- const char *ip6_addr,
- gboolean expect_error)
+test_generic (const char *before, const char *after)
{
- char **lines;
GString *newc;
- GError *error = NULL;
/* Get the new /etc/hosts contents */
- lines = g_strsplit_set (before, "\n\r", 0);
- newc = nm_policy_get_etc_hosts ((const char **) lines,
- strlen (before),
- hostname,
- NULL,
- FALLBACK_HOSTNAME4,
- FALLBACK_HOSTNAME6,
- ip4_addr,
- ip6_addr,
- &error);
- g_strfreev (lines);
+ newc = nm_policy_get_etc_hosts (before, strlen (before));
- if (expect_error) {
- g_assert (newc == NULL);
- g_assert (error != NULL);
- g_clear_error (&error);
- } else if (after == NULL) {
+ if (after == NULL) {
/* No change to /etc/hosts required */
#if DEBUG
if (newc != NULL) {
@@ -68,10 +44,8 @@ test_generic (const char *before,
}
#endif
g_assert (newc == NULL);
- g_assert (error == NULL);
} else {
g_assert (newc != NULL);
- g_assert (error == NULL);
#if DEBUG
g_message ("\n- NEW ---------------------------------\n"
@@ -81,7 +55,6 @@ test_generic (const char *before,
"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
newc->str, after);
#endif
- g_assert (strlen (newc->str) == strlen (after));
g_assert (strcmp (newc->str, after) == 0);
g_string_free (newc, TRUE);
}
@@ -99,7 +72,7 @@ static const char *generic_before = \
static void
test_hosts_generic (void)
{
- test_generic (generic_before, NULL, "localhost.localdomain", NULL, NULL, FALSE);
+ test_generic (generic_before, NULL);
}
/*******************************************/
@@ -112,311 +85,25 @@ static const char *generic_no_boilerplate_before = \
static void
test_hosts_generic_no_boilerplate (void)
{
- test_generic (generic_no_boilerplate_before, NULL, "localhost.localdomain", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *generic_no_boilerplate_no_lh_before = \
- "127.0.0.1 localhost.localdomain\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *generic_no_boilerplate_no_lh_after = \
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_generic_no_boilerplate_no_lh (void)
-{
- test_generic (generic_no_boilerplate_no_lh_before,
- generic_no_boilerplate_no_lh_after,
- "localhost.localdomain",
- NULL,
- NULL,
- FALSE);
-}
-
-/*******************************************/
-
-
-static const char *generic_no_boilerplate_no_lh_no_host_before = \
- "127.0.0.1 localhost.localdomain\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *generic_no_boilerplate_no_lh_no_host_after = \
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_generic_no_boilerplate_no_lh_no_host (void)
-{
- test_generic (generic_no_boilerplate_no_lh_no_host_before,
- generic_no_boilerplate_no_lh_no_host_after,
- "comet",
- NULL,
- NULL,
- FALSE);
-}
-
-/*******************************************/
-static const char *named_generic_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 playboy localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *named_generic_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 playboy localhost.localdomain localhost\n"
- "::1 playboy localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named_generic (void)
-{
- test_generic (named_generic_before, named_generic_after, "playboy", NULL, NULL, FALSE);
+ test_generic (generic_no_boilerplate_before, NULL);
}
/*******************************************/
-static const char *named4_non127_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 tomcat localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "192.168.1.2 tomcat\n";
-
-static void
-test_hosts_named4_non127 (void)
-{
- test_generic (named4_non127_before, NULL, "tomcat", "192.168.1.2", NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *named6_non127_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 tomcat localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "3001:abba::3234 tomcat\n";
-
-static void
-test_hosts_named6_non127 (void)
-{
- test_generic (named6_non127_before, NULL, "tomcat", NULL, "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named4_non127_more_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 tomcat localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "192.168.1.2 tomcat\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 srx.main.ebayrtm.com\n"
- "127.0.0.1 cdn5.tribalfusion.com\n";
-
-static void
-test_hosts_named4_non127_more (void)
-{
- test_generic (named4_non127_more_before, NULL, "tomcat", "192.168.1.2", NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *named6_non127_more_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 tomcat localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "3001:abba::3234 tomcat\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 srx.main.ebayrtm.com\n"
- "127.0.0.1 cdn5.tribalfusion.com\n";
-
-static void
-test_hosts_named6_non127_more (void)
-{
- test_generic (named6_non127_more_before, NULL, "tomcat", NULL, "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named_no_lh_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "192.168.1.2 tomcat\n";
-
-static const char *named_no_lh_after = \
+static const char *leftover_before = \
"# Do not remove the following line, or various programs\n"
"# that require network functionality will fail.\n"
+ "192.168.1.2 comet # Added by NetworkManager\n"
"127.0.0.1 localhost.localdomain localhost\n"
- "::1 tomcat localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "192.168.1.2 tomcat\n";
-
-static void
-test_hosts_named_no_localhost (void)
-{
- test_generic (named_no_lh_before, named_no_lh_after, "tomcat", "192.168.1.2", NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *no_lh_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 tomcat\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *no_lh_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 tomcat localhost.localdomain localhost\n"
- "::1 tomcat localhost6.localdomain6 localhost6\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_no_localhost (void)
-{
- test_generic (no_lh_before, no_lh_after, "tomcat", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *named_last_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 sparcbook.ausil.us\n"
- "::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 sparcbook.ausil.us\n";
-
-static void
-test_hosts_named_last (void)
-{
- test_generic (named_last_before, NULL, "sparcbook.ausil.us", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *no_host4_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 srx.main.ebayrtm.com\n"
- "127.0.0.1 cdn5.tribalfusion.com\n"
- "127.0.0.1 a.tribalfusion.com\n";
-
-static const char *no_host4_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 srx.main.ebayrtm.com\n"
- "127.0.0.1 cdn5.tribalfusion.com\n"
- "127.0.0.1 a.tribalfusion.com\n";
-
-static void
-test_hosts_no_host4 (void)
-{
- test_generic (no_host4_before, no_host4_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *no_host6_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *no_host6_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_no_host6 (void)
-{
- test_generic (no_host6_before, no_host6_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet\n"
- "3001:abba::3234 comet\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127 (void)
-{
- test_generic (named46_non127_before, NULL, "comet", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_long_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet.space comet\n"
- "3001:abba::3234 comet.space comet\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127_long (void)
-{
- test_generic (named46_non127_long_before, NULL, "comet.space", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_other4_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
"::1 localhost6.localdomain6 localhost6\n"
"192.168.1.3 comet\n"
"3001:abba::3234 comet\n"
"\n"
"127.0.0.1 lcmd.us.intellitxt.com\n";
-static const char *named46_non127_other4_after = \
+static const char *leftover_after = \
"# Do not remove the following line, or various programs\n"
"# that require network functionality will fail.\n"
- "192.168.1.2 comet # Added by NetworkManager\n"
"127.0.0.1 localhost.localdomain localhost\n"
"::1 localhost6.localdomain6 localhost6\n"
"192.168.1.3 comet\n"
@@ -425,416 +112,44 @@ static const char *named46_non127_other4_after = \
"127.0.0.1 lcmd.us.intellitxt.com\n";
static void
-test_hosts_named46_non127_other4 (void)
+test_hosts_leftover (void)
{
- test_generic (named46_non127_other4_before, named46_non127_other4_after, "comet", "192.168.1.2", "3001:abba::3234", FALSE);
+ test_generic (leftover_before, leftover_after);
}
/*******************************************/
-static const char *named46_non127_other4_long_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.3 comet.space\n"
- "3001:abba::3234 comet.space\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *named46_non127_other4_long_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "192.168.1.2 comet.space comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.3 comet.space\n"
- "3001:abba::3234 comet.space\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127_other4_long (void)
-{
- test_generic (named46_non127_other4_long_before, named46_non127_other4_long_after, "comet.space", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_other6_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet\n"
- "3001:abba::9675 comet\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *named46_non127_other6_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "3001:abba::3234 comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet\n"
- "3001:abba::9675 comet\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127_other6 (void)
-{
- test_generic (named46_non127_other6_before, named46_non127_other6_after, "comet", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_other6_long_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet.space\n"
- "3001:abba::9675 comet.space\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *named46_non127_other6_long_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "3001:abba::3234 comet.space comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.2 comet.space\n"
- "3001:abba::9675 comet.space\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127_other6_long (void)
-{
- test_generic (named46_non127_other6_long_before, named46_non127_other6_long_after, "comet.space", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *unnamed46_non127_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *unnamed46_non127_after = \
+static const char *leftover_double_newline_before = \
"# Do not remove the following line, or various programs\n"
"# that require network functionality will fail.\n"
"192.168.1.2 comet # Added by NetworkManager\n"
- "3001:abba::3234 comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_unnamed46_non127 (void)
-{
- test_generic (unnamed46_non127_before, unnamed46_non127_after, "comet", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *unnamed46_non127_long_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static const char *unnamed46_non127_long_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "192.168.1.2 comet.space comet # Added by NetworkManager\n"
- "3001:abba::3234 comet.space comet # Added by NetworkManager\n"
"127.0.0.1 localhost.localdomain localhost\n"
"::1 localhost6.localdomain6 localhost6\n"
+ "192.168.1.3 comet\n"
+ "3001:abba::3234 comet\n"
"\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_unnamed46_non127_long (void)
-{
- test_generic (unnamed46_non127_long_before, unnamed46_non127_long_after, "comet.space", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *named46_non127_wrong_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "192.168.1.3 comet # Added by NetworkManager\n"
- "3001:abba::9876 comet # Added by NetworkManager\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
+ "127.0.0.1 lcmd.us.intellitxt.com\n"
+ "\n";
-static const char *named46_non127_wrong_after = \
+static const char *leftover_double_newline_after = \
"# Do not remove the following line, or various programs\n"
"# that require network functionality will fail.\n"
- "192.168.1.2 comet # Added by NetworkManager\n"
- "3001:abba::3234 comet # Added by NetworkManager\n"
"127.0.0.1 localhost.localdomain localhost\n"
"::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n";
-
-static void
-test_hosts_named46_non127_wrong (void)
-{
- test_generic (named46_non127_wrong_before, named46_non127_wrong_after, "comet", "192.168.1.2", "3001:abba::3234", FALSE);
-}
-
-/*******************************************/
-
-static const char *long_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost comet\n"
- "::1 localhost6.localdomain6 localhost6\n"
- "\n"
- "127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 adserver.adtech.de\n"
- "127.0.0.1 a.as-us.falkag.net\n"
- "127.0.0.1 a.as-eu.falkag.net\n"
- "127.0.0.1 ads.doubleclick.com\n"
- "\n"
- "# random comment\n"
- "127.0.0.1 m1.2mdn.net\n"
- "127.0.0.1 ds.serving-sys.com\n"
- "127.0.0.1 pagead2.googlesyndication.com\n"
- "127.0.0.1 ad.doubleclick.com\n"
- "127.0.0.1 ad.doubleclick.net\n"
- "127.0.0.1 oascentral.movietickets.com\n"
- "127.0.0.1 view.atdmt.com\n"
- "127.0.0.1 ads.chumcity.com\n";
-
-static const char *long_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n"
+ "192.168.1.3 comet\n"
+ "3001:abba::3234 comet\n"
"\n"
"127.0.0.1 lcmd.us.intellitxt.com\n"
- "127.0.0.1 adserver.adtech.de\n"
- "127.0.0.1 a.as-us.falkag.net\n"
- "127.0.0.1 a.as-eu.falkag.net\n"
- "127.0.0.1 ads.doubleclick.com\n"
- "\n"
- "# random comment\n"
- "127.0.0.1 m1.2mdn.net\n"
- "127.0.0.1 ds.serving-sys.com\n"
- "127.0.0.1 pagead2.googlesyndication.com\n"
- "127.0.0.1 ad.doubleclick.com\n"
- "127.0.0.1 ad.doubleclick.net\n"
- "127.0.0.1 oascentral.movietickets.com\n"
- "127.0.0.1 view.atdmt.com\n"
- "127.0.0.1 ads.chumcity.com\n";
-
-static void
-test_hosts_long (void)
-{
- test_generic (long_before, long_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *custom4_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost pintglass\n"
- "::1 localhost6.localdomain6 localhost6\n";
-
-static const char *custom4_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost pintglass\n"
- "::1 comet localhost6.localdomain6 localhost6\n";
-
-static void
-test_hosts_custom4 (void)
-{
- test_generic (custom4_before, custom4_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *custom6_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6 pintglass\n";
-
-static const char *custom6_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
-
-static void
-test_hosts_custom6 (void)
-{
- test_generic (custom6_before, custom6_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *custom46_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost shotglass\n"
- "::1 localhost6.localdomain6 localhost6 pintglass\n";
-
-static const char *custom46_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost shotglass\n"
- "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
-
-static void
-test_hosts_custom46 (void)
-{
- test_generic (custom46_before, custom46_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *custom46_mixed_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 localhost.localdomain localhost shotglass\n"
- "::1 localhost6.localdomain6 localhost6 pintglass\n";
-
-static const char *custom46_mixed_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost shotglass\n"
- "::1 comet localhost6.localdomain6 localhost6 pintglass\n";
-
-static void
-test_hosts_custom46_mixed (void)
-{
- test_generic (custom46_mixed_before, custom46_mixed_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *stale4_removed_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "1.2.3.4 comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n";
-
-static const char *stale4_removed_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n";
+ "\n";
static void
-test_hosts_stale4_removed (void)
+test_hosts_leftover_double_newline (void)
{
- test_generic (stale4_removed_before, stale4_removed_after, "comet", NULL, NULL, FALSE);
+ test_generic (leftover_double_newline_before, leftover_double_newline_after);
}
/*******************************************/
-static const char *stale6_removed_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "3001:abba::3234 comet # Added by NetworkManager\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n";
-
-static const char *stale6_removed_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n";
-
-static void
-test_hosts_stale6_removed (void)
-{
- test_generic (stale6_removed_before, stale6_removed_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-static const char *stale46_removed_before = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "1.2.3.4 comet # Added by NetworkManager\n"
- "3001:abba::3234 comet # Added by NetworkManager\n"
- "127.0.0.1 localhost.localdomain localhost\n"
- "::1 localhost6.localdomain6 localhost6\n";
-
-static const char *stale46_removed_after = \
- "# Do not remove the following line, or various programs\n"
- "# that require network functionality will fail.\n"
- "127.0.0.1 comet localhost.localdomain localhost\n"
- "::1 comet localhost6.localdomain6 localhost6\n";
-
-static void
-test_hosts_stale46_removed (void)
-{
- test_generic (stale46_removed_before, stale46_removed_after, "comet", NULL, NULL, FALSE);
-}
-
-/*******************************************/
-
-typedef struct {
- const char *line;
- const char *token;
- gboolean expected;
-} Foo;
-
-static Foo foo[] = {
- /* Using \t here to easily differentiate tabs vs. spaces for testing */
- { "127.0.0.1\tfoobar\tblah", "blah", TRUE },
- { "", "blah", FALSE },
- { "1.1.1.1\tbork\tfoo", "blah", FALSE },
- { "127.0.0.1 foobar\tblah", "blah", TRUE },
- { "127.0.0.1 foobar blah", "blah", TRUE },
- { "127.0.0.1 localhost", "localhost.localdomain", FALSE },
- { "192.168.1.1 blah borkbork", "blah", TRUE },
- { "192.168.1.1 foobar\tblah borkbork", "blah", TRUE },
- { "192.168.1.1\tfoobar\tblah\tborkbork", "blah", TRUE },
- { "192.168.1.1 \tfoobar \tblah \tborkbork\t ", "blah", TRUE },
- { "\t\t\t\t \t\t\tasdfadf a\t\t\t\t\t \t\t\t\t\t ", "blah", FALSE },
- { NULL, NULL, FALSE }
-};
-
-static void
-test_find_token (void)
-{
- Foo *iter = &foo[0];
-
- while (iter->line) {
- gboolean found;
-
- found = nm_policy_hosts_find_token (iter->line, iter->token);
- if (found != iter->expected) {
- g_warning ("find-token: unexpected token result %d for '%s' <= '%s' (expected %d)",
- found, iter->line, iter->token, iter->expected);
- }
- g_assert (found == iter->expected);
- iter++;
- }
-}
-
#if GLIB_CHECK_VERSION(2,25,12)
typedef GTestFixtureFunc TCFunc;
#else
@@ -851,38 +166,10 @@ int main (int argc, char **argv)
suite = g_test_get_root ();
- g_test_suite_add (suite, TESTCASE (test_find_token, NULL));
g_test_suite_add (suite, TESTCASE (test_hosts_generic, NULL));
g_test_suite_add (suite, TESTCASE (test_hosts_generic_no_boilerplate, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_generic_no_boilerplate_no_lh, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_generic_no_boilerplate_no_lh_no_host, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named_generic, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named4_non127, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named6_non127, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named4_non127_more, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named6_non127_more, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_long, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_other4, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_other4_long, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_other6, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_other6_long, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named46_non127_wrong, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_unnamed46_non127, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_unnamed46_non127_long, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named_no_localhost, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_no_localhost, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_named_last, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_no_host4, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_no_host6, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_long, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_custom4, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_custom6, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_custom46, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_custom46_mixed, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_stale4_removed, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_stale6_removed, NULL));
- g_test_suite_add (suite, TESTCASE (test_hosts_stale46_removed, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_leftover, NULL));
+ g_test_suite_add (suite, TESTCASE (test_hosts_leftover_double_newline, NULL));
return g_test_run ();
}
diff --git a/src/vpn-manager/Makefile.am b/src/vpn-manager/Makefile.am
index b0692d70c..3b206617f 100644
--- a/src/vpn-manager/Makefile.am
+++ b/src/vpn-manager/Makefile.am
@@ -11,12 +11,14 @@ INCLUDES = \
noinst_LTLIBRARIES = libvpn-manager.la
-libvpn_manager_la_SOURCES = \
- nm-vpn-manager.c \
- nm-vpn-manager.h \
- nm-vpn-service.c \
- nm-vpn-service.h \
- nm-vpn-connection.c \
+libvpn_manager_la_SOURCES = \
+ nm-vpn-manager.c \
+ nm-vpn-manager.h \
+ nm-vpn-service.c \
+ nm-vpn-service.h \
+ nm-vpn-connection-base.c \
+ nm-vpn-connection-base.h \
+ nm-vpn-connection.c \
nm-vpn-connection.h
libvpn_manager_la_CPPFLAGS = \
@@ -31,6 +33,9 @@ libvpn_manager_la_LIBADD = \
$(DBUS_LIBS) \
$(GLIB_LIBS)
+nm-vpn-connection-base-glue.h: $(top_srcdir)/introspection/nm-active-connection.xml
+ $(AM_V_GEN) dbus-binding-tool --prefix=nm_vpn_connection_base --mode=glib-server --output=$@ $<
+
nm-vpn-connection-glue.h: $(top_srcdir)/introspection/nm-vpn-connection.xml
$(AM_V_GEN) dbus-binding-tool --prefix=nm_vpn_connection --mode=glib-server --output=$@ $<
@@ -39,6 +44,7 @@ nm-vpn-plugin-bindings.h: $(top_srcdir)/introspection/nm-vpn-plugin.xml
BUILT_SOURCES = \
+ nm-vpn-connection-base-glue.h \
nm-vpn-connection-glue.h \
nm-vpn-plugin-bindings.h
diff --git a/src/vpn-manager/Makefile.in b/src/vpn-manager/Makefile.in
index e0a4f4eda..a1d72bbe5 100644
--- a/src/vpn-manager/Makefile.in
+++ b/src/vpn-manager/Makefile.in
@@ -58,6 +58,7 @@ libvpn_manager_la_DEPENDENCIES = \
$(am__DEPENDENCIES_1)
am_libvpn_manager_la_OBJECTS = libvpn_manager_la-nm-vpn-manager.lo \
libvpn_manager_la-nm-vpn-service.lo \
+ libvpn_manager_la-nm-vpn-connection-base.lo \
libvpn_manager_la-nm-vpn-connection.lo
libvpn_manager_la_OBJECTS = $(am_libvpn_manager_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
@@ -186,6 +187,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -200,6 +205,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -287,11 +293,13 @@ INCLUDES = \
noinst_LTLIBRARIES = libvpn-manager.la
libvpn_manager_la_SOURCES = \
- nm-vpn-manager.c \
- nm-vpn-manager.h \
- nm-vpn-service.c \
- nm-vpn-service.h \
- nm-vpn-connection.c \
+ nm-vpn-manager.c \
+ nm-vpn-manager.h \
+ nm-vpn-service.c \
+ nm-vpn-service.h \
+ nm-vpn-connection-base.c \
+ nm-vpn-connection-base.h \
+ nm-vpn-connection.c \
nm-vpn-connection.h
libvpn_manager_la_CPPFLAGS = \
@@ -307,6 +315,7 @@ libvpn_manager_la_LIBADD = \
$(GLIB_LIBS)
BUILT_SOURCES = \
+ nm-vpn-connection-base-glue.h \
nm-vpn-connection-glue.h \
nm-vpn-plugin-bindings.h
@@ -364,6 +373,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvpn_manager_la-nm-vpn-connection-base.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvpn_manager_la-nm-vpn-connection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvpn_manager_la-nm-vpn-manager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvpn_manager_la-nm-vpn-service.Plo@am__quote@
@@ -411,6 +421,14 @@ libvpn_manager_la-nm-vpn-service.lo: nm-vpn-service.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvpn_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libvpn_manager_la-nm-vpn-service.lo `test -f 'nm-vpn-service.c' || echo '$(srcdir)/'`nm-vpn-service.c
+libvpn_manager_la-nm-vpn-connection-base.lo: nm-vpn-connection-base.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvpn_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libvpn_manager_la-nm-vpn-connection-base.lo -MD -MP -MF $(DEPDIR)/libvpn_manager_la-nm-vpn-connection-base.Tpo -c -o libvpn_manager_la-nm-vpn-connection-base.lo `test -f 'nm-vpn-connection-base.c' || echo '$(srcdir)/'`nm-vpn-connection-base.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvpn_manager_la-nm-vpn-connection-base.Tpo $(DEPDIR)/libvpn_manager_la-nm-vpn-connection-base.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nm-vpn-connection-base.c' object='libvpn_manager_la-nm-vpn-connection-base.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvpn_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libvpn_manager_la-nm-vpn-connection-base.lo `test -f 'nm-vpn-connection-base.c' || echo '$(srcdir)/'`nm-vpn-connection-base.c
+
libvpn_manager_la-nm-vpn-connection.lo: nm-vpn-connection.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvpn_manager_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libvpn_manager_la-nm-vpn-connection.lo -MD -MP -MF $(DEPDIR)/libvpn_manager_la-nm-vpn-connection.Tpo -c -o libvpn_manager_la-nm-vpn-connection.lo `test -f 'nm-vpn-connection.c' || echo '$(srcdir)/'`nm-vpn-connection.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvpn_manager_la-nm-vpn-connection.Tpo $(DEPDIR)/libvpn_manager_la-nm-vpn-connection.Plo
@@ -627,6 +645,9 @@ uninstall-am:
pdf pdf-am ps ps-am tags uninstall uninstall-am
+nm-vpn-connection-base-glue.h: $(top_srcdir)/introspection/nm-active-connection.xml
+ $(AM_V_GEN) dbus-binding-tool --prefix=nm_vpn_connection_base --mode=glib-server --output=$@ $<
+
nm-vpn-connection-glue.h: $(top_srcdir)/introspection/nm-vpn-connection.xml
$(AM_V_GEN) dbus-binding-tool --prefix=nm_vpn_connection --mode=glib-server --output=$@ $<
diff --git a/src/vpn-manager/nm-vpn-connection-base.c b/src/vpn-manager/nm-vpn-connection-base.c
new file mode 100644
index 000000000..8a6fb2beb
--- /dev/null
+++ b/src/vpn-manager/nm-vpn-connection-base.c
@@ -0,0 +1,199 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager -- Network link manager
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2005 - 2011 Red Hat, Inc.
+ * Copyright (C) 2007 - 2008 Novell, Inc.
+ */
+
+#include "NetworkManager.h"
+#include "nm-vpn-connection-base.h"
+#include "nm-active-connection.h"
+#include "nm-vpn-connection-base-glue.h"
+#include "nm-dbus-manager.h"
+
+G_DEFINE_ABSTRACT_TYPE (NMVpnConnectionBase, nm_vpn_connection_base, G_TYPE_OBJECT)
+
+#define NM_VPN_CONNECTION_BASE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
+ NM_TYPE_VPN_CONNECTION_BASE, \
+ NMVpnConnectionBasePrivate))
+
+typedef struct {
+ gboolean disposed;
+
+ NMConnection *connection;
+ char *ac_path;
+ gboolean is_default;
+ gboolean is_default6;
+ NMActiveConnectionState state;
+} NMVpnConnectionBasePrivate;
+
+enum {
+ PROP_0,
+ PROP_SERVICE_NAME,
+ PROP_CONNECTION,
+ PROP_SPECIFIC_OBJECT,
+ PROP_DEVICES,
+ PROP_STATE,
+ PROP_DEFAULT,
+ PROP_DEFAULT6,
+ PROP_VPN,
+
+ LAST_PROP
+};
+
+/****************************************************************/
+
+void
+nm_vpn_connection_base_set_state (NMVpnConnectionBase *self,
+ NMVPNConnectionState vpn_state)
+{
+ NMVpnConnectionBasePrivate *priv = NM_VPN_CONNECTION_BASE_GET_PRIVATE (self);
+ NMActiveConnectionState new_ac_state = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
+
+ /* Set the NMActiveConnection state based on VPN state */
+ switch (vpn_state) {
+ case NM_VPN_CONNECTION_STATE_PREPARE:
+ case NM_VPN_CONNECTION_STATE_NEED_AUTH:
+ case NM_VPN_CONNECTION_STATE_CONNECT:
+ case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET:
+ new_ac_state = NM_ACTIVE_CONNECTION_STATE_ACTIVATING;
+ break;
+ case NM_VPN_CONNECTION_STATE_ACTIVATED:
+ new_ac_state = NM_ACTIVE_CONNECTION_STATE_ACTIVATED;
+ break;
+ default:
+ break;
+ }
+
+ if (new_ac_state != priv->state) {
+ priv->state = new_ac_state;
+ g_object_notify (G_OBJECT (self), NM_ACTIVE_CONNECTION_STATE);
+ }
+}
+
+const char *
+nm_vpn_connection_base_get_ac_path (NMVpnConnectionBase *self)
+{
+ return NM_VPN_CONNECTION_BASE_GET_PRIVATE (self)->ac_path;
+}
+
+void
+nm_vpn_connection_base_export (NMVpnConnectionBase *self,
+ NMConnection *connection)
+{
+ NMVpnConnectionBasePrivate *priv = NM_VPN_CONNECTION_BASE_GET_PRIVATE (self);
+ NMDBusManager *dbus_mgr;
+
+ g_return_if_fail (priv->connection == NULL);
+
+ priv->connection = g_object_ref (connection);
+
+ dbus_mgr = nm_dbus_manager_get ();
+ dbus_g_connection_register_g_object (nm_dbus_manager_get_connection (dbus_mgr),
+ priv->ac_path, G_OBJECT (self));
+ g_object_unref (dbus_mgr);
+}
+
+/****************************************************************/
+
+static void
+nm_vpn_connection_base_init (NMVpnConnectionBase *self)
+{
+ NMVpnConnectionBasePrivate *priv = NM_VPN_CONNECTION_BASE_GET_PRIVATE (self);
+
+ priv->state = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
+ priv->ac_path = nm_active_connection_get_next_object_path ();
+}
+
+static void
+dispose (GObject *object)
+{
+ NMVpnConnectionBasePrivate *priv = NM_VPN_CONNECTION_BASE_GET_PRIVATE (object);
+
+ if (!priv->disposed) {
+ priv->disposed = TRUE;
+
+ g_free (priv->ac_path);
+ g_object_unref (priv->connection);
+ }
+
+ G_OBJECT_CLASS (nm_vpn_connection_base_parent_class)->dispose (object);
+}
+
+static void
+get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec)
+{
+ NMVpnConnectionBasePrivate *priv = NM_VPN_CONNECTION_BASE_GET_PRIVATE (object);
+
+ switch (prop_id) {
+ case PROP_SERVICE_NAME:
+ nm_active_connection_scope_to_value (priv->connection, value);
+ break;
+ case PROP_CONNECTION:
+ g_value_set_boxed (value, nm_connection_get_path (priv->connection));
+ break;
+ case PROP_SPECIFIC_OBJECT:
+ g_value_set_boxed (value, priv->ac_path);
+ break;
+ case PROP_DEVICES:
+ g_value_take_boxed (value, g_ptr_array_new ());
+ break;
+ case PROP_STATE:
+ g_value_set_uint (value, priv->state);
+ break;
+ case PROP_DEFAULT:
+ g_value_set_boolean (value, priv->is_default);
+ break;
+ case PROP_DEFAULT6:
+ g_value_set_boolean (value, priv->is_default6);
+ break;
+ case PROP_VPN:
+ g_value_set_boolean (value, TRUE);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+nm_vpn_connection_base_class_init (NMVpnConnectionBaseClass *vpn_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (vpn_class);
+
+ g_type_class_add_private (vpn_class, sizeof (NMVpnConnectionBasePrivate));
+
+ /* virtual methods */
+ object_class->get_property = get_property;
+ object_class->dispose = dispose;
+
+ /* properties */
+ nm_active_connection_install_properties (object_class,
+ PROP_SERVICE_NAME,
+ PROP_CONNECTION,
+ PROP_SPECIFIC_OBJECT,
+ PROP_DEVICES,
+ PROP_STATE,
+ PROP_DEFAULT,
+ PROP_DEFAULT6,
+ PROP_VPN);
+
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (vpn_class),
+ &dbus_glib_nm_vpn_connection_base_object_info);
+}
+
diff --git a/src/vpn-manager/nm-vpn-connection-base.h b/src/vpn-manager/nm-vpn-connection-base.h
new file mode 100644
index 000000000..0c17d9e85
--- /dev/null
+++ b/src/vpn-manager/nm-vpn-connection-base.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager -- Network link manager
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2005 - 2011 Red Hat, Inc.
+ */
+
+#ifndef NM_VPN_CONNECTION_BASE_H
+#define NM_VPN_CONNECTION_BASE_H
+
+#include <glib-object.h>
+#include "NetworkManagerVPN.h"
+#include "nm-connection.h"
+
+#define NM_TYPE_VPN_CONNECTION_BASE (nm_vpn_connection_base_get_type ())
+#define NM_VPN_CONNECTION_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_CONNECTION_BASE, NMVpnConnectionBase))
+#define NM_VPN_CONNECTION_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_VPN_CONNECTION_BASE, NMVpnConnectionBaseClass))
+#define NM_IS_VPN_CONNECTION_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_VPN_CONNECTION_BASE))
+#define NM_IS_VPN_CONNECTION_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_VPN_CONNECTION_BASE))
+#define NM_VPN_CONNECTION_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_VPN_CONNECTION_BASE, NMVpnConnectionBaseClass))
+
+typedef struct {
+ GObject parent;
+} NMVpnConnectionBase;
+
+typedef struct {
+ GObjectClass parent;
+} NMVpnConnectionBaseClass;
+
+GType nm_vpn_connection_base_get_type (void);
+
+const char *nm_vpn_connection_base_get_ac_path (NMVpnConnectionBase *self);
+
+void nm_vpn_connection_base_export (NMVpnConnectionBase *self,
+ NMConnection *connection);
+
+void nm_vpn_connection_base_set_state (NMVpnConnectionBase *self,
+ NMVPNConnectionState vpn_state);
+
+#endif /* NM_VPN_CONNECTION_BASE_H */
+
diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c
index cf844992c..03e213ff7 100644
--- a/src/vpn-manager/nm-vpn-connection.c
+++ b/src/vpn-manager/nm-vpn-connection.c
@@ -52,7 +52,7 @@
static void secrets_provider_interface_init (NMSecretsProviderInterface *sp_interface_class);
-G_DEFINE_TYPE_EXTENDED (NMVPNConnection, nm_vpn_connection, G_TYPE_OBJECT, 0,
+G_DEFINE_TYPE_EXTENDED (NMVPNConnection, nm_vpn_connection, NM_TYPE_VPN_CONNECTION_BASE, 0,
G_IMPLEMENT_INTERFACE (NM_TYPE_SECRETS_PROVIDER_INTERFACE,
secrets_provider_interface_init))
@@ -62,16 +62,11 @@ typedef struct {
NMConnection *connection;
NMActRequest *act_request;
- char *ac_path;
NMDevice *parent_dev;
gulong device_monitor;
gulong device_ip4;
- gboolean is_default;
- gboolean is_default6;
- NMActiveConnectionState state;
-
NMVPNConnectionState vpn_state;
NMVPNConnectionStateReason failure_reason;
DBusGProxy *proxy;
@@ -97,14 +92,6 @@ static guint signals[LAST_SIGNAL] = { 0 };
enum {
PROP_0,
- PROP_SERVICE_NAME,
- PROP_CONNECTION,
- PROP_SPECIFIC_OBJECT,
- PROP_DEVICES,
- PROP_STATE,
- PROP_DEFAULT,
- PROP_DEFAULT6,
- PROP_VPN,
PROP_VPN_STATE,
PROP_BANNER,
@@ -117,7 +104,6 @@ nm_vpn_connection_set_vpn_state (NMVPNConnection *connection,
NMVPNConnectionStateReason reason)
{
NMVPNConnectionPrivate *priv;
- NMActiveConnectionState new_ac_state;
NMVPNConnectionState old_vpn_state;
char *ip_iface;
@@ -131,32 +117,14 @@ nm_vpn_connection_set_vpn_state (NMVPNConnection *connection,
old_vpn_state = priv->vpn_state;
priv->vpn_state = vpn_state;
+ /* Update active connection base class state */
+ nm_vpn_connection_base_set_state (NM_VPN_CONNECTION_BASE (connection), vpn_state);
+
/* Save ip_iface since when the VPN goes down it may get freed
* before we're done with it.
*/
ip_iface = g_strdup (priv->ip_iface);
- /* Set the NMActiveConnection state based on VPN state */
- switch (vpn_state) {
- case NM_VPN_CONNECTION_STATE_PREPARE:
- case NM_VPN_CONNECTION_STATE_NEED_AUTH:
- case NM_VPN_CONNECTION_STATE_CONNECT:
- case NM_VPN_CONNECTION_STATE_IP_CONFIG_GET:
- new_ac_state = NM_ACTIVE_CONNECTION_STATE_ACTIVATING;
- break;
- case NM_VPN_CONNECTION_STATE_ACTIVATED:
- new_ac_state = NM_ACTIVE_CONNECTION_STATE_ACTIVATED;
- break;
- default:
- new_ac_state = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
- break;
- }
-
- if (new_ac_state != priv->state) {
- priv->state = new_ac_state;
- g_object_notify (G_OBJECT (connection), NM_ACTIVE_CONNECTION_STATE);
- }
-
/* The connection gets destroyed by the VPN manager when it enters the
* disconnected/failed state, but we need to keep it around for a bit
* to send out signals and handle the dispatcher. So ref it.
@@ -259,6 +227,9 @@ nm_vpn_connection_new (NMConnection *connection,
priv->device_ip4 = g_signal_connect (parent_device, "notify::" NM_DEVICE_INTERFACE_IP4_CONFIG,
G_CALLBACK (device_ip4_config_changed),
self);
+
+ nm_vpn_connection_base_export (NM_VPN_CONNECTION_BASE (self), connection);
+
return self;
}
@@ -623,6 +594,7 @@ static void
really_activate (NMVPNConnection *connection)
{
NMVPNConnectionPrivate *priv;
+ GHashTable *hash;
g_return_if_fail (NM_IS_VPN_CONNECTION (connection));
g_return_if_fail (nm_vpn_connection_get_vpn_state (connection) == NM_VPN_CONNECTION_STATE_NEED_AUTH);
@@ -639,10 +611,12 @@ really_activate (NMVPNConnection *connection)
G_CALLBACK (nm_vpn_connection_ip4_config_get),
connection, NULL);
+ hash = nm_connection_to_hash (priv->connection);
org_freedesktop_NetworkManager_VPN_Plugin_connect_async (priv->proxy,
- nm_connection_to_hash (priv->connection),
- nm_vpn_connection_connect_cb,
- connection);
+ hash,
+ nm_vpn_connection_connect_cb,
+ connection);
+ g_hash_table_destroy (hash);
nm_vpn_connection_set_vpn_state (connection,
NM_VPN_CONNECTION_STATE_CONNECT,
@@ -688,7 +662,7 @@ nm_vpn_connection_get_active_connection_path (NMVPNConnection *connection)
{
g_return_val_if_fail (NM_IS_VPN_CONNECTION (connection), NULL);
- return NM_VPN_CONNECTION_GET_PRIVATE (connection)->ac_path;
+ return nm_vpn_connection_base_get_ac_path (NM_VPN_CONNECTION_BASE (connection));
}
const char *
@@ -979,20 +953,9 @@ connection_state_changed (NMVPNConnection *connection,
}
static void
-nm_vpn_connection_init (NMVPNConnection *connection)
+nm_vpn_connection_init (NMVPNConnection *self)
{
- NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (connection);
- NMDBusManager *dbus_mgr;
-
- priv->state = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
- priv->vpn_state = NM_VPN_CONNECTION_STATE_PREPARE;
- priv->ac_path = nm_active_connection_get_next_object_path ();
-
- dbus_mgr = nm_dbus_manager_get ();
- dbus_g_connection_register_g_object (nm_dbus_manager_get_connection (dbus_mgr),
- priv->ac_path,
- G_OBJECT (connection));
- g_object_unref (dbus_mgr);
+ NM_VPN_CONNECTION_GET_PRIVATE (self)->vpn_state = NM_VPN_CONNECTION_STATE_PREPARE;
}
static void
@@ -1039,7 +1002,6 @@ finalize (GObject *object)
g_free (priv->banner);
g_free (priv->ip_iface);
- g_free (priv->ac_path);
G_OBJECT_CLASS (nm_vpn_connection_parent_class)->finalize (object);
}
@@ -1051,30 +1013,6 @@ get_property (GObject *object, guint prop_id,
NMVPNConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (object);
switch (prop_id) {
- case PROP_SERVICE_NAME:
- nm_active_connection_scope_to_value (priv->connection, value);
- break;
- case PROP_CONNECTION:
- g_value_set_boxed (value, nm_connection_get_path (priv->connection));
- break;
- case PROP_SPECIFIC_OBJECT:
- g_value_set_boxed (value, nm_act_request_get_active_connection_path (priv->act_request));
- break;
- case PROP_DEVICES:
- g_value_take_boxed (value, g_ptr_array_new ());
- break;
- case PROP_STATE:
- g_value_set_uint (value, priv->state);
- break;
- case PROP_DEFAULT:
- g_value_set_boolean (value, priv->is_default);
- break;
- case PROP_DEFAULT6:
- g_value_set_boolean (value, priv->is_default6);
- break;
- case PROP_VPN:
- g_value_set_boolean (value, TRUE);
- break;
case PROP_VPN_STATE:
g_value_set_uint (value, priv->vpn_state);
break;
@@ -1101,82 +1039,21 @@ nm_vpn_connection_class_init (NMVPNConnectionClass *connection_class)
object_class->finalize = finalize;
/* properties */
- g_object_class_install_property
- (object_class, PROP_SERVICE_NAME,
- g_param_spec_string (NM_ACTIVE_CONNECTION_SERVICE_NAME,
- "Service name",
- "Service name",
- NULL,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_CONNECTION,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_CONNECTION,
- "Connection",
- "Connection",
- DBUS_TYPE_G_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_SPECIFIC_OBJECT,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_SPECIFIC_OBJECT,
- "Specific object",
- "Specific object",
- DBUS_TYPE_G_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEVICES,
- g_param_spec_boxed (NM_ACTIVE_CONNECTION_DEVICES,
- "Devices",
- "Devices",
- DBUS_TYPE_G_ARRAY_OF_OBJECT_PATH,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_STATE,
- g_param_spec_uint (NM_ACTIVE_CONNECTION_STATE,
- "State",
- "State",
- NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
- NM_ACTIVE_CONNECTION_STATE_ACTIVATED,
- NM_ACTIVE_CONNECTION_STATE_UNKNOWN,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEFAULT,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT,
- "Default",
- "Is the default IPv4 active connection",
- FALSE,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_DEFAULT6,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_DEFAULT6,
- "Default6",
- "Is the default IPv6 active connection",
- FALSE,
- G_PARAM_READABLE));
- g_object_class_install_property
- (object_class, PROP_VPN,
- g_param_spec_boolean (NM_ACTIVE_CONNECTION_VPN,
- "VPN",
- "Is a VPN connection",
- TRUE,
- G_PARAM_READABLE));
-
- g_object_class_install_property
- (object_class, PROP_VPN_STATE,
- g_param_spec_uint (NM_VPN_CONNECTION_VPN_STATE,
- "VpnState",
- "Current VPN state",
- NM_VPN_CONNECTION_STATE_UNKNOWN,
- NM_VPN_CONNECTION_STATE_DISCONNECTED,
- NM_VPN_CONNECTION_STATE_UNKNOWN,
- G_PARAM_READABLE));
-
- g_object_class_install_property
- (object_class, PROP_BANNER,
- g_param_spec_string (NM_VPN_CONNECTION_BANNER,
- "Banner",
- "Login Banner",
- NULL,
- G_PARAM_READABLE));
+ g_object_class_install_property (object_class, PROP_VPN_STATE,
+ g_param_spec_uint (NM_VPN_CONNECTION_VPN_STATE,
+ "VpnState",
+ "Current VPN state",
+ NM_VPN_CONNECTION_STATE_UNKNOWN,
+ NM_VPN_CONNECTION_STATE_DISCONNECTED,
+ NM_VPN_CONNECTION_STATE_UNKNOWN,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (object_class, PROP_BANNER,
+ g_param_spec_string (NM_VPN_CONNECTION_BANNER,
+ "Banner",
+ "Login Banner",
+ NULL,
+ G_PARAM_READABLE));
/* signals */
signals[VPN_STATE_CHANGED] =
diff --git a/src/vpn-manager/nm-vpn-connection.h b/src/vpn-manager/nm-vpn-connection.h
index d69674db9..ab880b17f 100644
--- a/src/vpn-manager/nm-vpn-connection.h
+++ b/src/vpn-manager/nm-vpn-connection.h
@@ -28,6 +28,7 @@
#include "nm-device.h"
#include "nm-activation-request.h"
#include "nm-secrets-provider-interface.h"
+#include "nm-vpn-connection-base.h"
#define NM_TYPE_VPN_CONNECTION (nm_vpn_connection_get_type ())
#define NM_VPN_CONNECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_VPN_CONNECTION, NMVPNConnection))
@@ -40,11 +41,11 @@
#define NM_VPN_CONNECTION_BANNER "banner"
typedef struct {
- GObject parent;
+ NMVpnConnectionBase parent;
} NMVPNConnection;
typedef struct {
- GObjectClass parent;
+ NMVpnConnectionBaseClass parent;
/* Signals */
void (*vpn_state_changed) (NMVPNConnection *connection,
diff --git a/system-settings/Makefile.in b/system-settings/Makefile.in
index f6e1a7a98..5defd4f3b 100644
--- a/system-settings/Makefile.in
+++ b/system-settings/Makefile.in
@@ -189,6 +189,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -203,6 +207,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/Makefile.in b/system-settings/plugins/Makefile.in
index 1e6804e15..c4f7fa63a 100644
--- a/system-settings/plugins/Makefile.in
+++ b/system-settings/plugins/Makefile.in
@@ -194,6 +194,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -208,6 +212,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifcfg-rh/Makefile.in b/system-settings/plugins/ifcfg-rh/Makefile.in
index 22383f921..9d79e8e93 100644
--- a/system-settings/plugins/ifcfg-rh/Makefile.in
+++ b/system-settings/plugins/ifcfg-rh/Makefile.in
@@ -264,6 +264,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -278,6 +282,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifcfg-rh/plugin.c b/system-settings/plugins/ifcfg-rh/plugin.c
index e6dfa5bce..8dce0334a 100644
--- a/system-settings/plugins/ifcfg-rh/plugin.c
+++ b/system-settings/plugins/ifcfg-rh/plugin.c
@@ -147,7 +147,6 @@ read_one_connection (SCPluginIfcfg *plugin, const char *filename)
if (nm_ifcfg_connection_get_unmanaged_spec (connection)) {
PLUGIN_PRINT (IFCFG_PLUGIN_NAME, "Ignoring connection '%s' and its "
"device due to NM_CONTROLLED/BRIDGE/VLAN.", cid);
- g_signal_emit_by_name (plugin, NM_SYSTEM_CONFIG_INTERFACE_UNMANAGED_SPECS_CHANGED);
} else {
/* Wait for the connection to become unmanaged once it knows the
* UDI of it's device, if/when the device gets plugged in.
@@ -218,8 +217,6 @@ connection_changed_handler (SCPluginIfcfg *plugin,
g_return_if_fail (do_remove != NULL);
g_return_if_fail (do_new != NULL);
- PLUGIN_PRINT (IFCFG_PLUGIN_NAME, "updating %s", path);
-
new = (NMIfcfgConnection *) nm_ifcfg_connection_new (path, &error, &ignore_error);
if (!new) {
/* errors reading connection; remove it */
@@ -234,8 +231,19 @@ connection_changed_handler (SCPluginIfcfg *plugin,
return;
}
+
/* Successfully read connection changes */
+ /* When the connections are the same, nothing is done */
+ if (nm_connection_compare (NM_CONNECTION (connection),
+ NM_CONNECTION (new),
+ NM_SETTING_COMPARE_FLAG_EXACT)) {
+ g_object_unref (new);
+ return;
+ }
+
+ PLUGIN_PRINT (IFCFG_PLUGIN_NAME, "updating %s", path);
+
old_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (connection));
new_unmanaged = nm_ifcfg_connection_get_unmanaged_spec (NM_IFCFG_CONNECTION (new));
@@ -305,7 +313,9 @@ handle_connection_remove_or_new (SCPluginIfcfg *plugin,
if (do_new) {
connection = read_one_connection (plugin, path);
if (connection) {
- if (!nm_ifcfg_connection_get_unmanaged_spec (connection))
+ if (nm_ifcfg_connection_get_unmanaged_spec (connection))
+ g_signal_emit_by_name (plugin, NM_SYSTEM_CONFIG_INTERFACE_UNMANAGED_SPECS_CHANGED);
+ else
g_signal_emit_by_name (plugin, NM_SYSTEM_CONFIG_INTERFACE_CONNECTION_ADDED, connection);
}
}
diff --git a/system-settings/plugins/ifcfg-rh/reader.c b/system-settings/plugins/ifcfg-rh/reader.c
index f25acc892..4ca9232a1 100644
--- a/system-settings/plugins/ifcfg-rh/reader.c
+++ b/system-settings/plugins/ifcfg-rh/reader.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 <config.h>
@@ -114,7 +114,7 @@ make_connection_setting (const char *file,
{
NMSettingConnection *s_con;
const char *ifcfg_name = NULL;
- char *new_id = NULL, *uuid = NULL, *value;
+ char *new_id = NULL, *uuid = NULL;
char *ifcfg_id;
ifcfg_name = utils_get_ifcfg_name (file, TRUE);
@@ -167,21 +167,6 @@ make_connection_setting (const char *file,
svTrueValue (ifcfg, "ONBOOT", TRUE),
NULL);
- value = svGetValue (ifcfg, "LAST_CONNECT", FALSE);
- if (value) {
- unsigned long int tmp;
- guint64 timestamp;
-
- errno = 0;
- tmp = strtoul (value, NULL, 10);
- if (errno == 0) {
- timestamp = (guint64) tmp;
- g_object_set (s_con, NM_SETTING_CONNECTION_TIMESTAMP, timestamp, NULL);
- } else
- PLUGIN_WARN (IFCFG_PLUGIN_NAME, " warning: invalid LAST_CONNECT time");
- g_free (value);
- }
-
return NM_SETTING (s_con);
}
@@ -683,12 +668,7 @@ read_one_ip4_route (shvarFile *ifcfg,
/* Next hop */
if (!read_ip4_address (ifcfg, gw_tag, &tmp, error))
goto out;
- if (!tmp) {
- g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
- "Missing or invalid IP4 gateway address '%d'",
- tmp);
- goto out;
- }
+ /* No need to check tmp, because we don't make distinction between missing GATEWAY IP and 0.0.0.0 */
nm_ip4_route_set_next_hop (route, tmp);
/* Prefix */
@@ -891,11 +871,17 @@ error:
}
static NMIP6Address *
-parse_full_ip6_address (const char *addr_str, GError **error)
+parse_full_ip6_address (shvarFile *ifcfg,
+ const char *network_file,
+ const char *addr_str,
+ int i,
+ GError **error)
{
- NMIP6Address *addr;
+ NMIP6Address *addr = NULL;
char **list;
- char *ip_tag, *prefix_tag;
+ char *ip_val, *prefix_val;
+ shvarFile *network_ifcfg;
+ char *value = NULL;
struct in6_addr tmp = IN6ADDR_ANY_INIT;
gboolean success = FALSE;
@@ -911,27 +897,26 @@ parse_full_ip6_address (const char *addr_str, GError **error)
goto error;
}
- ip_tag = list[0];
- prefix_tag = list[1];
+ ip_val = list[0];
+ prefix_val = list[1];
addr = nm_ip6_address_new ();
/* IP address */
- if (ip_tag) {
- if (!parse_ip6_address (ip_tag, &tmp, error))
+ if (ip_val) {
+ if (!parse_ip6_address (ip_val, &tmp, error))
goto error;
}
-
nm_ip6_address_set_address (addr, &tmp);
/* Prefix */
- if (prefix_tag) {
+ if (prefix_val) {
long int prefix;
errno = 0;
- prefix = strtol (prefix_tag, NULL, 10);
+ prefix = strtol (prefix_val, NULL, 10);
if (errno || prefix <= 0 || prefix > 128) {
g_set_error (error, IFCFG_PLUGIN_ERROR, 0,
- "Invalid IP6 prefix '%s'", prefix_tag);
+ "Invalid IP6 prefix '%s'", prefix_val);
goto error;
}
nm_ip6_address_set_prefix (addr, (guint32) prefix);
@@ -940,6 +925,32 @@ parse_full_ip6_address (const char *addr_str, GError **error)
nm_ip6_address_set_prefix (addr, 64);
}
+ /* Gateway */
+ tmp = in6addr_any;
+ value = svGetValue (ifcfg, "IPV6_DEFAULTGW", FALSE);
+ if (i != 0) {
+ /* We don't support gateways for IPV6ADDR_SECONDARIES yet */
+ g_free (value);
+ value = NULL;
+ }
+ if (!value) {
+ /* If no gateway in the ifcfg, try global /etc/sysconfig/network instead */
+ network_ifcfg = svNewFile (network_file);
+ if (network_ifcfg) {
+ value = svGetValue (network_ifcfg, "IPV6_DEFAULTGW", FALSE);
+ svCloseFile (network_ifcfg);
+ }
+ }
+ if (value) {
+ char *ptr;
+
+ if ((ptr = strchr (value, '%')) != NULL)
+ *ptr = '\0'; /* remove %interface prefix if present */
+ if (!parse_ip6_address (value, &tmp, error))
+ goto error;
+ nm_ip6_address_set_gateway (addr, &tmp);
+ }
+
success = TRUE;
error:
@@ -949,6 +960,7 @@ error:
}
g_strfreev (list);
+ g_free (value);
return addr;
}
@@ -1167,6 +1179,7 @@ make_ip4_setting (shvarFile *ifcfg,
if (!g_ascii_strcasecmp (value, "bootp") || !g_ascii_strcasecmp (value, "dhcp"))
method = NM_SETTING_IP4_CONFIG_METHOD_AUTO;
else if (!g_ascii_strcasecmp (value, "ibft")) {
+ g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, never_default, NULL);
/* iSCSI Boot Firmware Table: need to read values from the iSCSI
* firmware for this device and create the IP4 setting using those.
*/
@@ -1511,8 +1524,8 @@ make_ip6_setting (shvarFile *ifcfg,
list = g_strsplit_set (val, " ", 0);
g_free (val);
- for (iter = list; iter && *iter; iter++, i++) {
- addr = parse_full_ip6_address (*iter, error);
+ for (iter = list, i = 0; iter && *iter; iter++, i++) {
+ addr = parse_full_ip6_address (ifcfg, network_file, *iter, i, error);
if (!addr) {
g_strfreev (list);
goto error;
diff --git a/system-settings/plugins/ifcfg-rh/tests/Makefile.in b/system-settings/plugins/ifcfg-rh/tests/Makefile.in
index 5241e8ed2..ee01e1f1a 100644
--- a/system-settings/plugins/ifcfg-rh/tests/Makefile.in
+++ b/system-settings/plugins/ifcfg-rh/tests/Makefile.in
@@ -226,6 +226,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -240,6 +244,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in b/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
index fb89c2412..54080b012 100644
--- a/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
+++ b/system-settings/plugins/ifcfg-rh/tests/network-scripts/Makefile.in
@@ -149,6 +149,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -163,6 +167,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c b/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
index bca9af123..2fbfea661 100644
--- a/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
+++ b/system-settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c
@@ -29,8 +29,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <dbus/dbus-glib.h>
-
#include <nm-utils.h>
#include <nm-setting-connection.h>
#include <nm-setting-wired.h>
@@ -5636,7 +5634,6 @@ test_write_wired_static (void)
GByteArray *mac;
guint32 mtu = 1492;
char *uuid;
- guint64 timestamp = 0x12344433L;
const guint32 ip1 = htonl (0x01010103);
const guint32 ip2 = htonl (0x01010105);
const guint32 gw = htonl (0x01010101);
@@ -5691,7 +5688,6 @@ test_write_wired_static (void)
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
- NM_SETTING_CONNECTION_TIMESTAMP, timestamp,
NULL);
g_free (uuid);
@@ -5986,7 +5982,6 @@ test_write_wired_static_ip6_only (void)
static unsigned char tmpmac[] = { 0x31, 0x33, 0x33, 0x37, 0xbe, 0xcd };
GByteArray *mac;
char *uuid;
- guint64 timestamp = 0x12344433L;
struct in6_addr ip6;
struct in6_addr dns6;
NMIP6Address *addr6;
@@ -6019,7 +6014,6 @@ test_write_wired_static_ip6_only (void)
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
- NM_SETTING_CONNECTION_TIMESTAMP, timestamp,
NULL);
g_free (uuid);
@@ -6276,7 +6270,6 @@ test_write_wired_static_routes (void)
GByteArray *mac;
guint32 mtu = 1492;
char *uuid;
- guint64 timestamp = 0x12344433L;
const guint32 ip1 = htonl (0x01010103);
const guint32 ip2 = htonl (0x01010105);
const guint32 gw = htonl (0x01010101);
@@ -6317,7 +6310,6 @@ test_write_wired_static_routes (void)
NM_SETTING_CONNECTION_UUID, uuid,
NM_SETTING_CONNECTION_AUTOCONNECT, TRUE,
NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
- NM_SETTING_CONNECTION_TIMESTAMP, timestamp,
NULL);
g_free (uuid);
@@ -9490,11 +9482,9 @@ test_read_vlan_interface (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/system-settings/plugins/ifcfg-rh/writer.c b/system-settings/plugins/ifcfg-rh/writer.c
index cf1e2663a..456fa21c3 100644
--- a/system-settings/plugins/ifcfg-rh/writer.c
+++ b/system-settings/plugins/ifcfg-rh/writer.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) 2009 - 2010 Red Hat, Inc.
+ * Copyright (C) 2009 - 2011 Red Hat, Inc.
*/
#include <ctype.h>
@@ -143,6 +143,7 @@ write_secret_file (const char *path,
success = TRUE;
out:
+ g_free (tmppath);
return success;
}
@@ -884,6 +885,7 @@ write_wired_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
svSetValue (ifcfg, "SUBCHANNELS", NULL, FALSE);
s390_subchannels = nm_setting_wired_get_s390_subchannels (s_wired);
if (s390_subchannels) {
+ tmp = NULL;
if (s390_subchannels->len == 2) {
tmp = g_strdup_printf ("%s,%s",
(const char *) g_ptr_array_index (s390_subchannels, 0),
@@ -936,20 +938,11 @@ write_wired_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
static void
write_connection_setting (NMSettingConnection *s_con, shvarFile *ifcfg)
{
- char *tmp;
-
svSetValue (ifcfg, "NAME", nm_setting_connection_get_id (s_con), FALSE);
svSetValue (ifcfg, "UUID", nm_setting_connection_get_uuid (s_con), FALSE);
svSetValue (ifcfg, "ONBOOT",
nm_setting_connection_get_autoconnect (s_con) ? "yes" : "no",
FALSE);
-
- svSetValue (ifcfg, "LAST_CONNECT", NULL, FALSE);
- if (nm_setting_connection_get_timestamp (s_con)) {
- tmp = g_strdup_printf ("%" G_GUINT64_FORMAT, nm_setting_connection_get_timestamp (s_con));
- svSetValue (ifcfg, "LAST_CONNECT", tmp, FALSE);
- g_free (tmp);
- }
}
static gboolean
@@ -1407,6 +1400,13 @@ write_ip6_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
g_string_append_c (ip_ptr, '/');
g_string_append (ip_ptr, prefix);
g_free (prefix);
+
+ /* We only support gateway for the first IP address for now */
+ if (i == 0) {
+ ip = nm_ip6_address_get_gateway (addr);
+ inet_ntop (AF_INET6, (const void *) ip, buf, sizeof (buf));
+ svSetValue (ifcfg, "IPV6_DEFAULTGW", buf, FALSE);
+ }
}
svSetValue (ifcfg, "IPV6ADDR", ip_str1->str, FALSE);
@@ -1416,6 +1416,7 @@ write_ip6_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
} else {
svSetValue (ifcfg, "IPV6ADDR", NULL, FALSE);
svSetValue (ifcfg, "IPV6ADDR_SECONDARIES", NULL, FALSE);
+ svSetValue (ifcfg, "IPV6_DEFAULTGW", NULL, FALSE);
}
/* Write out DNS - 'DNS' key is used both for IPv4 and IPv6 */
diff --git a/system-settings/plugins/ifcfg-suse/Makefile.in b/system-settings/plugins/ifcfg-suse/Makefile.in
index 3551794fd..9c948c1b5 100644
--- a/system-settings/plugins/ifcfg-suse/Makefile.in
+++ b/system-settings/plugins/ifcfg-suse/Makefile.in
@@ -212,6 +212,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -226,6 +230,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifnet/Makefile.am b/system-settings/plugins/ifnet/Makefile.am
index f63f8ca71..86d5ea251 100644
--- a/system-settings/plugins/ifnet/Makefile.am
+++ b/system-settings/plugins/ifnet/Makefile.am
@@ -21,11 +21,10 @@ libnm_settings_plugin_ifnet_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
$(GUDEV_CFLAGS) \
-DG_DISABLE_DEPRECATED \
- -DSYSCONFDIR=\"$(sysconfdir)\"\
- -g
-
+ -DSYSCONFDIR=\"$(sysconfdir)\"
libnm_settings_plugin_ifnet_la_LDFLAGS = -module -avoid-version
+
libnm_settings_plugin_ifnet_la_LIBADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(top_builddir)/libnm-glib/libnm-glib.la \
@@ -50,12 +49,9 @@ lib_ifnet_io_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
-DG_DISABLE_DEPRECATED \
-DSYSCONFDIR=\"$(sysconfdir)\" \
- -DSBINDIR=\"$(sbindir)\"\
- -g
+ -DSBINDIR=\"$(sbindir)\"
lib_ifnet_io_la_LIBADD = \
$(top_builddir)/libnm-util/libnm-util.la \
$(GLIB_LIBS)\
$(GIO_LIBS)
-
-
diff --git a/system-settings/plugins/ifnet/Makefile.in b/system-settings/plugins/ifnet/Makefile.in
index 39515d884..c5047f5b2 100644
--- a/system-settings/plugins/ifnet/Makefile.in
+++ b/system-settings/plugins/ifnet/Makefile.in
@@ -260,6 +260,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -274,6 +278,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -370,8 +375,7 @@ libnm_settings_plugin_ifnet_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
$(GUDEV_CFLAGS) \
-DG_DISABLE_DEPRECATED \
- -DSYSCONFDIR=\"$(sysconfdir)\"\
- -g
+ -DSYSCONFDIR=\"$(sysconfdir)\"
libnm_settings_plugin_ifnet_la_LDFLAGS = -module -avoid-version
libnm_settings_plugin_ifnet_la_LIBADD = \
@@ -398,8 +402,7 @@ lib_ifnet_io_la_CPPFLAGS = \
$(DBUS_CFLAGS) \
-DG_DISABLE_DEPRECATED \
-DSYSCONFDIR=\"$(sysconfdir)\" \
- -DSBINDIR=\"$(sbindir)\"\
- -g
+ -DSBINDIR=\"$(sbindir)\"
lib_ifnet_io_la_LIBADD = \
$(top_builddir)/libnm-util/libnm-util.la \
diff --git a/system-settings/plugins/ifnet/net_utils.c b/system-settings/plugins/ifnet/net_utils.c
index 8a541979d..2dc253c54 100644
--- a/system-settings/plugins/ifnet/net_utils.c
+++ b/system-settings/plugins/ifnet/net_utils.c
@@ -19,7 +19,6 @@
* Copyright (C) 1999-2010 Gentoo Foundation, Inc.
*/
-#include <config.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -194,6 +193,32 @@ ifnet_plugin_error_quark (void)
return error_quark;
}
+static char *
+find_default_gateway_str (char *str)
+{
+ char *tmp;
+
+ if ((tmp = strstr (str, "default via ")) != NULL) {
+ return tmp + strlen ("default via ");
+ } else if ((tmp = strstr (str, "default gw ")) != NULL) {
+ return tmp + strlen ("default gw ");
+ }
+ return NULL;
+}
+
+static char *
+find_gateway_str (char *str)
+{
+ char *tmp;
+
+ if ((tmp = strstr (str, "via ")) != NULL) {
+ return tmp + strlen ("via ");
+ } else if ((tmp = strstr (str, "gw ")) != NULL) {
+ return tmp + strlen ("gw ");
+ }
+ return NULL;
+}
+
gboolean
reload_parsers ()
{
@@ -362,11 +387,10 @@ has_default_route (gchar * conn_name, gboolean (*check_fn) (gchar *))
if (!tmp)
return FALSE;
routes = g_strdup (tmp);
- tmp = strstr (routes, "default via ");
+ tmp = find_default_gateway_str (routes);
if (!tmp) {
goto error;
}
- tmp += strlen ("default via ");
g_strstrip (tmp);
if ((end = strstr (tmp, "\"")) != NULL)
*end = '\0';
@@ -483,8 +507,13 @@ get_ip4_gateway (gchar * gateway)
if (!gateway)
return 0;
- tmp = strstr (gateway, "via ");
- tmp = g_strdup (tmp + strlen ("via "));
+ tmp = find_gateway_str (gateway);
+ if (!tmp) {
+ PLUGIN_WARN (IFNET_PLUGIN_NAME,
+ "Couldn't obtain gateway in \"%s\"", gateway);
+ return 0;
+ }
+ tmp = g_strdup (tmp);
strip_string (tmp, ' ');
strip_string (tmp, '"');
if ((split = strstr (tmp, "\"")) != NULL)
@@ -509,8 +538,13 @@ get_ip6_next_hop (gchar * next_hop)
if (!next_hop)
return 0;
- tmp = strstr (next_hop, "via ");
- tmp = g_strdup (tmp + strlen ("via "));
+ tmp = find_gateway_str (next_hop);
+ if (!tmp) {
+ PLUGIN_WARN (IFNET_PLUGIN_NAME,
+ "Couldn't obtain next_hop in \"%s\"", next_hop);
+ return 0;
+ }
+ tmp = g_strdup (tmp);
strip_string (tmp, ' ');
strip_string (tmp, '"');
g_strstrip (tmp);
@@ -671,8 +705,8 @@ convert_ip4_routes_block (gchar * conn_name)
length = g_strv_length (ipset);
for (i = 0; i < length; i++) {
ip = ipset[i];
- if (strstr (ip, "default via ") || strstr (ip, "::")
- || !strstr (ip, "via"))
+ if (find_default_gateway_str (ip) || strstr (ip, "::")
+ || !find_gateway_str (ip))
continue;
ip = strip_string (ip, '"');
iblock = create_ip4_block (ip);
@@ -712,9 +746,7 @@ convert_ip6_routes_block (gchar * conn_name)
ip = strip_string (ip, '"');
if (ip[0] == '\0')
continue;
- printf ("ip:%s\n", ip);
- if ((tmp_addr = strstr (ip, "default via ")) != NULL) {
- tmp_addr += strlen ("default via ");
+ if ((tmp_addr = find_default_gateway_str (ip)) != NULL) {
if (!is_ip6_address (tmp_addr))
continue;
else {
@@ -855,7 +887,7 @@ is_managed (gchar * conn_name)
void
get_dhcp_hostname_and_client_id (char **hostname, char **client_id)
{
- gchar *dhcp_client = ifnet_get_global_setting ("main", "dhcp");
+ gchar *dhcp_client = NULL;
const gchar *dhcpcd_conf = "/etc/dhcpcd.conf";
const gchar *dhclient_conf = "/etc/dhcp/dhclient.conf";
gchar *line = NULL, *tmp = NULL, *contents = NULL;
@@ -864,6 +896,7 @@ get_dhcp_hostname_and_client_id (char **hostname, char **client_id)
*hostname = NULL;
*client_id = NULL;
+ dhcp_client = ifnet_get_global_setting ("main", "dhcp");
if (dhcp_client) {
if (!strcmp (dhcp_client, "dhclient"))
g_file_get_contents (dhclient_conf, &contents, NULL,
@@ -871,6 +904,7 @@ get_dhcp_hostname_and_client_id (char **hostname, char **client_id)
else if (!strcmp (dhcp_client, "dhcpcd"))
g_file_get_contents (dhcpcd_conf, &contents, NULL,
NULL);
+ g_free (dhcp_client);
} else {
if (g_file_test (dhclient_conf, G_FILE_TEST_IS_REGULAR))
g_file_get_contents (dhclient_conf, &contents, NULL,
diff --git a/system-settings/plugins/ifnet/plugin.c b/system-settings/plugins/ifnet/plugin.c
index 51d560246..94f9e791f 100644
--- a/system-settings/plugins/ifnet/plugin.c
+++ b/system-settings/plugins/ifnet/plugin.c
@@ -40,7 +40,7 @@
#include "connection_parser.h"
#define IFNET_PLUGIN_NAME_PRINT "ifnet"
-#define IFNET_PLUGIN_INFO "(C) 1999-2010 Gentoo Foundation, Inc. To report bugs please use bugs.gentoo.org with [networkmanager] or [dagger] prefix."
+#define IFNET_PLUGIN_INFO "(C) 1999-2010 Gentoo Foundation, Inc. To report bugs please use bugs.gentoo.org with [networkmanager] or [qiaomuf] prefix."
#define IFNET_SYSTEM_HOSTNAME_FILE "/etc/conf.d/hostname"
#define IFNET_MANAGE_WELL_KNOWN_DEFAULT TRUE
#define IFNET_KEY_FILE_KEY_MANAGED "managed"
diff --git a/system-settings/plugins/ifnet/tests/Makefile.am b/system-settings/plugins/ifnet/tests/Makefile.am
index ead3f1fc4..17a081f54 100644
--- a/system-settings/plugins/ifnet/tests/Makefile.am
+++ b/system-settings/plugins/ifnet/tests/Makefile.am
@@ -6,8 +6,7 @@ INCLUDES=-I$(top_srcdir)/system-settings/plugins/ifnet\
TESTS = check_ifnet
check_PROGRAMS = check_ifnet
check_ifnet_SOURCES = test_all.c
-check_ifnet_LDFLAGS = -g
-check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS) -g
+check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS)
check_ifnet_LDADD = $(top_srcdir)/libnm-util/libnm-util.la\
$(top_srcdir)/system-settings/plugins/ifnet/lib-ifnet-io.la\
$(CHECK_LIBS)\
diff --git a/system-settings/plugins/ifnet/tests/Makefile.in b/system-settings/plugins/ifnet/tests/Makefile.in
index cef1039be..39d49b4e3 100644
--- a/system-settings/plugins/ifnet/tests/Makefile.in
+++ b/system-settings/plugins/ifnet/tests/Makefile.in
@@ -59,9 +59,6 @@ check_ifnet_DEPENDENCIES = $(top_srcdir)/libnm-util/libnm-util.la \
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
-check_ifnet_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(check_ifnet_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -187,6 +184,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -201,6 +202,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -283,8 +285,7 @@ INCLUDES = -I$(top_srcdir)/system-settings/plugins/ifnet\
-I$(top_srcdir)/src/system-settings
check_ifnet_SOURCES = test_all.c
-check_ifnet_LDFLAGS = -g
-check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS) -g
+check_ifnet_CPPFLAGS = $(CHECK_CFLAGS) $(GLIB_CFLAGS)
check_ifnet_LDADD = $(top_srcdir)/libnm-util/libnm-util.la\
$(top_srcdir)/system-settings/plugins/ifnet/lib-ifnet-io.la\
$(CHECK_LIBS)\
@@ -335,7 +336,7 @@ clean-checkPROGRAMS:
rm -f $$list
check_ifnet$(EXEEXT): $(check_ifnet_OBJECTS) $(check_ifnet_DEPENDENCIES)
@rm -f check_ifnet$(EXEEXT)
- $(AM_V_CCLD)$(check_ifnet_LINK) $(check_ifnet_OBJECTS) $(check_ifnet_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(check_ifnet_OBJECTS) $(check_ifnet_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
diff --git a/system-settings/plugins/ifnet/tests/test_all.c b/system-settings/plugins/ifnet/tests/test_all.c
index ba9839761..eff76af28 100644
--- a/system-settings/plugins/ifnet/tests/test_all.c
+++ b/system-settings/plugins/ifnet/tests/test_all.c
@@ -58,17 +58,22 @@ test_read_hostname ()
"get hostname",
"hostname is not correctly read, read:%s, expected: gentoo",
hostname);
+ g_free (hostname);
}
static void
test_write_hostname ()
{
gchar *hostname = read_hostname ("hostname");
+ gchar *tmp;
write_hostname ("gentoo-nm", "hostname");
- ASSERT (strcmp (read_hostname ("hostname"), "gentoo-nm") == 0,
+ tmp = read_hostname ("hostname");
+ ASSERT (strcmp (tmp, "gentoo-nm") == 0,
"write hostname", "write hostname error");
write_hostname (hostname, "hostname");
+ g_free (tmp);
+ g_free (hostname);
}
static void
@@ -85,14 +90,13 @@ test_is_static ()
static void
test_has_default_route ()
{
- ASSERT (has_default_ip4_route ("eth0"), "has default route",
- "eth0 should have a default ipv4 route");
- ASSERT (has_default_ip6_route ("eth4"), "has default route",
- "eth4 should have a default ipv6 route");
-
+ ASSERT (has_default_ip4_route ("eth0"),
+ "has default route", "eth0 should have a default ipv4 route");
+ ASSERT (has_default_ip6_route ("eth4"),
+ "has default route", "eth4 should have a default ipv6 route");
ASSERT (!has_default_ip4_route ("eth5")
- && !has_default_ip6_route ("eth5"), "has default route",
- "eth5 shouldn't have a default route");
+ && !has_default_ip6_route ("eth5"),
+ "has default route", "eth5 shouldn't have a default route");
}
static void
@@ -138,8 +142,8 @@ check_ip_block (ip_block * iblock, gchar * ip, gchar * netmask, gchar * gateway)
str = malloc (INET_ADDRSTRLEN);
tmp_ip4_addr.s_addr = iblock->ip;
inet_ntop (AF_INET, &tmp_ip4_addr, str, INET_ADDRSTRLEN);
- ASSERT (strcmp (ip, str) == 0, "check ip", "ip expected:%s, find:%s",
- ip, str);
+ ASSERT (strcmp (ip, str) == 0, "check ip",
+ "ip expected:%s, find:%s", ip, str);
tmp_ip4_addr.s_addr = iblock->netmask;
inet_ntop (AF_INET, &tmp_ip4_addr, str, INET_ADDRSTRLEN);
ASSERT (strcmp (netmask, str) == 0, "check netmask",
@@ -170,8 +174,8 @@ test_convert_ipv4_config_block ()
destroy_ip_block (iblock);
iblock = convert_ip4_config_block ("eth2");
ASSERT (iblock != NULL
- && iblock->next == NULL, "convert error IPv4 address",
- "should only get one address");
+ && iblock->next == NULL,
+ "convert error IPv4 address", "should only get one address");
check_ip_block (iblock, "192.168.4.121", "255.255.255.0", "0.0.0.0");
destroy_ip_block (iblock);
iblock = convert_ip4_config_block ("eth3");
@@ -182,7 +186,6 @@ test_convert_ipv4_config_block ()
ASSERT (iblock != NULL, "convert config_block",
"convert error configuration");
destroy_ip_block (iblock);
-
}
static void
@@ -209,10 +212,13 @@ test_wpa_parser ()
ASSERT (exist_ssid ("static-wep-test"), "exist_ssid",
"ssid static-wep-test is not found");
value = wpa_get_value ("static-wep-test", "key_mgmt");
- ASSERT (value && strcmp (value, "NONE") == 0, "get wpa data",
+ ASSERT (value
+ && strcmp (value, "NONE") == 0, "get wpa data",
"key_mgmt of static-wep-test should be NONE, find %s", value);
value = wpa_get_value ("static-wep-test", "wep_key0");
- ASSERT (value && strcmp (value, "\"abcde\"") == 0, "get wpa data",
+ ASSERT (value
+ && strcmp (value, "\"abcde\"") == 0,
+ "get wpa data",
"wep_key0 of static-wep-test should be abcde, find %s", value);
ASSERT (exist_ssid ("leap-example"), "get wsec",
"ssid leap-example is not found");
@@ -228,8 +234,9 @@ test_strip_string ()
result = strip_string (result, '(');
result = strip_string (result, ')');
result = strip_string (result, '"');
- ASSERT (strcmp (result, "default via 202.117.16.1") == 0,
- "strip_string", "string isn't stripped, result is: %s", result);
+ ASSERT (strcmp (result, "default via 202.117.16.1") ==
+ 0, "strip_string",
+ "string isn't stripped, result is: %s", result);
g_free (result_b);
}
@@ -265,7 +272,6 @@ test_new_connection ()
"new connection failed: %s", error
&& (*error) ? (*error)->message : "NONE");
g_object_unref (connection);
-
}
static void
@@ -280,8 +286,9 @@ test_update_connection ()
error == NULL ? "None" : (*error)->message);
ASSERT (ifnet_update_parsers_by_connection
(connection, "eth0", NULL, "net.generate",
- "wpa_supplicant.conf.generate", error), "update connection",
- "update connection failed %s", "eth0");
+ "wpa_supplicant.conf.generate", error),
+ "update connection", "update connection failed %s", "eth0");
+ g_object_unref (connection);
connection =
ifnet_update_connection_from_config_block ("0xab3ace", error);
ASSERT (connection != NULL, "get connection",
@@ -289,8 +296,9 @@ test_update_connection ()
error == NULL ? "None" : (*error)->message);
ASSERT (ifnet_update_parsers_by_connection
(connection, "0xab3ace", NULL, "net.generate",
- "wpa_supplicant.conf.generate", error), "update connection",
- "update connection failed %s", "0xab3ace");
+ "wpa_supplicant.conf.generate", error),
+ "update connection", "update connection failed %s", "0xab3ace");
+ g_object_unref (connection);
}
static void
@@ -301,14 +309,17 @@ test_add_connection ()
connection = ifnet_update_connection_from_config_block ("eth0", error);
ASSERT (ifnet_add_new_connection
- (connection, "net.generate", "wpa_supplicant.conf.generate",
- error), "add connection", "add connection failed: %s", "eth0");
+ (connection, "net.generate",
+ "wpa_supplicant.conf.generate", error),
+ "add connection", "add connection failed: %s", "eth0");
+ g_object_unref (connection);
connection =
ifnet_update_connection_from_config_block ("myxjtu2", error);
ASSERT (ifnet_add_new_connection
- (connection, "net.generate", "wpa_supplicant.conf.generate",
- error), "add connection", "add connection failed: %s",
- "myxjtu2");
+ (connection, "net.generate",
+ "wpa_supplicant.conf.generate", error),
+ "add connection", "add connection failed: %s", "myxjtu2");
+ g_object_unref (connection);
}
static void
@@ -322,16 +333,20 @@ test_delete_connection ()
"get connection failed: %s",
error == NULL ? "None" : (*error)->message);
ASSERT (ifnet_delete_connection_in_parsers
- ("eth7", "net.generate", "wpa_supplicant.conf.generate"),
+ ("eth7", "net.generate",
+ "wpa_supplicant.conf.generate"),
"delete connection", "delete connection failed: %s", "eth7");
+ g_object_unref (connection);
connection =
ifnet_update_connection_from_config_block ("qiaomuf", error);
ASSERT (connection != NULL, "get connection",
"get connection failed: %s",
error == NULL ? "None" : (*error)->message);
ASSERT (ifnet_delete_connection_in_parsers
- ("qiaomuf", "net.generate", "wpa_supplicant.conf.generate"),
+ ("qiaomuf", "net.generate",
+ "wpa_supplicant.conf.generate"),
"delete connection", "delete connection failed: %s", "qiaomuf");
+ g_object_unref (connection);
}
static void
@@ -369,10 +384,8 @@ main (void)
wpa_parser_destroy ();
ifnet_init ("net");
wpa_parser_init ("wpa_supplicant.conf");
- printf("Initialization complete\n");
-
+ printf ("Initialization complete\n");
run_all (TRUE);
-
ifnet_destroy ();
wpa_parser_destroy ();
return 0;
diff --git a/system-settings/plugins/ifupdown/Makefile.in b/system-settings/plugins/ifupdown/Makefile.in
index de327e6e0..590d62a33 100644
--- a/system-settings/plugins/ifupdown/Makefile.in
+++ b/system-settings/plugins/ifupdown/Makefile.in
@@ -258,6 +258,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -272,6 +276,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/ifupdown/interface_parser.c b/system-settings/plugins/ifupdown/interface_parser.c
index 4635db2ca..9be853a4c 100644
--- a/system-settings/plugins/ifupdown/interface_parser.c
+++ b/system-settings/plugins/ifupdown/interface_parser.c
@@ -51,6 +51,7 @@ void add_block(const char *type, const char* name)
void add_data(const char *key,const char *data)
{
if_data *ret;
+ char *idx;
// Check if there is a block where we can attach our data
if (first == NULL)
@@ -58,6 +59,11 @@ void add_data(const char *key,const char *data)
ret = (if_data*) calloc(1,sizeof(struct _if_data));
ret->key = g_strdup(key);
+ // Normalize keys. Convert '_' to '-', as ifupdown accepts both variants.
+ // When querying keys via ifparser_getkey(), use '-'.
+ while ((idx = strrchr(ret->key, '_'))) {
+ *idx = '-';
+ }
ret->data = g_strdup(data);
if (last->info == NULL)
diff --git a/system-settings/plugins/ifupdown/plugin.c b/system-settings/plugins/ifupdown/plugin.c
index 33c058e5b..2446548c4 100644
--- a/system-settings/plugins/ifupdown/plugin.c
+++ b/system-settings/plugins/ifupdown/plugin.c
@@ -362,12 +362,55 @@ SCPluginIfupdown_init (NMSystemConfigInterface *config)
while (block) {
if(!strcmp ("auto", block->type) || !strcmp ("allow-hotplug", block->type))
g_hash_table_insert (auto_ifaces, block->name, GUINT_TO_POINTER (1));
- else if (!strcmp ("iface", block->type) && strcmp ("lo", block->name)) {
+ else if (!strcmp ("iface", block->type)) {
NMIfupdownConnection *exported;
+ /* Bridge configuration */
+ if(!strncmp ("br", block->name, 2)) {
+ /* Try to find bridge ports */
+ const char *ports = ifparser_getkey (block, "bridge-ports");
+ if (ports) {
+ int i;
+ int state = 0;
+ char **port_ifaces;
+
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "found bridge ports %s for %s", ports, block->name);
+
+ port_ifaces = g_strsplit_set (ports, " \t", -1);
+ for (i = 0; i < g_strv_length (port_ifaces); i++) {
+ char *token = port_ifaces[i];
+ /* Skip crazy stuff like regex or all */
+ if (!strcmp ("all", token)) {
+ continue;
+ }
+ /* Small SM to skip everything inside regex */
+ if (!strcmp ("regex", token)) {
+ state++;
+ continue;
+ }
+ if (!strcmp ("noregex", token)) {
+ state--;
+ continue;
+ }
+ if (state == 0 && strlen (token) > 0) {
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding bridge port %s to well_known_interfaces", token);
+ g_hash_table_insert (priv->well_known_interfaces, g_strdup (token), "known");
+ }
+ }
+ g_strfreev (port_ifaces);
+ }
+ goto next;
+ }
+
+ /* Skip loopback configuration */
+ if(!strcmp ("lo", block->name)) {
+ goto next;
+ }
+
/* Remove any connection for this block that was previously found */
exported = g_hash_table_lookup (priv->iface_connections, block->name);
if (exported) {
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "deleting %s from iface_connections", block->name);
nm_settings_connection_interface_delete (NM_SETTINGS_CONNECTION_INTERFACE (exported),
ignore_cb,
NULL);
@@ -377,12 +420,16 @@ SCPluginIfupdown_init (NMSystemConfigInterface *config)
/* add the new connection */
exported = nm_ifupdown_connection_new (block);
if (exported) {
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding %s to iface_connections", block->name);
g_hash_table_insert (priv->iface_connections, block->name, exported);
- g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
}
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding iface %s to well_known_interfaces", block->name);
+ g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
} else if (!strcmp ("mapping", block->type)) {
g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding mapping %s to well_known_interfaces", block->name);
}
+ next:
block = block->next;
}
diff --git a/system-settings/plugins/ifupdown/tests/Makefile.in b/system-settings/plugins/ifupdown/tests/Makefile.in
index cb08914ec..b6db0bdcd 100644
--- a/system-settings/plugins/ifupdown/tests/Makefile.in
+++ b/system-settings/plugins/ifupdown/tests/Makefile.in
@@ -184,6 +184,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -198,6 +202,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/keyfile/Makefile.am b/system-settings/plugins/keyfile/Makefile.am
index 1c1fd4a7d..128775ee9 100644
--- a/system-settings/plugins/keyfile/Makefile.am
+++ b/system-settings/plugins/keyfile/Makefile.am
@@ -16,6 +16,8 @@ libkeyfile_io_la_SOURCES = \
writer.c \
writer.h \
errors.c \
+ utils.c \
+ utils.h \
common.h
libkeyfile_io_la_CPPFLAGS = \
@@ -49,6 +51,8 @@ libnm_settings_plugin_keyfile_la_LIBADD = \
$(DBUS_LIBS) \
$(GIO_LIBS)
+keyfiledir=$(sysconfdir)/NetworkManager/system-connections
+
install-data-hook:
$(mkinstalldirs) -m 0755 $(DESTDIR)$(keyfiledir)
diff --git a/system-settings/plugins/keyfile/Makefile.in b/system-settings/plugins/keyfile/Makefile.in
index 5d731c176..96172ca35 100644
--- a/system-settings/plugins/keyfile/Makefile.in
+++ b/system-settings/plugins/keyfile/Makefile.in
@@ -75,7 +75,8 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libkeyfile_io_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libkeyfile_io_la_OBJECTS = libkeyfile_io_la-reader.lo \
- libkeyfile_io_la-writer.lo libkeyfile_io_la-errors.lo
+ libkeyfile_io_la-writer.lo libkeyfile_io_la-errors.lo \
+ libkeyfile_io_la-utils.lo
libkeyfile_io_la_OBJECTS = $(am_libkeyfile_io_la_OBJECTS)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -257,6 +258,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -271,6 +276,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -361,6 +367,8 @@ libkeyfile_io_la_SOURCES = \
writer.c \
writer.h \
errors.c \
+ utils.c \
+ utils.h \
common.h
libkeyfile_io_la_CPPFLAGS = \
@@ -393,6 +401,7 @@ libnm_settings_plugin_keyfile_la_LIBADD = \
$(DBUS_LIBS) \
$(GIO_LIBS)
+keyfiledir = $(sysconfdir)/NetworkManager/system-connections
all: all-recursive
.SUFFIXES:
@@ -480,6 +489,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-errors.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-reader.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libkeyfile_io_la-writer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libnm_settings_plugin_keyfile_la-plugin.Plo@am__quote@
@@ -535,6 +545,14 @@ libkeyfile_io_la-errors.lo: errors.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-errors.lo `test -f 'errors.c' || echo '$(srcdir)/'`errors.c
+libkeyfile_io_la-utils.lo: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libkeyfile_io_la-utils.lo -MD -MP -MF $(DEPDIR)/libkeyfile_io_la-utils.Tpo -c -o libkeyfile_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libkeyfile_io_la-utils.Tpo $(DEPDIR)/libkeyfile_io_la-utils.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='libkeyfile_io_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkeyfile_io_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libkeyfile_io_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo: nm-keyfile-connection.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libnm_settings_plugin_keyfile_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo -MD -MP -MF $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Tpo -c -o libnm_settings_plugin_keyfile_la-nm-keyfile-connection.lo `test -f 'nm-keyfile-connection.c' || echo '$(srcdir)/'`nm-keyfile-connection.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Tpo $(DEPDIR)/libnm_settings_plugin_keyfile_la-nm-keyfile-connection.Plo
diff --git a/system-settings/plugins/keyfile/common.h b/system-settings/plugins/keyfile/common.h
index 7d94a7053..6c8f9cebb 100644
--- a/system-settings/plugins/keyfile/common.h
+++ b/system-settings/plugins/keyfile/common.h
@@ -23,6 +23,9 @@
#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/system-settings/plugins/keyfile/plugin.c b/system-settings/plugins/keyfile/plugin.c
index 27ae0a06f..da6456d98 100644
--- a/system-settings/plugins/keyfile/plugin.c
+++ b/system-settings/plugins/keyfile/plugin.c
@@ -23,6 +23,7 @@
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
+#include <netinet/ether.h>
#include <string.h>
#include <gmodule.h>
@@ -39,6 +40,7 @@
#include "nm-keyfile-connection.h"
#include "writer.h"
#include "common.h"
+#include "utils.h"
#define CONF_FILE SYSCONFDIR "/NetworkManager/NetworkManager.conf"
#define OLD_CONF_FILE SYSCONFDIR "/NetworkManager/nm-system-settings.conf"
@@ -89,6 +91,9 @@ read_connections (NMSystemConfigInterface *config)
NMKeyfileConnection *connection;
char *full_path;
+ if (utils_should_ignore_file (item))
+ continue;
+
full_path = g_build_filename (KEYFILE_DIR, item, NULL);
PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "parsing %s ... ", item);
connection = nm_keyfile_connection_new (full_path, &error);
@@ -192,6 +197,11 @@ dir_changed (GFileMonitor *monitor,
GError *error = NULL;
name = g_file_get_path (file);
+ if (utils_should_ignore_file (name)) {
+ g_free (name);
+ return;
+ }
+
connection = g_hash_table_lookup (priv->hash, name);
switch (event_type) {
@@ -203,15 +213,18 @@ dir_changed (GFileMonitor *monitor,
break;
case G_FILE_MONITOR_EVENT_CREATED:
case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT:
- PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
-
if (connection) {
/* Update */
NMKeyfileConnection *tmp;
tmp = nm_keyfile_connection_new (name, &error);
if (tmp) {
- update_connection_settings (connection, tmp);
+ if (!nm_connection_compare (NM_CONNECTION (connection),
+ NM_CONNECTION (tmp),
+ NM_SETTING_COMPARE_FLAG_EXACT)) {
+ PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
+ update_connection_settings (connection, tmp);
+ }
g_object_unref (tmp);
} else {
/* Error; remove the connection */
@@ -221,6 +234,8 @@ dir_changed (GFileMonitor *monitor,
remove_connection (SC_PLUGIN_KEYFILE (config), connection, name);
}
} else {
+ PLUGIN_PRINT (KEYFILE_PLUGIN_NAME, "updating %s", name);
+
/* New */
connection = nm_keyfile_connection_new (name, &error);
if (connection) {
@@ -404,8 +419,23 @@ get_unmanaged_specs (NMSystemConfigInterface *config)
udis = g_strsplit (str, ";", -1);
g_free (str);
- for (i = 0; udis[i] != NULL; i++)
- specs = g_slist_append (specs, udis[i]);
+ for (i = 0; udis[i] != NULL; i++) {
+ /* Verify unmanaged specification and add it to the list */
+ if (strlen (udis[i]) > 4 && !strncmp (udis[i], "mac:", 4) && ether_aton (udis[i] + 4)) {
+ char *p = udis[i];
+
+ /* To accept uppercase MACs in configuration file, we have to convert values to lowercase here.
+ * Unmanaged MACs in specs are always in lowercase. */
+ while (*p) {
+ *p = g_ascii_tolower (*p);
+ p++;
+ }
+ specs = g_slist_append (specs, udis[i]);
+ } else {
+ g_warning ("Error in file '%s': invalid unmanaged-devices entry: '%s'", priv->conf_file, udis[i]);
+ g_free (udis[i]);
+ }
+ }
g_free (udis); /* Yes, g_free, not g_strfreev because we need the strings in the list */
}
diff --git a/system-settings/plugins/keyfile/reader.c b/system-settings/plugins/keyfile/reader.c
index 841315d9c..8d52afe6c 100644
--- a/system-settings/plugins/keyfile/reader.c
+++ b/system-settings/plugins/keyfile/reader.c
@@ -33,10 +33,7 @@
#include <nm-setting-wired.h>
#include <nm-setting-wireless.h>
#include <nm-setting-bluetooth.h>
-#include <nm-setting-serial.h>
-#include <nm-setting-gsm.h>
-#include <nm-setting-cdma.h>
-#include <nm-setting-ppp.h>
+#include <nm-setting-8021x.h>
#include <arpa/inet.h>
#include <netinet/ether.h>
#include <string.h>
@@ -169,7 +166,7 @@ next:
}
static void
-ip4_addr_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip4_addr_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
GPtrArray *addresses;
const char *setting_name = nm_setting_get_name (setting);
@@ -275,7 +272,7 @@ next:
}
static void
-ip4_route_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip4_route_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
GPtrArray *routes;
const char *setting_name = nm_setting_get_name (setting);
@@ -289,7 +286,7 @@ ip4_route_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
}
static void
-ip4_dns_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip4_dns_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
const char *setting_name = nm_setting_get_name (setting);
GArray *array = NULL;
@@ -462,7 +459,7 @@ next:
}
static void
-ip6_addr_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip6_addr_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
GPtrArray *addresses;
const char *setting_name = nm_setting_get_name (setting);
@@ -591,7 +588,7 @@ next:
}
static void
-ip6_route_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip6_route_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
GPtrArray *routes;
const char *setting_name = nm_setting_get_name (setting);
@@ -612,7 +609,7 @@ free_one_ip6_dns (gpointer data, gpointer user_data)
}
static void
-ip6_dns_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+ip6_dns_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
const char *setting_name = nm_setting_get_name (setting);
GPtrArray *array = NULL;
@@ -649,7 +646,7 @@ ip6_dns_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
}
static void
-mac_address_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+mac_address_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
{
const char *setting_name = nm_setting_get_name (setting);
struct ether_addr *eth;
@@ -732,10 +729,11 @@ read_hash_of_string (GKeyFile *file, NMSetting *setting, const char *key)
g_strfreev (keys);
}
-static void
-ssid_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
+static GByteArray *
+get_uchar_array (GKeyFile *keyfile,
+ const char *setting_name,
+ const char *key)
{
- const char *setting_name = nm_setting_get_name (setting);
GByteArray *array = NULL;
char *p, *tmp_string;
gint *tmp_list;
@@ -764,42 +762,135 @@ ssid_parser (NMSetting *setting, const char *key, GKeyFile *keyfile)
if (new_format) {
array = g_byte_array_sized_new (strlen (tmp_string));
g_byte_array_append (array, (guint8 *) tmp_string, strlen (tmp_string));
- goto done;
}
+ g_free (tmp_string);
}
- g_free (tmp_string);
- /* Old format; list of ints */
- tmp_list = g_key_file_get_integer_list (keyfile, setting_name, key, &length, NULL);
- array = g_byte_array_sized_new (length);
- for (i = 0; i < length; i++) {
- int val = tmp_list[i];
- unsigned char v = (unsigned char) (val & 0xFF);
+ if (!array) {
+ /* Old format; list of ints */
+ tmp_list = g_key_file_get_integer_list (keyfile, setting_name, key, &length, NULL);
+ array = g_byte_array_sized_new (length);
+ for (i = 0; i < length; i++) {
+ int val = tmp_list[i];
+ unsigned char v = (unsigned char) (val & 0xFF);
- if (val < 0 || val > 255) {
- g_warning ("%s: %s / %s ignoring invalid byte element '%d' (not "
- " between 0 and 255 inclusive)", __func__, setting_name,
- key, val);
- } else
- g_byte_array_append (array, (const unsigned char *) &v, sizeof (v));
+ if (val < 0 || val > 255) {
+ g_warning ("%s: %s / %s ignoring invalid byte element '%d' (not "
+ " between 0 and 255 inclusive)", __func__, setting_name,
+ key, val);
+ } else
+ g_byte_array_append (array, (const unsigned char *) &v, sizeof (v));
+ }
+ g_free (tmp_list);
}
- g_free (tmp_list);
-done:
- if (array->len)
+ if (array->len == 0) {
+ g_byte_array_free (array, TRUE);
+ array = NULL;
+ }
+ return array;
+}
+
+static void
+ssid_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
+{
+ const char *setting_name = nm_setting_get_name (setting);
+ GByteArray *array;
+
+ array = get_uchar_array (keyfile, setting_name, key);
+ if (array) {
g_object_set (setting, key, array, NULL);
- else {
+ g_byte_array_free (array, TRUE);
+ } else {
+ g_warning ("%s: ignoring invalid SSID for %s / %s",
+ __func__, setting_name, key);
+ }
+}
+
+static char *
+get_cert_path (const char *keyfile_path, GByteArray *cert_path)
+{
+ const char *base;
+ char *p = NULL, *path, *dirname, *tmp;
+
+ g_return_val_if_fail (keyfile_path != NULL, NULL);
+ g_return_val_if_fail (cert_path != NULL, NULL);
+
+ base = path = g_malloc0 (cert_path->len + 1);
+ memcpy (path, cert_path->data, cert_path->len);
+
+ if (path[0] == '/')
+ return path;
+
+ p = strrchr (path, '/');
+ if (p)
+ base = p + 1;
+
+ dirname = g_path_get_dirname (keyfile_path);
+ tmp = g_build_path ("/", dirname, base, NULL);
+ g_free (dirname);
+ g_free (path);
+ return tmp;
+}
+
+#define SCHEME_PATH "file://"
+
+static void
+cert_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
+{
+ const char *setting_name = nm_setting_get_name (setting);
+ GByteArray *array;
+ gboolean success = FALSE;
+
+ array = get_uchar_array (keyfile, setting_name, key);
+ if (array) {
+ /* Value could be either:
+ * 1) the raw key/cert data as a blob
+ * 2) a path scheme (ie, starts with "file://")
+ * 3) a plain path
+ */
+ if ( (array->len > strlen (SCHEME_PATH))
+ && g_str_has_prefix ((const char *) array->data, SCHEME_PATH)
+ && (array->data[array->len - 1] == '\0')) {
+ /* It's the PATH scheme, can just set plain data */
+ g_object_set (setting, key, array, NULL);
+ success = TRUE;
+ } else if ( (array->len < 500)
+ && g_utf8_validate ((const char *) array->data, array->len, NULL)) {
+ GByteArray *val;
+ char *path;
+
+ path = get_cert_path (keyfile_path, array);
+ if (g_file_test (path, G_FILE_TEST_EXISTS)) {
+ /* 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 *) "\0", 1);
+ g_object_set (setting, key, val, NULL);
+ g_byte_array_free (val, TRUE);
+ success = TRUE;
+ }
+ g_free (path);
+ }
+
+ if (!success) {
+ /* Assume it's a simple blob value of the certificate or private key's data */
+ g_object_set (setting, key, array, NULL);
+ }
+
+ g_byte_array_free (array, TRUE);
+ } else {
g_warning ("%s: ignoring invalid SSID for %s / %s",
__func__, setting_name, key);
}
- g_byte_array_free (array, TRUE);
}
typedef struct {
const char *setting_name;
const char *key;
gboolean check_for_key;
- void (*parser) (NMSetting *setting, const char *key, GKeyFile *keyfile);
+ void (*parser) (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path);
} KeyParser;
/* A table of keys that require further parsing/conversion because they are
@@ -861,9 +952,38 @@ static KeyParser key_parsers[] = {
NM_SETTING_WIRELESS_SSID,
TRUE,
ssid_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_CA_CERT,
+ TRUE,
+ cert_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_CLIENT_CERT,
+ TRUE,
+ cert_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PRIVATE_KEY,
+ TRUE,
+ cert_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_CA_CERT,
+ TRUE,
+ cert_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_CLIENT_CERT,
+ TRUE,
+ cert_parser },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
+ TRUE,
+ cert_parser },
{ NULL, NULL, FALSE }
};
+typedef struct {
+ GKeyFile *keyfile;
+ const char *keyfile_path;
+} ReadInfo;
+
static void
read_one_setting_value (NMSetting *setting,
const char *key,
@@ -871,7 +991,7 @@ read_one_setting_value (NMSetting *setting,
GParamFlags flags,
gpointer user_data)
{
- GKeyFile *file = user_data;
+ ReadInfo *info = user_data;
const char *setting_name;
GType type;
GError *err = NULL;
@@ -911,7 +1031,7 @@ read_one_setting_value (NMSetting *setting,
* like IP addresses and routes where more than one value is actually
* encoded by the setting property, this won't be true.
*/
- if (check_for_key && !g_key_file_has_key (file, setting_name, key, &err)) {
+ if (check_for_key && !g_key_file_has_key (info->keyfile, setting_name, key, &err)) {
/* Key doesn't exist or an error ocurred, thus nothing to do. */
if (err) {
g_warning ("Error loading setting '%s' value: %s", setting_name, err->message);
@@ -924,7 +1044,7 @@ read_one_setting_value (NMSetting *setting,
* parsers below.
*/
if (parser && parser->setting_name) {
- (*parser->parser) (setting, key, file);
+ (*parser->parser) (setting, key, info->keyfile, info->keyfile_path);
return;
}
@@ -933,30 +1053,30 @@ read_one_setting_value (NMSetting *setting,
if (type == G_TYPE_STRING) {
char *str_val;
- str_val = g_key_file_get_string (file, setting_name, key, NULL);
+ str_val = g_key_file_get_string (info->keyfile, setting_name, key, NULL);
g_object_set (setting, key, str_val, NULL);
g_free (str_val);
} else if (type == G_TYPE_UINT) {
int int_val;
- int_val = g_key_file_get_integer (file, setting_name, key, NULL);
+ int_val = g_key_file_get_integer (info->keyfile, setting_name, key, NULL);
if (int_val < 0)
g_warning ("Casting negative value (%i) to uint", int_val);
g_object_set (setting, key, int_val, NULL);
} else if (type == G_TYPE_INT) {
int int_val;
- int_val = g_key_file_get_integer (file, setting_name, key, NULL);
+ int_val = g_key_file_get_integer (info->keyfile, setting_name, key, NULL);
g_object_set (setting, key, int_val, NULL);
} else if (type == G_TYPE_BOOLEAN) {
gboolean bool_val;
- bool_val = g_key_file_get_boolean (file, setting_name, key, NULL);
+ bool_val = g_key_file_get_boolean (info->keyfile, setting_name, key, NULL);
g_object_set (setting, key, bool_val, NULL);
} else if (type == G_TYPE_CHAR) {
int int_val;
- int_val = g_key_file_get_integer (file, setting_name, key, NULL);
+ int_val = g_key_file_get_integer (info->keyfile, setting_name, key, NULL);
if (int_val < G_MININT8 || int_val > G_MAXINT8)
g_warning ("Casting value (%i) to char", int_val);
@@ -965,7 +1085,7 @@ read_one_setting_value (NMSetting *setting,
char *tmp_str;
guint64 uint_val;
- tmp_str = g_key_file_get_value (file, setting_name, key, NULL);
+ tmp_str = g_key_file_get_value (info->keyfile, setting_name, key, NULL);
uint_val = g_ascii_strtoull (tmp_str, NULL, 10);
g_free (tmp_str);
g_object_set (setting, key, uint_val, NULL);
@@ -975,7 +1095,7 @@ read_one_setting_value (NMSetting *setting,
gsize length;
int i;
- tmp = g_key_file_get_integer_list (file, setting_name, key, &length, NULL);
+ tmp = g_key_file_get_integer_list (info->keyfile, setting_name, key, &length, NULL);
array = g_byte_array_sized_new (length);
for (i = 0; i < length; i++) {
@@ -999,7 +1119,7 @@ read_one_setting_value (NMSetting *setting,
int i;
GSList *list = NULL;
- sa = g_key_file_get_string_list (file, setting_name, key, &length, NULL);
+ sa = g_key_file_get_string_list (info->keyfile, setting_name, key, &length, NULL);
for (i = 0; i < length; i++)
list = g_slist_prepend (list, sa[i]);
@@ -1009,9 +1129,9 @@ read_one_setting_value (NMSetting *setting,
g_slist_free (list);
g_strfreev (sa);
} else if (type == DBUS_TYPE_G_MAP_OF_STRING) {
- read_hash_of_string (file, setting, key);
+ read_hash_of_string (info->keyfile, setting, key);
} else if (type == DBUS_TYPE_G_UINT_ARRAY) {
- if (!read_array_of_uint (file, setting, key)) {
+ if (!read_array_of_uint (info->keyfile, setting, key)) {
g_warning ("Unhandled setting property type (read): '%s/%s' : '%s'",
setting_name, key, G_VALUE_TYPE_NAME (value));
}
@@ -1022,15 +1142,16 @@ read_one_setting_value (NMSetting *setting,
}
static NMSetting *
-read_setting (GKeyFile *file, const char *name)
+read_setting (GKeyFile *file, const char *keyfile_path, const char *setting_name)
{
NMSetting *setting;
+ ReadInfo info = { file, keyfile_path };
- setting = nm_connection_create_setting (name);
+ setting = nm_connection_create_setting (setting_name);
if (setting)
- nm_setting_enumerate_values (setting, read_one_setting_value, (gpointer) file);
+ nm_setting_enumerate_values (setting, read_one_setting_value, &info);
else
- g_warning ("Invalid setting name '%s'", name);
+ g_warning ("Invalid setting name '%s'", setting_name);
return setting;
}
@@ -1061,13 +1182,12 @@ connection_from_file (const char *filename, GError **error)
gboolean bad_owner, bad_permissions;
NMConnection *connection = NULL;
NMSettingConnection *s_con;
- NMSettingBluetooth *s_bt;
NMSetting *setting;
gchar **groups;
gsize length;
int i;
gboolean vpn_secrets = FALSE;
- const char *ctype, *tmp;
+ const char *ctype;
GError *verify_error = NULL;
if (stat (filename, &statbuf) != 0 || !S_ISREG (statbuf.st_mode)) {
@@ -1100,7 +1220,7 @@ connection_from_file (const char *filename, GError **error)
continue;
}
- setting = read_setting (key_file, groups[i]);
+ setting = read_setting (key_file, filename, groups[i]);
if (setting)
nm_connection_add_setting (connection, setting);
}
@@ -1114,38 +1234,11 @@ connection_from_file (const char *filename, GError **error)
ctype = nm_setting_connection_get_connection_type (s_con);
setting = nm_connection_get_setting_by_name (connection, ctype);
if (ctype) {
- gboolean add_serial = FALSE;
- NMSetting *new_setting = NULL;
-
if (!setting && !strcmp (ctype, NM_SETTING_WIRED_SETTING_NAME))
- new_setting = nm_setting_wired_new ();
- else if (!strcmp (ctype, NM_SETTING_BLUETOOTH_SETTING_NAME)) {
- s_bt = (NMSettingBluetooth *) nm_connection_get_setting (connection, NM_TYPE_SETTING_BLUETOOTH);
- if (s_bt) {
- tmp = nm_setting_bluetooth_get_connection_type (s_bt);
- if (tmp && !strcmp (tmp, NM_SETTING_BLUETOOTH_TYPE_DUN))
- add_serial = TRUE;
- }
- } else if (!strcmp (ctype, NM_SETTING_GSM_SETTING_NAME))
- add_serial = TRUE;
- else if (!strcmp (ctype, NM_SETTING_CDMA_SETTING_NAME))
- add_serial = TRUE;
-
- /* Bluetooth DUN, GSM, and CDMA connections require a serial setting */
- if (add_serial && !nm_connection_get_setting (connection, NM_TYPE_SETTING_SERIAL))
- new_setting = nm_setting_serial_new ();
-
- if (new_setting)
- nm_connection_add_setting (connection, new_setting);
+ nm_connection_add_setting (connection, nm_setting_wired_new ());
}
}
- /* Serial connections require a PPP setting too */
- if (nm_connection_get_setting (connection, NM_TYPE_SETTING_SERIAL)) {
- if (!nm_connection_get_setting (connection, NM_TYPE_SETTING_PPP))
- nm_connection_add_setting (connection, nm_setting_ppp_new ());
- }
-
/* Handle vpn secrets after the 'vpn' setting was read */
if (vpn_secrets) {
NMSettingVPN *s_vpn;
diff --git a/system-settings/plugins/keyfile/tests/Makefile.in b/system-settings/plugins/keyfile/tests/Makefile.in
index 6311cae53..8a80502cc 100644
--- a/system-settings/plugins/keyfile/tests/Makefile.in
+++ b/system-settings/plugins/keyfile/tests/Makefile.in
@@ -221,6 +221,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -235,6 +239,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/system-settings/plugins/keyfile/tests/keyfiles/Makefile.am b/system-settings/plugins/keyfile/tests/keyfiles/Makefile.am
index d6ee01834..0ce032096 100644
--- a/system-settings/plugins/keyfile/tests/keyfiles/Makefile.am
+++ b/system-settings/plugins/keyfile/tests/keyfiles/Makefile.am
@@ -1,4 +1,4 @@
-EXTRA_DIST = \
+KEYFILES = \
Test_Wired_Connection \
Test_GSM_Connection \
Test_Wireless_Connection \
@@ -6,10 +6,18 @@ EXTRA_DIST = \
Test_Wired_Connection_IP6 \
ATT_Data_Connect_BT \
ATT_Data_Connect_Plain \
- Test_String_SSID
+ Test_String_SSID \
+ Test_Wired_TLS_Old \
+ Test_Wired_TLS_New
+
+CERTS = \
+ test-ca-cert.pem \
+ test-key-and-cert.pem
+
+EXTRA_DIST = $(KEYFILES) $(CERTS)
check-local:
- @for f in $(EXTRA_DIST); do \
+ @for f in $(KEYFILES); do \
chmod 0600 $(abs_srcdir)/$$f; \
done
diff --git a/system-settings/plugins/keyfile/tests/keyfiles/Makefile.in b/system-settings/plugins/keyfile/tests/keyfiles/Makefile.in
index 047946782..9f821d20a 100644
--- a/system-settings/plugins/keyfile/tests/keyfiles/Makefile.in
+++ b/system-settings/plugins/keyfile/tests/keyfiles/Makefile.in
@@ -149,6 +149,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -163,6 +167,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -238,7 +243,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-EXTRA_DIST = \
+KEYFILES = \
Test_Wired_Connection \
Test_GSM_Connection \
Test_Wireless_Connection \
@@ -246,8 +251,15 @@ EXTRA_DIST = \
Test_Wired_Connection_IP6 \
ATT_Data_Connect_BT \
ATT_Data_Connect_Plain \
- Test_String_SSID
+ Test_String_SSID \
+ Test_Wired_TLS_Old \
+ Test_Wired_TLS_New
+CERTS = \
+ test-ca-cert.pem \
+ test-key-and-cert.pem
+
+EXTRA_DIST = $(KEYFILES) $(CERTS)
all: all-am
.SUFFIXES:
@@ -436,7 +448,7 @@ uninstall-am:
check-local:
- @for f in $(EXTRA_DIST); do \
+ @for f in $(KEYFILES); do \
chmod 0600 $(abs_srcdir)/$$f; \
done
diff --git a/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_New b/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_New
new file mode 100644
index 000000000..4cd866862
--- /dev/null
+++ b/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_New
@@ -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=test-ca-cert.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/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Old b/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Old
new file mode 100644
index 000000000..61afdd91c
--- /dev/null
+++ b/system-settings/plugins/keyfile/tests/keyfiles/Test_Wired_TLS_Old
@@ -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=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;67;65;47;101;97;112;116;101;115;116;95;99;97;95;99;101;114;116;46;112;101;109;0;
+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/system-settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem b/system-settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem
new file mode 100644
index 000000000..ef1be20d2
--- /dev/null
+++ b/system-settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem
@@ -0,0 +1,27 @@
+-----BEGIN CERTIFICATE-----
+MIIEjzCCA3egAwIBAgIJAOvnZPt59yIZMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYD
+VQQGEwJVUzESMBAGA1UECBMJQmVya3NoaXJlMRAwDgYDVQQHEwdOZXdidXJ5MRcw
+FQYDVQQKEw5NeSBDb21wYW55IEx0ZDEQMA4GA1UECxMHVGVzdGluZzENMAsGA1UE
+AxMEdGVzdDEcMBoGCSqGSIb3DQEJARYNdGVzdEB0ZXN0LmNvbTAeFw0wOTAzMTAx
+NTEyMTRaFw0xOTAzMDgxNTEyMTRaMIGLMQswCQYDVQQGEwJVUzESMBAGA1UECBMJ
+QmVya3NoaXJlMRAwDgYDVQQHEwdOZXdidXJ5MRcwFQYDVQQKEw5NeSBDb21wYW55
+IEx0ZDEQMA4GA1UECxMHVGVzdGluZzENMAsGA1UEAxMEdGVzdDEcMBoGCSqGSIb3
+DQEJARYNdGVzdEB0ZXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAKot9j+/+CX1/gZLgJHIXCRgCItKLGnf7qGbgqB9T2ACBqR0jllKWwDKrcWU
+xjXNIc+GF9Wnv+lX6G0Okn4Zt3/uRNobL+2b/yOF7M3Td3/9W873zdkQQX930YZc
+Rr8uxdRPP5bxiCgtcw632y21sSEbG9mjccAUnV/0jdvfmMNj0i8gN6E0fMBiJ9S3
+FkxX/KFvt9JWE9CtoyL7ki7UIDq+6vj7Gd5N0B3dOa1y+rRHZzKlJPcSXQSEYUS4
+HmKDwiKSVahft8c4tDn7KPi0vex91hlgZVd3usL2E/Vq7o5D9FAZ5kZY0AdFXwdm
+J4lO4Mj7ac7GE4vNERNcXVIX59sCAwEAAaOB8zCB8DAdBgNVHQ4EFgQUuDU3Mr7P
+T3n1e3Sy8hBauoDFahAwgcAGA1UdIwSBuDCBtYAUuDU3Mr7PT3n1e3Sy8hBauoDF
+ahChgZGkgY4wgYsxCzAJBgNVBAYTAlVTMRIwEAYDVQQIEwlCZXJrc2hpcmUxEDAO
+BgNVBAcTB05ld2J1cnkxFzAVBgNVBAoTDk15IENvbXBhbnkgTHRkMRAwDgYDVQQL
+EwdUZXN0aW5nMQ0wCwYDVQQDEwR0ZXN0MRwwGgYJKoZIhvcNAQkBFg10ZXN0QHRl
+c3QuY29tggkA6+dk+3n3IhkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOC
+AQEAVRG4aALIvCXCiKfe7K+iJxjBVRDFPEf7JWA9LGgbFOn6pNvbxonrR+0BETdc
+JV1ET4ct2xsE7QNFIkp9GKRC+6J32zCo8qtLCD5+v436r8TUG2/t2JRMkb9I2XVT
+p7RJoot6M0Ltf8KNQUPYh756xmKZ4USfQUwc58MOSDGY8VWEXJOYij9Pf0e0c52t
+qiCEjXH7uXiS8Pgq9TYm7AkWSOrglYhSa83x0f8mtT8Q15nBESIHZ6o8FAS2bBgn
+B0BkrKRjtBUkuJG3vTox+bYINh2Gxi1JZHWSV1tN5z3hd4VFcKqanW5OgQwToBqp
+3nniskIjbH0xjgZf/nVMyLnjxg==
+-----END CERTIFICATE-----
diff --git a/system-settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem b/system-settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem
new file mode 100644
index 000000000..dec9aa1b8
--- /dev/null
+++ b/system-settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem
@@ -0,0 +1,118 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,4DE0615F23D82107
+
+QPNCO5Dobvz9dDhN32KkZRoEifW+HDm2PCbRQhKDiscGwB6LgypvVjHNsZiFKwzz
+L4R51UqgQeJx7GSGJqE626e9z9J+UNBhop02aOO2X0eSPdvBzr/uJ6Umiyr1xqD7
+zWf7u9l5kXElDJRhK+87GMBewp4Ie9NeXDjhF8hzC5Kiulen4AH3AYnfH3S7DimU
+h8GFMg8inrudrTbcjBhCdPeHG2jCygOxw3InRFz7uaN6LIhOaPQvmvpP4Cc1WRnW
+ZPq9o+eU3fPWPD5t+Op/VzYLvKwgBy/yK1rQXUm6ZMO7MhhRJ94ZCsJv+nVWpJlv
+QyBlxDKxwfkfYbDELdnnDQdHdMbKatLqa0KhSkgpp8LywBtanPz731tyT0r7b3na
+eLdra59lRU7ZQLPEdS3lPZd2O/KQvWf8wbg7MjXS9LxQ7R5HOPu6DNJlwXVZBmmo
+cAfu2q8ubU2IePvWLD1GOrBi6hE9TiGvFJkw+wBK+t72sz3njv9Xm/zlxruaEk5m
+RW/kybU3FP4PtjriBbskz3/VZaaxuRN7OoOYTkmyHmG1ADgcRUV6fea19qqsBlN8
+xb+SRtoH28oT/JVWU5neE2dbNzk5LeVO+w70NNdR5s5xqkBhbGGaJxvXwNP4ltFr
+T06SMh8znOLKwWB00aRtwfU7jOwR3mOleQO4ugIHmau3zp1TqzAHW8XtpuV7qVeI
+ESZOZuf0vW43BtNzgLXt1+r+bmsMsRwhnyomL9M0TUyyBdVYY9GkzTG9pOESheRo
+RSvAZ8qKGUliTpgBcbt2v1+NqkszcHa6FxuvS8YU4uo5/GqsgTxHTNIB232hIrrZ
+EIm6QL9TC5oFXMjy6UNqoCm5Nb8DBJ6aErt7pt7aoktqUW3O3QIzQT3IbZ4nAcTt
+lVF4d7j29I9t7bcC8GOVU1neilguZUss4ghJg9x4zI5UZdR7hZ8fbFT47TyxB+j5
+r0YdmjbjVTaSyaN2JGh1wvb4TzawGNVx/U2EJE16HigOtPfsfQRJ3x+FROKBdVa4
+aIFYXkRBeIPxX6n9pcw0lBCsnXo6/5iTjQSk2VqO3rHO/wyWiEjNczhL33dY2A8W
+GG5ECMO5SqXZHQQzpABqK94dxe3UC8aEESO5NhEqDuV7qQGol0qPKrUA3wb0jb2e
+DrejJ9HS2m1SUDmjpvvmEGy6GN7CRibbKt5rNZdJNNvWArOF5d0F6wkixQLl73oE
+lq5gLQQk9n7ClleKLhlQpBCorxilBbzmSUekkJLi0eaZiBBFWBX9udqnUZloXTgO
+8qwuO8K/GPR9Jy1/UH2Vh1H+wivaqKTVgEb0NotzgzECgTEFKJafl7rUNs1OZRZ3
+VBjevi6+iDpxVFgF71kXfdUC4ph0E1XDl0ja2rrKQGivMkUhWJ57+4EV5+hBkAnt
+G0RV45NwHXLrK2bd8F9PlRk2XHW6mIcFRXsW1DjeBhk/sQjvlO9R01GRSgcXtekJ
+tmX17FWrMrzXHpvy1IC3fk4RVnSjpzQ8O+17YE8/la9wVaeZZzHyYFmMT7VXjIhW
+QozJQ0vJ2jxJRh5GYn3tpJzdaeRfvTBik0pChNdUTnWP+BJ35xoCTs8iwJbmgVZ1
+-----END RSA PRIVATE KEY-----
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 1 (0x1)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: C=US, ST=Berkshire, L=Newbury, O=My Company Ltd, OU=Testing, CN=test/emailAddress=test@test.com
+ Validity
+ Not Before: Mar 10 15:13:16 2009 GMT
+ Not After : Mar 8 15:13:16 2019 GMT
+ Subject: C=US, ST=Berkshire, O=My Company Ltd, OU=Testing, CN=test1/emailAddress=test@test.com
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (2048 bit)
+ Modulus (2048 bit):
+ 00:cd:34:b1:2e:b0:04:c6:f4:2b:a2:c0:a0:39:7a:
+ 82:ed:96:c4:f7:19:83:91:5c:b4:e7:9c:de:ec:48:
+ ec:2d:e4:51:08:26:42:ac:d3:98:26:7a:72:f7:49:
+ c2:9e:66:05:c6:47:29:fe:3b:ac:6b:af:6f:5e:a8:
+ 03:5a:73:33:ba:19:03:00:35:f5:00:bc:a8:be:14:
+ ce:46:69:e3:6d:ed:34:37:85:55:87:62:b3:b7:c9:
+ c0:cc:9a:aa:61:05:5b:cd:a2:17:42:d3:e5:6f:1c:
+ 60:8d:c2:15:41:46:f8:12:54:d0:38:57:e1:fd:8d:
+ 44:c8:fb:56:b3:b9:6c:e9:f8:9e:21:11:57:1b:8b:
+ f9:cf:e3:17:e7:d8:fd:ac:d1:01:c6:92:30:f3:2d:
+ c9:d6:c1:f0:3d:fd:ca:30:dd:75:74:e7:d1:6b:75:
+ d8:c5:4d:43:61:fe:f6:ad:7e:4c:63:7c:03:17:a2:
+ 06:8f:d0:8b:69:d3:7a:07:0f:0b:a2:cf:0c:70:38:
+ ba:cc:55:35:60:84:58:d8:d2:be:1f:ef:76:a9:ba:
+ ae:6a:dc:08:97:80:de:42:00:b7:d4:ce:9a:b0:36:
+ 2a:c7:6f:45:04:7c:ea:41:19:d8:b9:19:04:1f:11:
+ a9:22:80:bd:69:08:15:0d:3c:de:cd:7e:88:6c:0f:
+ a3:43
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ CE:03:7E:EF:E7:DE:C9:87:BF:DE:56:F4:C8:A3:40:F6:C8:6F:05:8C
+ X509v3 Authority Key Identifier:
+ keyid:B8:35:37:32:BE:CF:4F:79:F5:7B:74:B2:F2:10:5A:BA:80:C5:6A:10
+ DirName:/C=US/ST=Berkshire/L=Newbury/O=My Company Ltd/OU=Testing/CN=test/emailAddress=test@test.com
+ serial:EB:E7:64:FB:79:F7:22:19
+
+ Signature Algorithm: md5WithRSAEncryption
+ 7a:20:93:63:40:73:7d:33:01:2e:c0:13:52:a4:a7:e1:4d:82:
+ f4:fb:b2:7b:d0:2b:5a:3f:0e:3c:28:61:71:ab:01:4d:fe:89:
+ b5:cd:2f:97:59:93:53:9d:51:86:48:dd:b9:e4:73:5e:22:0b:
+ 12:0d:25:39:76:16:44:06:0c:40:45:21:6b:a6:b1:e0:bf:76:
+ 1b:36:f3:1e:41:82:57:d9:59:b7:60:40:43:1c:1d:79:f6:48:
+ 32:5c:4e:e2:06:89:96:41:d2:54:1f:4a:6f:f6:78:a5:3c:02:
+ 85:21:e2:65:e1:8a:6d:24:19:95:f8:c0:35:ab:bd:ff:3d:f1:
+ fb:50:2d:30:1e:67:a6:7c:50:f9:d5:77:66:77:5a:14:0f:5c:
+ cd:21:09:9b:a3:92:57:19:dd:01:a4:18:c5:f9:70:e4:17:43:
+ 8d:b1:e6:61:e9:50:89:83:4f:ce:a4:57:68:58:40:70:ae:71:
+ 1c:47:66:d2:30:54:50:ea:3a:87:32:64:3b:18:42:fe:5a:19:
+ 07:64:f7:f1:b1:10:07:fd:a7:d2:a7:a8:05:79:5b:25:ba:69:
+ 7b:1a:3e:b1:3e:e4:17:17:01:ba:eb:54:ae:83:00:ed:66:62:
+ 8d:c0:3e:8a:b4:27:5f:e9:01:ce:20:c3:34:a9:28:c0:6f:c7:
+ 3b:65:fe:f9
+-----BEGIN CERTIFICATE-----
+MIIEojCCA4qgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCVVMx
+EjAQBgNVBAgTCUJlcmtzaGlyZTEQMA4GA1UEBxMHTmV3YnVyeTEXMBUGA1UEChMO
+TXkgQ29tcGFueSBMdGQxEDAOBgNVBAsTB1Rlc3RpbmcxDTALBgNVBAMTBHRlc3Qx
+HDAaBgkqhkiG9w0BCQEWDXRlc3RAdGVzdC5jb20wHhcNMDkwMzEwMTUxMzE2WhcN
+MTkwMzA4MTUxMzE2WjB6MQswCQYDVQQGEwJVUzESMBAGA1UECBMJQmVya3NoaXJl
+MRcwFQYDVQQKEw5NeSBDb21wYW55IEx0ZDEQMA4GA1UECxMHVGVzdGluZzEOMAwG
+A1UEAxMFdGVzdDExHDAaBgkqhkiG9w0BCQEWDXRlc3RAdGVzdC5jb20wggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNNLEusATG9CuiwKA5eoLtlsT3GYOR
+XLTnnN7sSOwt5FEIJkKs05gmenL3ScKeZgXGRyn+O6xrr29eqANaczO6GQMANfUA
+vKi+FM5GaeNt7TQ3hVWHYrO3ycDMmqphBVvNohdC0+VvHGCNwhVBRvgSVNA4V+H9
+jUTI+1azuWzp+J4hEVcbi/nP4xfn2P2s0QHGkjDzLcnWwfA9/cow3XV059FrddjF
+TUNh/vatfkxjfAMXogaP0Itp03oHDwuizwxwOLrMVTVghFjY0r4f73apuq5q3AiX
+gN5CALfUzpqwNirHb0UEfOpBGdi5GQQfEakigL1pCBUNPN7NfohsD6NDAgMBAAGj
+ggEfMIIBGzAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
+YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUzgN+7+feyYe/3lb0yKNA9shvBYww
+gcAGA1UdIwSBuDCBtYAUuDU3Mr7PT3n1e3Sy8hBauoDFahChgZGkgY4wgYsxCzAJ
+BgNVBAYTAlVTMRIwEAYDVQQIEwlCZXJrc2hpcmUxEDAOBgNVBAcTB05ld2J1cnkx
+FzAVBgNVBAoTDk15IENvbXBhbnkgTHRkMRAwDgYDVQQLEwdUZXN0aW5nMQ0wCwYD
+VQQDEwR0ZXN0MRwwGgYJKoZIhvcNAQkBFg10ZXN0QHRlc3QuY29tggkA6+dk+3n3
+IhkwDQYJKoZIhvcNAQEEBQADggEBAHogk2NAc30zAS7AE1Kkp+FNgvT7snvQK1o/
+DjwoYXGrAU3+ibXNL5dZk1OdUYZI3bnkc14iCxINJTl2FkQGDEBFIWumseC/dhs2
+8x5BglfZWbdgQEMcHXn2SDJcTuIGiZZB0lQfSm/2eKU8AoUh4mXhim0kGZX4wDWr
+vf898ftQLTAeZ6Z8UPnVd2Z3WhQPXM0hCZujklcZ3QGkGMX5cOQXQ42x5mHpUImD
+T86kV2hYQHCucRxHZtIwVFDqOocyZDsYQv5aGQdk9/GxEAf9p9KnqAV5WyW6aXsa
+PrE+5BcXAbrrVK6DAO1mYo3APoq0J1/pAc4gwzSpKMBvxztl/vk=
+-----END CERTIFICATE-----
diff --git a/system-settings/plugins/keyfile/tests/test-keyfile.c b/system-settings/plugins/keyfile/tests/test-keyfile.c
index 7bf63ef53..afa9baa29 100644
--- a/system-settings/plugins/keyfile/tests/test-keyfile.c
+++ b/system-settings/plugins/keyfile/tests/test-keyfile.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 <stdio.h>
@@ -27,8 +27,6 @@
#include <arpa/inet.h>
#include <sys/socket.h>
-#include <dbus/dbus-glib.h>
-
#include <nm-utils.h>
#include <nm-setting-connection.h>
#include <nm-setting-wired.h>
@@ -39,6 +37,7 @@
#include <nm-setting-serial.h>
#include <nm-setting-ppp.h>
#include <nm-setting-gsm.h>
+#include <nm-setting-8021x.h>
#include "nm-test-helpers.h"
@@ -1448,7 +1447,6 @@ test_read_bt_dun_connection (void)
NMSettingConnection *s_con;
NMSettingBluetooth *s_bluetooth;
NMSettingSerial *s_serial;
- NMSettingPPP *s_ppp;
NMSettingGsm *s_gsm;
GError *error = NULL;
const GByteArray *array;
@@ -1595,14 +1593,6 @@ test_read_bt_dun_connection (void)
TEST_BT_DUN_FILE,
NM_SETTING_SERIAL_SETTING_NAME);
- /* ===== PPP SETTING ===== */
-
- s_ppp = NM_SETTING_PPP (nm_connection_get_setting (connection, NM_TYPE_SETTING_PPP));
- ASSERT (s_ppp != NULL,
- "connection-verify-ppp", "failed to verify %s: missing %s setting",
- TEST_BT_DUN_FILE,
- NM_SETTING_PPP_SETTING_NAME);
-
g_object_unref (connection);
}
@@ -1691,13 +1681,6 @@ test_write_bt_dun_connection (void)
NM_SETTING_GSM_NUMBER, "*99#",
NULL);
- /* Serial setting */
- nm_connection_add_setting (connection, nm_setting_serial_new ());
-
- /* PPP setting */
- nm_connection_add_setting (connection, nm_setting_ppp_new ());
-
-
/* Write out the connection */
owner_uid = geteuid ();
owner_grp = getegid ();
@@ -1732,7 +1715,6 @@ test_read_gsm_connection (void)
NMConnection *connection;
NMSettingConnection *s_con;
NMSettingSerial *s_serial;
- NMSettingPPP *s_ppp;
NMSettingGsm *s_gsm;
NMSetting *s_bluetooth;
GError *error = NULL;
@@ -1874,14 +1856,6 @@ test_read_gsm_connection (void)
TEST_GSM_FILE,
NM_SETTING_SERIAL_SETTING_NAME);
- /* ===== PPP SETTING ===== */
-
- s_ppp = NM_SETTING_PPP (nm_connection_get_setting (connection, NM_TYPE_SETTING_PPP));
- ASSERT (s_ppp != NULL,
- "connection-verify-ppp", "failed to verify %s: missing %s setting",
- TEST_GSM_FILE,
- NM_SETTING_PPP_SETTING_NAME);
-
g_object_unref (connection);
}
@@ -1953,13 +1927,6 @@ test_write_gsm_connection (void)
NM_SETTING_GSM_NETWORK_TYPE, NM_SETTING_GSM_NETWORK_TYPE_PREFER_UMTS_HSPA,
NULL);
- /* Serial setting */
- nm_connection_add_setting (connection, nm_setting_serial_new ());
-
- /* PPP setting */
- nm_connection_add_setting (connection, nm_setting_ppp_new ());
-
-
/* Write out the connection */
owner_uid = geteuid ();
owner_grp = getegid ();
@@ -1986,14 +1953,368 @@ test_write_gsm_connection (void)
g_object_unref (connection);
}
+#define TEST_WIRED_TLS_OLD_FILE TEST_KEYFILES_DIR"/Test_Wired_TLS_Old"
+
+static void
+test_read_wired_8021x_tls_old_connection (void)
+{
+ NMConnection *connection;
+ NMSetting *s_wired;
+ NMSetting8021x *s_8021x;
+ GError *error = NULL;
+ const char *tmp;
+ gboolean success;
+
+ connection = connection_from_file (TEST_WIRED_TLS_OLD_FILE, &error);
+ if (connection == NULL) {
+ g_assert (error);
+ g_warning ("Failed to read %s: %s", TEST_WIRED_TLS_OLD_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_OLD_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);
+
+ tmp = nm_setting_802_1x_get_ca_cert_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "/home/dcbw/Desktop/certinfra/CA/eaptest_ca_cert.pem") == 0);
+
+ tmp = nm_setting_802_1x_get_client_cert_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "/home/dcbw/Desktop/certinfra/client.pem") == 0);
+
+ tmp = nm_setting_802_1x_get_private_key_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "/home/dcbw/Desktop/certinfra/client.pem") == 0);
+
+ g_object_unref (connection);
+}
+
+#define TEST_WIRED_TLS_NEW_FILE TEST_KEYFILES_DIR"/Test_Wired_TLS_New"
+
+static void
+test_read_wired_8021x_tls_new_connection (void)
+{
+ NMConnection *connection;
+ NMSetting *s_wired;
+ NMSetting8021x *s_8021x;
+ GError *error = NULL;
+ const char *tmp;
+ gboolean success;
+
+ connection = connection_from_file (TEST_WIRED_TLS_NEW_FILE, &error);
+ if (connection == NULL) {
+ g_assert (error);
+ g_warning ("Failed to read %s: %s", TEST_WIRED_TLS_NEW_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_NEW_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);
+
+ tmp = nm_setting_802_1x_get_ca_cert_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "test-ca-cert.pem") == 0);
+
+ tmp = nm_setting_802_1x_get_client_cert_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "test-key-and-cert.pem") == 0);
+
+ tmp = nm_setting_802_1x_get_private_key_path (s_8021x);
+ g_assert (g_strcmp0 (tmp, "test-key-and-cert.pem") == 0);
+
+ g_object_unref (connection);
+}
+
+#define TEST_WIRED_TLS_CA_CERT TEST_KEYFILES_DIR"/test-ca-cert.pem"
+#define TEST_WIRED_TLS_CLIENT_CERT TEST_KEYFILES_DIR"/test-key-and-cert.pem"
+#define TEST_WIRED_TLS_PRIVKEY TEST_KEYFILES_DIR"/test-key-and-cert.pem"
+
+static NMConnection *
+create_wired_tls_connection (NMSetting8021xCKScheme scheme)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSettingIP4Config *s_ip4;
+ NMSetting *s_wired;
+ NMSetting8021x *s_8021x;
+ char *uuid;
+ gboolean success;
+ GError *error = NULL;
+
+ connection = nm_connection_new ();
+ g_assert (connection != NULL);
+
+ /* Connection setting */
+ s_con = (NMSettingConnection *) 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, "Wired Really Secure TLS",
+ NM_SETTING_CONNECTION_UUID, uuid,
+ NM_SETTING_CONNECTION_TYPE, NM_SETTING_WIRED_SETTING_NAME,
+ NULL);
+ g_free (uuid);
+
+ /* IP4 setting */
+ s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
+ g_assert (s_ip4);
+ g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
+ nm_connection_add_setting (connection, NM_SETTING (s_ip4));
+
+ /* Wired setting */
+ s_wired = nm_setting_wired_new ();
+ g_assert (s_wired);
+ nm_connection_add_setting (connection, s_wired);
+
+ /* 802.1x setting */
+ s_8021x = (NMSetting8021x *) nm_setting_802_1x_new ();
+ g_assert (s_8021x);
+ nm_connection_add_setting (connection, NM_SETTING (s_8021x));
+
+ nm_setting_802_1x_add_eap_method (s_8021x, "tls");
+ g_object_set (s_8021x, NM_SETTING_802_1X_IDENTITY, "Bill Smith", NULL);
+
+ success = nm_setting_802_1x_set_ca_cert (s_8021x,
+ TEST_WIRED_TLS_CA_CERT,
+ scheme,
+ NULL,
+ &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to set CA cert %s: %s", TEST_WIRED_TLS_CA_CERT, error->message);
+ g_assert (success);
+ }
+
+ success = nm_setting_802_1x_set_client_cert (s_8021x,
+ TEST_WIRED_TLS_CLIENT_CERT,
+ scheme,
+ NULL,
+ &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to set client cert %s: %s", TEST_WIRED_TLS_CA_CERT, error->message);
+ g_assert (success);
+ }
+
+ success = nm_setting_802_1x_set_private_key (s_8021x,
+ TEST_WIRED_TLS_PRIVKEY,
+ "test1",
+ scheme,
+ NULL,
+ &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to set private key %s: %s", TEST_WIRED_TLS_CA_CERT, error->message);
+ g_assert (success);
+ }
+
+ return connection;
+}
+
+static void
+test_write_wired_8021x_tls_connection_path (void)
+{
+ NMConnection *connection;
+ char *tmp;
+ gboolean success;
+ NMConnection *reread;
+ char *testfile = NULL;
+ GError *error = NULL;
+ GKeyFile *keyfile;
+
+ connection = create_wired_tls_connection (NM_SETTING_802_1X_CK_SCHEME_PATH);
+ g_assert (connection != NULL);
+
+ /* Write out the connection */
+ success = write_connection (connection, TEST_SCRATCH_DIR, geteuid (), getegid (), &testfile, &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to write keyfile: %s", error->message);
+ g_assert (success);
+ }
+ g_assert (testfile);
+
+ /* Read the connection back in and compare it to the one we just wrote out */
+ reread = connection_from_file (testfile, &error);
+ if (!reread) {
+ g_assert (error);
+ g_warning ("Failed to re-read test connection: %s", error->message);
+ g_assert (reread);
+ }
+
+ success = nm_connection_compare (connection, reread, NM_SETTING_COMPARE_FLAG_EXACT);
+ if (!reread) {
+ g_warning ("Written and re-read connection weren't the same");
+ g_assert (success);
+ }
+
+ /* Ensure the cert and key values are properly written out */
+ keyfile = g_key_file_new ();
+ g_assert (keyfile);
+ success = g_key_file_load_from_file (keyfile, testfile, G_KEY_FILE_NONE, &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to re-read test file %s: %s", testfile, error->message);
+ g_assert (success);
+ }
+
+ /* 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);
+ g_free (tmp);
+
+ /* Client cert */
+ tmp = g_key_file_get_string (keyfile,
+ NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_CLIENT_CERT,
+ NULL);
+ g_assert (g_strcmp0 (tmp, TEST_WIRED_TLS_CLIENT_CERT) == 0);
+ g_free (tmp);
+
+ /* Private key */
+ tmp = g_key_file_get_string (keyfile,
+ NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PRIVATE_KEY,
+ NULL);
+ g_assert (g_strcmp0 (tmp, TEST_WIRED_TLS_PRIVKEY) == 0);
+ g_free (tmp);
+
+ g_key_file_free (keyfile);
+ unlink (testfile);
+ g_free (testfile);
+
+ g_object_unref (reread);
+ g_object_unref (connection);
+}
+
+static void
+test_write_wired_8021x_tls_connection_blob (void)
+{
+ NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSetting8021x *s_8021x;
+ gboolean success;
+ NMConnection *reread;
+ char *testfile = NULL;
+ char *new_ca_cert;
+ char *new_client_cert;
+ char *new_priv_key;
+ const char *uuid;
+ GError *error = NULL;
+
+ connection = create_wired_tls_connection (NM_SETTING_802_1X_CK_SCHEME_BLOB);
+ g_assert (connection != NULL);
+
+ /* Write out the connection */
+ success = write_connection (connection, TEST_SCRATCH_DIR, geteuid (), getegid (), &testfile, &error);
+ if (!success) {
+ g_assert (error);
+ g_warning ("Failed to write keyfile: %s", error->message);
+ g_assert (success);
+ }
+ g_assert (testfile);
+
+ /* Check that the new certs got written out */
+ s_con = (NMSettingConnection *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION);
+ g_assert (s_con);
+ uuid = nm_setting_connection_get_uuid (s_con);
+ g_assert (uuid);
+
+ new_ca_cert = g_strdup_printf ("%s/%s-ca-cert.der", TEST_SCRATCH_DIR, uuid);
+ g_assert (new_ca_cert);
+ g_assert (g_file_test (new_ca_cert, G_FILE_TEST_EXISTS));
+
+ new_client_cert = g_strdup_printf ("%s/%s-client-cert.der", TEST_SCRATCH_DIR, uuid);
+ g_assert (new_client_cert);
+ g_assert (g_file_test (new_client_cert, G_FILE_TEST_EXISTS));
+
+ new_priv_key = g_strdup_printf ("%s/%s-private-key.pem", TEST_SCRATCH_DIR, uuid);
+ g_assert (new_priv_key);
+ g_assert (g_file_test (new_priv_key, G_FILE_TEST_EXISTS));
+
+ /* Read the connection back in and compare it to the one we just wrote out */
+ reread = connection_from_file (testfile, &error);
+ if (!reread) {
+ g_assert (error);
+ g_warning ("Failed to re-read test connection: %s", error->message);
+ g_assert (reread);
+ }
+
+ /* Ensure the re-read connection's certificates use the path scheme */
+ s_8021x = (NMSetting8021x *) nm_connection_get_setting (reread, NM_TYPE_SETTING_802_1X);
+ g_assert (s_8021x);
+ g_assert (nm_setting_802_1x_get_ca_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH);
+ g_assert (nm_setting_802_1x_get_client_cert_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH);
+ g_assert (nm_setting_802_1x_get_private_key_scheme (s_8021x) == NM_SETTING_802_1X_CK_SCHEME_PATH);
+
+ unlink (testfile);
+ g_free (testfile);
+
+ /* Clean up written certs */
+ unlink (new_ca_cert);
+ g_free (new_ca_cert);
+
+ unlink (new_client_cert);
+ g_free (new_client_cert);
+
+ unlink (new_priv_key);
+ g_free (new_priv_key);
+
+ g_object_unref (reread);
+ g_object_unref (connection);
+}
+
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);
@@ -2019,10 +2340,14 @@ int main (int argc, char **argv)
test_read_gsm_connection ();
test_write_gsm_connection ();
+ test_read_wired_8021x_tls_old_connection ();
+ test_read_wired_8021x_tls_new_connection ();
+ test_write_wired_8021x_tls_connection_path ();
+ test_write_wired_8021x_tls_connection_blob ();
+
base = g_path_get_basename (argv[0]);
fprintf (stdout, "%s: SUCCESS\n", base);
g_free (base);
- dbus_g_connection_unref (bus);
return 0;
}
diff --git a/system-settings/plugins/keyfile/utils.c b/system-settings/plugins/keyfile/utils.c
new file mode 100644
index 000000000..de64f7913
--- /dev/null
+++ b/system-settings/plugins/keyfile/utils.c
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager system settings service
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2010 Red Hat, Inc.
+ */
+
+#include <glib.h>
+#include <stdlib.h>
+#include <string.h>
+#include "utils.h"
+
+
+static const char temp_letters[] =
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+/*
+ * Check '.[a-zA-Z0-9]{6}' file suffix used for temporary files by g_file_set_contents() (mkstemp()).
+ */
+static gboolean
+check_mkstemp_suffix (const char *path)
+{
+ const char *ptr;
+
+ g_return_val_if_fail (path != NULL, FALSE);
+
+ /* Matches *.[a-zA-Z0-9]{6} suffix of mkstemp()'s temporary files */
+ ptr = strrchr (path, '.');
+ if (ptr && (strspn (ptr + 1, temp_letters) == 6) && (! ptr[7]))
+ return TRUE;
+ return FALSE;
+}
+
+static gboolean
+check_prefix (const char *base, const char *tag)
+{
+ int len, tag_len;
+
+ g_return_val_if_fail (base != NULL, TRUE);
+ g_return_val_if_fail (tag != NULL, TRUE);
+
+ len = strlen (base);
+ tag_len = strlen (tag);
+ if ((len > tag_len) && !strncasecmp (base, tag, tag_len))
+ return TRUE;
+ return FALSE;
+}
+
+static gboolean
+check_suffix (const char *base, const char *tag)
+{
+ int len, tag_len;
+
+ g_return_val_if_fail (base != NULL, TRUE);
+ g_return_val_if_fail (tag != NULL, TRUE);
+
+ len = strlen (base);
+ tag_len = strlen (tag);
+ if ((len > tag_len) && !strcasecmp (base + len - tag_len, tag))
+ return TRUE;
+ return FALSE;
+}
+
+gboolean
+utils_should_ignore_file (const char *filename)
+{
+ char *base;
+ gboolean ignore = FALSE;
+
+ g_return_val_if_fail (filename != NULL, TRUE);
+
+ base = g_path_get_basename (filename);
+ g_return_val_if_fail (base != NULL, TRUE);
+
+ /* 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_mkstemp_suffix (base)) /* temporary files created by mkstemp() */
+ ignore = TRUE;
+
+ g_free (base);
+ return ignore;
+}
+
diff --git a/system-settings/plugins/keyfile/utils.h b/system-settings/plugins/keyfile/utils.h
new file mode 100644
index 000000000..3c1a6104b
--- /dev/null
+++ b/system-settings/plugins/keyfile/utils.h
@@ -0,0 +1,30 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager system settings service
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2010 Red Hat, Inc.
+ */
+
+#ifndef _UTILS_H_
+#define _UTILS_H_
+
+#include <glib.h>
+#include "common.h"
+
+gboolean utils_should_ignore_file (const char *filename);
+
+#endif /* _UTILS_H_ */
+
diff --git a/system-settings/plugins/keyfile/writer.c b/system-settings/plugins/keyfile/writer.c
index ffac35cff..62ccdfa97 100644
--- a/system-settings/plugins/keyfile/writer.c
+++ b/system-settings/plugins/keyfile/writer.c
@@ -16,12 +16,16 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Copyright (C) 2008 Novell, Inc.
- * Copyright (C) 2008 - 2010 Red Hat, Inc.
+ * Copyright (C) 2008 - 2011 Red Hat, Inc.
*/
+#include <config.h>
+#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <stdio.h>
#include <errno.h>
+
#include <dbus/dbus-glib.h>
#include <nm-setting.h>
#include <nm-setting-connection.h>
@@ -32,6 +36,7 @@
#include <nm-setting-wireless.h>
#include <nm-setting-ip4-config.h>
#include <nm-setting-bluetooth.h>
+#include <nm-setting-8021x.h>
#include <nm-utils.h>
#include <string.h>
#include <arpa/inet.h>
@@ -67,6 +72,8 @@ write_array_of_uint (GKeyFile *file,
static void
ip4_dns_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -156,6 +163,8 @@ write_ip4_values (GKeyFile *file,
static void
ip4_addr_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -172,6 +181,8 @@ ip4_addr_writer (GKeyFile *file,
static void
ip4_route_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -188,6 +199,8 @@ ip4_route_writer (GKeyFile *file,
static void
ip6_dns_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -296,6 +309,8 @@ ip6_array_to_addr_prefix (GValueArray *values)
static void
ip6_addr_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -334,6 +349,8 @@ ip6_addr_writer (GKeyFile *file,
static void
ip6_route_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -389,6 +406,8 @@ ip6_route_writer (GKeyFile *file,
static void
mac_address_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -456,6 +475,8 @@ write_hash_of_string (GKeyFile *file,
static void
ssid_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
NMSetting *setting,
const char *key,
const GValue *value)
@@ -497,10 +518,236 @@ ssid_writer (GKeyFile *file,
}
}
+typedef struct ObjectType {
+ const char *key;
+ const char *suffix;
+ const char *privkey_pw_prop;
+ NMSetting8021xCKScheme (*scheme_func) (NMSetting8021x *setting);
+ NMSetting8021xCKFormat (*format_func) (NMSetting8021x *setting);
+ const char * (*path_func) (NMSetting8021x *setting);
+ const GByteArray * (*blob_func) (NMSetting8021x *setting);
+} ObjectType;
+
+static const ObjectType objtypes[10] = {
+ { NM_SETTING_802_1X_CA_CERT,
+ "ca-cert",
+ NULL,
+ nm_setting_802_1x_get_ca_cert_scheme,
+ NULL,
+ nm_setting_802_1x_get_ca_cert_path,
+ nm_setting_802_1x_get_ca_cert_blob },
+
+ { NM_SETTING_802_1X_PHASE2_CA_CERT,
+ "inner-ca-cert",
+ NULL,
+ nm_setting_802_1x_get_phase2_ca_cert_scheme,
+ NULL,
+ nm_setting_802_1x_get_phase2_ca_cert_path,
+ nm_setting_802_1x_get_phase2_ca_cert_blob },
+
+ { NM_SETTING_802_1X_CLIENT_CERT,
+ "client-cert",
+ NULL,
+ nm_setting_802_1x_get_client_cert_scheme,
+ NULL,
+ nm_setting_802_1x_get_client_cert_path,
+ nm_setting_802_1x_get_client_cert_blob },
+
+ { NM_SETTING_802_1X_PHASE2_CLIENT_CERT,
+ "inner-client-cert",
+ NULL,
+ nm_setting_802_1x_get_phase2_client_cert_scheme,
+ NULL,
+ nm_setting_802_1x_get_phase2_client_cert_path,
+ nm_setting_802_1x_get_phase2_client_cert_blob },
+
+ { NM_SETTING_802_1X_PRIVATE_KEY,
+ "private-key",
+ NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
+ nm_setting_802_1x_get_private_key_scheme,
+ nm_setting_802_1x_get_private_key_format,
+ nm_setting_802_1x_get_private_key_path,
+ nm_setting_802_1x_get_private_key_blob },
+
+ { NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
+ "inner-private-key",
+ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD,
+ nm_setting_802_1x_get_phase2_private_key_scheme,
+ nm_setting_802_1x_get_phase2_private_key_format,
+ nm_setting_802_1x_get_phase2_private_key_path,
+ nm_setting_802_1x_get_phase2_private_key_blob },
+
+ { NULL },
+};
+
+static gboolean
+write_cert_key_file (const char *path,
+ const GByteArray *data,
+ GError **error)
+{
+ char *tmppath;
+ int fd = -1, written;
+ gboolean success = FALSE;
+
+ tmppath = g_malloc0 (strlen (path) + 10);
+ g_assert (tmppath);
+ memcpy (tmppath, path, strlen (path));
+ strcat (tmppath, ".XXXXXX");
+
+ errno = 0;
+ fd = mkstemp (tmppath);
+ if (fd < 0) {
+ g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
+ "Could not create temporary file for '%s': %d",
+ path, errno);
+ goto out;
+ }
+
+ /* Only readable by root */
+ errno = 0;
+ if (fchmod (fd, S_IRUSR | S_IWUSR) != 0) {
+ close (fd);
+ unlink (tmppath);
+ g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
+ "Could not set permissions for temporary file '%s': %d",
+ path, errno);
+ goto out;
+ }
+
+ errno = 0;
+ written = write (fd, data->data, data->len);
+ if (written != data->len) {
+ close (fd);
+ unlink (tmppath);
+ g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
+ "Could not write temporary file for '%s': %d",
+ path, errno);
+ goto out;
+ }
+ close (fd);
+
+ /* Try to rename */
+ errno = 0;
+ if (rename (tmppath, path) == 0)
+ success = TRUE;
+ else {
+ unlink (tmppath);
+ g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
+ "Could not rename temporary file to '%s': %d",
+ path, errno);
+ }
+
+out:
+ g_free (tmppath);
+ return success;
+}
+
+static void
+cert_writer (GKeyFile *file,
+ const char *keyfile_dir,
+ const char *uuid,
+ NMSetting *setting,
+ const char *key,
+ const GValue *value)
+{
+ const char *setting_name = nm_setting_get_name (setting);
+ NMSetting8021xCKScheme scheme;
+ NMSetting8021xCKFormat format;
+ const char *path = NULL, *ext = "der";
+ const ObjectType *objtype = NULL;
+ int i;
+
+ for (i = 0; i < G_N_ELEMENTS (objtypes) && objtypes[i].key; i++) {
+ if (g_strcmp0 (objtypes[i].key, key) == 0) {
+ objtype = &objtypes[i];
+ break;
+ }
+ }
+ g_return_if_fail (objtype != NULL);
+
+ scheme = objtypes->scheme_func (NM_SETTING_802_1X (setting));
+ if (scheme == NM_SETTING_802_1X_CK_SCHEME_PATH) {
+ path = objtype->path_func (NM_SETTING_802_1X (setting));
+ g_assert (path);
+ g_key_file_set_string (file, setting_name, key, path);
+ } else if (scheme == NM_SETTING_802_1X_CK_SCHEME_BLOB) {
+ const GByteArray *blob;
+ GByteArray *enc_key = NULL;
+ gboolean success;
+ GError *error = NULL;
+ char *new_path;
+
+ /* Write the blob out to a file on-disk. If this item is a private
+ * key, it'll be the decrypted private key data, which we need to
+ * re-encrypt and write out to disk, but not if it's PKCS#12, since
+ * that format is already encrypted as a blob. Whee.
+ */
+ blob = objtype->blob_func (NM_SETTING_802_1X (setting));
+
+ if (objtype->format_func) { /* check for a private key */
+ char *password = NULL, *generated_pw = NULL;
+
+ format = objtype->format_func (NM_SETTING_802_1X (setting));
+ if (format == NM_SETTING_802_1X_CK_FORMAT_PKCS12) {
+ ext = "p12";
+ } else {
+ /* Encrypt the unencrypted private key */
+ g_object_get (setting, objtype->privkey_pw_prop, &password, NULL);
+ blob = enc_key = nm_utils_rsa_key_encrypt (blob, password, &generated_pw, &error);
+ if (!enc_key) {
+ g_warning ("Failed to re-encrypt private key: %s", error->message);
+ g_error_free (error);
+ g_free (password);
+ return;
+ }
+
+ if (generated_pw) {
+ /* Set the string in both the keyfile and the setting in
+ * case the private key password will be set either before
+ * or after this function is called.
+ */
+ g_key_file_set_string (file, setting_name, objtype->privkey_pw_prop, generated_pw);
+ g_object_set (setting, objtype->privkey_pw_prop, generated_pw, NULL);
+ }
+ g_free (password);
+ g_free (generated_pw);
+
+ ext = "pem";
+ }
+ }
+ g_assert (blob || enc_key);
+
+ /* Write the raw data out to the standard file so that we can use paths
+ * from now on instead of pushing around the certificate data itself.
+ */
+ new_path = g_strdup_printf ("%s/%s-%s.%s", keyfile_dir, uuid, objtype->suffix, ext);
+ g_assert (new_path);
+
+ success = write_cert_key_file (new_path, blob, &error);
+ if (success) {
+ /* Write the path value to the keyfile */
+ g_key_file_set_string (file, setting_name, key, new_path);
+ } else {
+ g_warning ("Failed to write certificate/key %s: %s", new_path, error->message);
+ g_error_free (error);
+ }
+
+ g_free (new_path);
+ if (enc_key)
+ g_byte_array_free (enc_key, TRUE);
+ } else
+ g_assert_not_reached ();
+}
+
typedef struct {
const char *setting_name;
const char *key;
- void (*writer) (GKeyFile *keyfile, NMSetting *setting, const char *key, const GValue *value);
+ void (*writer) (GKeyFile *keyfile,
+ const char *keyfile_dir,
+ const char *uuid,
+ NMSetting *setting,
+ const char *key,
+ const GValue *value);
} KeyWriter;
/* A table of keys that require further parsing/conversion because they are
@@ -549,9 +796,33 @@ static KeyWriter key_writers[] = {
{ NM_SETTING_WIRELESS_SETTING_NAME,
NM_SETTING_WIRELESS_SSID,
ssid_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_CA_CERT,
+ cert_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_CLIENT_CERT,
+ cert_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PRIVATE_KEY,
+ cert_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_CA_CERT,
+ cert_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_CLIENT_CERT,
+ cert_writer },
+ { NM_SETTING_802_1X_SETTING_NAME,
+ NM_SETTING_802_1X_PHASE2_PRIVATE_KEY,
+ cert_writer },
{ NULL, NULL, NULL }
};
+typedef struct {
+ GKeyFile *keyfile;
+ const char *keyfile_dir;
+ const char *uuid;
+} WriteInfo;
+
static void
write_setting_value (NMSetting *setting,
const char *key,
@@ -559,7 +830,7 @@ write_setting_value (NMSetting *setting,
GParamFlags flag,
gpointer user_data)
{
- GKeyFile *file = (GKeyFile *) user_data;
+ WriteInfo *info = user_data;
const char *setting_name;
GType type = G_VALUE_TYPE (value);
KeyWriter *writer = &key_writers[0];
@@ -580,7 +851,7 @@ write_setting_value (NMSetting *setting,
pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (setting), key);
if (pspec) {
if (g_param_value_defaults (pspec, (GValue *) value)) {
- g_key_file_remove_key (file, setting_name, key, NULL);
+ g_key_file_remove_key (info->keyfile, setting_name, key, NULL);
return;
}
}
@@ -588,7 +859,7 @@ write_setting_value (NMSetting *setting,
/* Look through the list of handlers for non-standard format key values */
while (writer->setting_name) {
if (!strcmp (writer->setting_name, setting_name) && !strcmp (writer->key, key)) {
- (*writer->writer) (file, setting, key, value);
+ (*writer->writer) (info->keyfile, info->keyfile_dir, info->uuid, setting, key, value);
return;
}
writer++;
@@ -599,21 +870,21 @@ write_setting_value (NMSetting *setting,
str = g_value_get_string (value);
if (str)
- g_key_file_set_string (file, setting_name, key, str);
+ g_key_file_set_string (info->keyfile, setting_name, key, str);
} else if (type == G_TYPE_UINT)
- g_key_file_set_integer (file, setting_name, key, (int) g_value_get_uint (value));
+ g_key_file_set_integer (info->keyfile, setting_name, key, (int) g_value_get_uint (value));
else if (type == G_TYPE_INT)
- g_key_file_set_integer (file, setting_name, key, g_value_get_int (value));
+ g_key_file_set_integer (info->keyfile, setting_name, key, g_value_get_int (value));
else if (type == G_TYPE_UINT64) {
char *numstr;
numstr = g_strdup_printf ("%" G_GUINT64_FORMAT, g_value_get_uint64 (value));
- g_key_file_set_value (file, setting_name, key, numstr);
+ g_key_file_set_value (info->keyfile, setting_name, key, numstr);
g_free (numstr);
} else if (type == G_TYPE_BOOLEAN) {
- g_key_file_set_boolean (file, setting_name, key, g_value_get_boolean (value));
+ g_key_file_set_boolean (info->keyfile, setting_name, key, g_value_get_boolean (value));
} else if (type == G_TYPE_CHAR) {
- g_key_file_set_integer (file, setting_name, key, (int) g_value_get_char (value));
+ g_key_file_set_integer (info->keyfile, setting_name, key, (int) g_value_get_char (value));
} else if (type == DBUS_TYPE_G_UCHAR_ARRAY) {
GByteArray *array;
@@ -626,7 +897,7 @@ write_setting_value (NMSetting *setting,
for (i = 0; i < array->len; i++)
tmp_array[i] = (int) array->data[i];
- g_key_file_set_integer_list (file, setting_name, key, tmp_array, array->len);
+ g_key_file_set_integer_list (info->keyfile, setting_name, key, tmp_array, array->len);
g_free (tmp_array);
}
} else if (type == DBUS_TYPE_G_LIST_OF_STRING) {
@@ -642,13 +913,13 @@ write_setting_value (NMSetting *setting,
for (iter = list; iter; iter = iter->next)
array[i++] = iter->data;
- g_key_file_set_string_list (file, setting_name, key, (const gchar **const) array, i);
+ g_key_file_set_string_list (info->keyfile, setting_name, key, (const gchar **const) array, i);
g_free (array);
}
} else if (type == DBUS_TYPE_G_MAP_OF_STRING) {
- write_hash_of_string (file, setting, key, value);
+ write_hash_of_string (info->keyfile, setting, key, value);
} else if (type == DBUS_TYPE_G_UINT_ARRAY) {
- if (!write_array_of_uint (file, setting, key, value)) {
+ if (!write_array_of_uint (info->keyfile, setting, key, value)) {
g_warning ("Unhandled setting property type (write) '%s/%s' : '%s'",
setting_name, key, g_type_name (type));
}
@@ -693,6 +964,7 @@ write_connection (NMConnection *connection,
gboolean success = FALSE;
char *filename, *path;
int err;
+ WriteInfo info;
if (out_path)
g_return_val_if_fail (*out_path == NULL, FALSE);
@@ -701,8 +973,10 @@ write_connection (NMConnection *connection,
if (!s_con)
return success;
- key_file = g_key_file_new ();
- nm_connection_for_each_setting_value (connection, write_setting_value, key_file);
+ info.keyfile = key_file = g_key_file_new ();
+ info.keyfile_dir = keyfile_dir;
+ info.uuid = nm_setting_connection_get_uuid (s_con);
+ nm_connection_for_each_setting_value (connection, write_setting_value, &info);
data = g_key_file_to_data (key_file, &len, error);
if (!data)
goto out;
diff --git a/test/Makefile.am b/test/Makefile.am
index 8e235e432..7bdaf0db9 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -10,9 +10,9 @@ AM_CPPFLAGS = \
-DNM_RUN_DIR=\"$(rundir)\" \
-DDATADIR=\"$(datadir)\"
-bin_PROGRAMS = nm-tool
+bin_PROGRAMS = nm-tool nm-online
-noinst_PROGRAMS = nm-online libnm-glib-test
+noinst_PROGRAMS = libnm-glib-test
nm_tool_SOURCES = nm-tool.c
nm_tool_LDADD = \
diff --git a/test/Makefile.in b/test/Makefile.in
index 913753ca0..64a31543f 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -34,8 +34,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-bin_PROGRAMS = nm-tool$(EXEEXT)
-noinst_PROGRAMS = nm-online$(EXEEXT) libnm-glib-test$(EXEEXT)
+bin_PROGRAMS = nm-tool$(EXEEXT) nm-online$(EXEEXT)
+noinst_PROGRAMS = libnm-glib-test$(EXEEXT)
subdir = test
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -202,6 +202,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -216,6 +220,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index f25b26d42..f51c74221 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -149,6 +149,10 @@ MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
NM = @NM@
NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_VERSION = @NM_VERSION@
NSS_CFLAGS = @NSS_CFLAGS@
NSS_LIBS = @NSS_LIBS@
OBJDUMP = @OBJDUMP@
@@ -163,6 +167,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKGCONFIG_PATH = @PKGCONFIG_PATH@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@